Even More Moose Attributes
Its extend API a little more Day here in the Moose-Pen
Since I was playing about with the API by adding in 'default_condition' for conditions I figured I might as well do the same for condition 'operator'. In my little abstract world the 'operator' is what I use to compare the 'left' and 'right' parts of a predicate.
Well first thing some tests;
$da = Database::Accessor->new($in_hash3);
ok($da->default_operator('!='),'Change Default operator to !=');
$da->retrieve( Data::Test->new());
ok(
$da->result->error->gather->conditions->[0]->predicates->operator() eq
'!=',
'First gather condition predicate operator is !='
);
ok( $da->result->error->gather->conditions->[1]->predicates->operator() eq '=',
'Second gather condition predicate is =' );
and next the new attribute;
has default_operator => (
is => 'rw',
isa => 'Operator',
traits => ['MooseX::MetaDescription::Meta::Trait'],
default => '=',
description => { not_in_DAD => 1 }
);
and a few changes else where for the above;
First get rid of its default value in the 'Database::Accessor::Predicate' class;
has operator => (
is => 'rw',
isa => 'Operator',
-- default => '='
);
Next add in the code to set the default value;
...
elsif (ref($element) eq 'Database::Accessor::Condition'){
++ $element->predicates->operator($self->default_operator())
++ if ( !$element->predicates->operator() );
$element->predicates->condition($self->default_condition())
if ( $self->_add_condition>=2 and !$element->predicates->condition() );
…
and give the tests a go;
…
ok 12 - OR not added to first gather condition predicate
ok 13 - Change Default operator to !=
ok 14 - First gather condition predicate operator is !=
ok 15 - Second gather condition predicate is =
ok 16 - Caught unbalanced parentheses
…
so that is two new attributes in a row without a major code breakdown. Might be a new record?
Leave a comment