use Scalar::Util 'weaken', 'blessed';
-our $VERSION = '0.80';
+our $VERSION = '0.89';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
# for compatibility
sub bless_instance_structure {
+ Carp::cluck('The bless_instance_structure method is deprecated.'
+ . " It will be removed in a future release.\n");
+
my ($self, $instance_structure) = @_;
bless $instance_structure, $self->_class_name;
}
sub inline_slot_access {
my ($self, $instance, $slot_name) = @_;
- sprintf q[%s->{"%s"}], $instance, quotemeta($slot_name);
+ sprintf q[%s->{'%s'}], $instance, quotemeta($slot_name);
}
sub inline_get_slot_value {
$self->inline_set_slot_value($instance, $slot_name, $self->inline_slot_access($instance, $slot_name));
}
+sub inline_rebless_instance_structure {
+ my ($self, $instance, $class_variable) = @_;
+ "bless $instance => $class_variable";
+}
+
1;
__END__
The method returns a snippet of code that, when inlined, performs some
operation on the instance.
+=item B<< $metainstance->inline_rebless_instance_structure($instance_variable, $class_variable) >>
+
+This takes the name of a variable that will, when inlined, represent the object
+instance, and the name of a variable that will represent the class to rebless
+into, and returns code to rebless an instance into a class.
+
=back
=head2 Introspection