Opinions: API wrapping, how close to original API should you stay?
Nik Clayton
nik at ngo.org.uk
Fri Oct 6 08:15:21 PDT 2006
Robbie Bow wrote:
>> Nik Clayton wrote:
>
>> [1] As an aside, there's quite a lot of tedious make-work code involved in
>> doing this. Before I sit down and write one, is anyone aware of a simple
>> mechanism to take a hash and a mapping of hash keys to method names, and
>> generate a simple object from the two?
>
> How about using Class::Accessor e.g.
Ah, I wasn't clear enough. I meant using Object::InsideOut. Currently
my subclasses are created something like this:
package main {
my %hash = func_that_returns_hash();
# %hash has keys 'Foo', 'Bar', 'Baz'
my $obj = Class->new(%hash);
};
package Class {
use Object::InsideOut;
my @foo :Field
:Arg(Mandatory => 1, Name => 'Foo')
:Get(get_foo);
my @bar :Field
:Arg(Mandatory => 1, Name => 'Bar')
:Get(get_bar);
my @baz :Field
:Arg(Mandatory => 1, Name => 'Baz')
:Get(get_baz);
};
That works, but it's a bit tedious. Short of eval'ing everything in to
existence iterating over a list of field names there doesn't seem to be
handy O::I shortcut.
N
More information about the MiltonKeynes-pm
mailing list