Commits

Toby Inkster committed d1bf2f2

rename Method::Generate::Accessor::Classy to Method::Generator::ClassAccessor

Comments (0)

Files changed (5)

lib/Method/Generate/Accessor/Classy.pm

-package Method::Generate::Accessor::Classy;
-
-use 5.008;
-use strict;
-use warnings;
-no warnings qw( void once uninitialized numeric );
-
-BEGIN {
-	no warnings 'once';
-	$Method::Generate::Accessor::Classy::AUTHORITY = 'cpan:TOBYINK';
-	$Method::Generate::Accessor::Classy::VERSION   = '0.001';
-}
-
-use B 'perlstring';
-
-use base qw(Method::Generate::Accessor);
-
-sub generate_method
-{
-	my ($self, $into, $name, $spec, $quote_opts) = @_;
-	local $Method::Generate::Accessor::CAN_HAZ_XS = 0; # sorry
-	$spec->{_classy} ||= $into;
-	my $r = $self->SUPER::generate_method($into, $name, $spec, $quote_opts);
-	
-	# Populate default value
-	unless ($spec->{lazy})
-	{
-		my $storage = do {
-			no strict 'refs';
-			\%{"$spec->{_classy}\::__ClassAttributeValues"};
-		};
-		if (my $default = $spec->{default})
-		{
-			$storage->{$name} = $default->($into);
-		}
-		elsif (my $builder = $spec->{builder})
-		{
-			$storage->{$name} = $into->$builder;
-		}
-	}
-	
-	return $r;
-}
-
-sub _generate_simple_get
-{
-	my ($self, $me, $name, $spec) = @_;
-	my $classy = $spec->{_classy};
-	"\$$classy\::__ClassAttributeValues{${\perlstring $name}}";
-}
-
-sub _generate_core_set
-{
-	my ($self, $me, $name, $spec, $value) = @_;
-	my $classy = $spec->{_classy};
-	"\$$classy\::__ClassAttributeValues{${\perlstring $name}} = $value";
-}
-
-sub _generate_simple_has
-{
-	my ($self, $me, $name, $spec) = @_;
-	my $classy = $spec->{_classy};
-	"exists \$$classy\::__ClassAttributeValues{${\perlstring $name}}";
-}
-
-sub _generate_simple_clear
-{
-	my ($self, $me, $name, $spec) = @_;
-	my $classy = $spec->{_classy};
-	"delete \$$classy\::__ClassAttributeValues{${\perlstring $name}}";
-}
-
-1;
-

lib/Method/Generate/ClassAccessor.pm

+package Method::Generate::ClassAccessor;
+
+use 5.008;
+use strict;
+use warnings;
+no warnings qw( void once uninitialized numeric );
+
+BEGIN {
+	no warnings 'once';
+	$Method::Generate::ClassAccessor::AUTHORITY = 'cpan:TOBYINK';
+	$Method::Generate::ClassAccessor::VERSION   = '0.001';
+}
+
+use B 'perlstring';
+
+use base qw(Method::Generate::Accessor);
+
+sub generate_method
+{
+	my ($self, $into, $name, $spec, $quote_opts) = @_;
+	local $Method::Generate::Accessor::CAN_HAZ_XS = 0; # sorry
+	$spec->{_classy} ||= $into;
+	my $r = $self->SUPER::generate_method($into, $name, $spec, $quote_opts);
+	
+	# Populate default value
+	unless ($spec->{lazy})
+	{
+		my $storage = do {
+			no strict 'refs';
+			\%{"$spec->{_classy}\::__ClassAttributeValues"};
+		};
+		if (my $default = $spec->{default})
+		{
+			$storage->{$name} = $default->($into);
+		}
+		elsif (my $builder = $spec->{builder})
+		{
+			$storage->{$name} = $into->$builder;
+		}
+	}
+	
+	return $r;
+}
+
+sub _generate_simple_get
+{
+	my ($self, $me, $name, $spec) = @_;
+	my $classy = $spec->{_classy};
+	"\$$classy\::__ClassAttributeValues{${\perlstring $name}}";
+}
+
+sub _generate_core_set
+{
+	my ($self, $me, $name, $spec, $value) = @_;
+	my $classy = $spec->{_classy};
+	"\$$classy\::__ClassAttributeValues{${\perlstring $name}} = $value";
+}
+
+sub _generate_simple_has
+{
+	my ($self, $me, $name, $spec) = @_;
+	my $classy = $spec->{_classy};
+	"exists \$$classy\::__ClassAttributeValues{${\perlstring $name}}";
+}
+
+sub _generate_simple_clear
+{
+	my ($self, $me, $name, $spec) = @_;
+	my $classy = $spec->{_classy};
+	"delete \$$classy\::__ClassAttributeValues{${\perlstring $name}}";
+}
+
+1;
+

