use strict;
use warnings;
-our $VERSION = '0.64';
+our $VERSION = '0.68';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
# NOTE:
# set up the environment
- my $attr = $self->associated_attribute;
- my $attr_name = $attr->name;
- my $meta = $self;
-
- my $type_constraint_obj = $attr->type_constraint;
- my $type_constraint_name = $type_constraint_obj && $type_constraint_obj->name;
- my $type_constraint = $type_constraint_obj
+ my $attr = $self->associated_attribute;
+ my $type_constraint_obj = $attr->type_constraint;
+ my $environment = {
+ '$attr' => \$attr,
+ '$attr_name' => \$attr->name,
+ '$meta' => \$self,
+ '$type_constraint_obj' => \$type_constraint_obj,
+ '$type_constraint_name' => \($type_constraint_obj && $type_constraint_obj->name),
+ '$type_constraint' => \($type_constraint_obj
? $type_constraint_obj->_compiled_type_constraint
- : undef;
+ : undef),
+ };
#warn "code for $attr_name =>\n" . $code . "\n";
- eval $self->_prepare_code( code => $code )
- or $self->throw_error("Could not create writer for '$attr_name' because $@ \n code: $code", error => $@, data => $code );
+ $self->_compile_code( environment => $environment, code => $code )
+ or $self->throw_error("Could not create writer for '${\$self->associated_attribute->name}' because $@ \n code: $code", error => $@, data => $code );
}
sub generate_accessor_method_inline {
my ($self, $instance, $value) = @_;
my $attr = $self->associated_attribute;
return '' unless $attr->has_trigger;
- return sprintf('$attr->trigger->(%s, %s, $attr);', $instance, $value);
+ return sprintf('$attr->trigger->(%s, %s);', $instance, $value);
}
sub _inline_get {
=head1 COPYRIGHT AND LICENSE
-Copyright 2006-2008 by Infinity Interactive, Inc.
+Copyright 2006-2009 by Infinity Interactive, Inc.
L<http://www.iinteractive.com>