lib/MooX/ClassAttribute.pm

 {
 	my ($me, $target) = @_;
 	$CLASS{$target}{class_accessor} ||= do {
-		require Method::Generate::Accessor::Classy;
-		'Method::Generate::Accessor::Classy'->new;
+		require Method::Generate::ClassAccessor;
+		'Method::Generate::ClassAccessor'->new;
 	};
 }
 

t/30mgac.t

-use strict;
-use warnings;
-use Test::More;
-
-use Method::Generate::Accessor::Classy;
-use Sub::Defer;
-use constant Gen => 'Method::Generate::Accessor::Classy';
-use constant Pkg => 'Local::Test::Package';
-
-my $generator = Gen->new;
-isa_ok $generator, 'Method::Generate::Accessor';
-
-$generator->generate_method(
-	Pkg,
-	foo => {
-		is        => 'rw',
-		writer    => 'set_foo',
-		reader    => 'get_foo',
-		accessor  => 'access_foo',
-		predicate => 'has_foo',
-		clearer   => 'clear_foo',
-		handles   => [qw/ bar baz /],
-	},
-);
-
-my @methods = qw/
-	set_foo get_foo access_foo has_foo clear_foo
-	_assert_foo bar baz
-/;
-
-can_ok Pkg, @methods;
-
-Pkg->set_foo('42');
-ok Pkg->has_foo;
-is(Pkg->get_foo, 42);
-Pkg->clear_foo;
-ok not Pkg->has_foo;
-Pkg->access_foo('Local::Bottoms');
-is(Pkg->access_foo, 'Local::Bottoms');
-
-ok not eval { Pkg->baz };
-like $@, qr{^Can't locate object method "baz" via package "Local::Bottoms"};
-
-done_testing;
+use strict;
+use warnings;
+use Test::More;
+
+use Method::Generate::ClassAccessor;
+use Sub::Defer;
+use constant Gen => 'Method::Generate::ClassAccessor';
+use constant Pkg => 'Local::Test::Package';
+
+my $generator = Gen->new;
+isa_ok $generator, 'Method::Generate::Accessor';
+
+$generator->generate_method(
+	Pkg,
+	foo => {
+		is        => 'rw',
+		writer    => 'set_foo',
+		reader    => 'get_foo',
+		accessor  => 'access_foo',
+		predicate => 'has_foo',
+		clearer   => 'clear_foo',
+		handles   => [qw/ bar baz /],
+	},
+);
+
+my @methods = qw/
+	set_foo get_foo access_foo has_foo clear_foo
+	_assert_foo bar baz
+/;
+
+can_ok Pkg, @methods;
+
+Pkg->set_foo('42');
+ok Pkg->has_foo;
+is(Pkg->get_foo, 42);
+Pkg->clear_foo;
+ok not Pkg->has_foo;
+Pkg->access_foo('Local::Bottoms');
+is(Pkg->access_foo, 'Local::Bottoms');
+
+ok not eval { Pkg->baz };
+like $@, qr{^Can't locate object method "baz" via package "Local::Bottoms"};
+
+done_testing;