Hello community,
here is the log from the commit of package perl-MooseX-Role-Parameterized for
openSUSE:Factory checked in at 2012-03-01 17:25:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-MooseX-Role-Parameterized (Old)
and /work/SRC/openSUSE:Factory/.perl-MooseX-Role-Parameterized.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-MooseX-Role-Parameterized", Maintainer is ""
Changes:
--------
---
/work/SRC/openSUSE:Factory/perl-MooseX-Role-Parameterized/perl-MooseX-Role-Parameterized.changes
2011-12-21 10:02:31.000000000 +0100
+++
/work/SRC/openSUSE:Factory/.perl-MooseX-Role-Parameterized.new/perl-MooseX-Role-Parameterized.changes
2012-03-01 17:25:11.000000000 +0100
@@ -1,0 +2,19 @@
+Mon Feb 27 10:09:25 UTC 2012 - [email protected]
+
+- updated to 1.00
+ * MooseX::Role::Parameterized now depends on Moose 2.0300
+ released 2011-09-23 for its several core improvements, hence the
+ major version number bump.
+ * MXRP now uses the new meta_lookup feature added to Moose 2.0300
+ (specifically for MXRP) to avoid duplicating Moose-0.60-era
+ Moose::Role sugar. This means the error messages you get are
+ better, and there's a lot less ugly code in MXRP.
+ * Remove alias/excludes special case errors. They have long since been
+ replaced in core Moose by -alias and -excludes, and were finally
+ removed in Moose 2.0200.
+ * Expressly forbid using role { } inside role { } (which makes no
+ sense but I suppose you could accidentally trigger it)
+ * Documentation fix from [email protected]
+ https://github.com/sartak/MooseX-Role-Parameterized/pull/5
+
+-------------------------------------------------------------------
Old:
----
MooseX-Role-Parameterized-0.27.tar.gz
New:
----
MooseX-Role-Parameterized-1.00.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-MooseX-Role-Parameterized.spec ++++++
--- /var/tmp/diff_new_pack.0QHeDY/_old 2012-03-01 17:25:12.000000000 +0100
+++ /var/tmp/diff_new_pack.0QHeDY/_new 2012-03-01 17:25:12.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package perl-MooseX-Role-Parameterized
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,11 +17,11 @@
Name: perl-MooseX-Role-Parameterized
-Version: 0.27
+Version: 1.00
Release: 0
%define cpan_name MooseX-Role-Parameterized
Summary: Roles with composition parameters
-License: GPL-1.0+ or Artistic-1.0
+License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/MooseX-Role-Parameterized/
Source:
http://www.cpan.org/authors/id/S/SA/SARTAK/%{cpan_name}-%{version}.tar.gz
@@ -30,11 +30,47 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
-BuildRequires: perl(Moose) >= 0.78
+BuildRequires: perl(Moose) >= 2.0300
BuildRequires: perl(Test::Fatal)
BuildRequires: perl(Test::Moose)
BuildRequires: perl(Test::More) >= 0.96
-Requires: perl(Moose) >= 0.78
+#BuildRequires: perl(Bar)
+#BuildRequires: perl(Foo)
+#BuildRequires: perl(Foo::Role)
+#BuildRequires: perl(inc::Module::Install)
+#BuildRequires: perl(JSON)
+#BuildRequires: perl(LWP::Simple)
+#BuildRequires: perl(Module::Build)
+#BuildRequires: perl(Module::Install::AutoManifest)
+#BuildRequires: perl(Module::Install::Base)
+#BuildRequires: perl(Module::Install::GithubMeta)
+#BuildRequires: perl(Module::Install::ManifestSkip)
+#BuildRequires: perl(Moose::Exporter)
+#BuildRequires: perl(Moose::Meta::Role)
+#BuildRequires: perl(Moose::Role)
+#BuildRequires: perl(Moose::Util::TypeConstraints)
+#BuildRequires: perl(MooseX::Role::Parameterized)
+#BuildRequires: perl(MooseX::Role::Parameterized::Meta::Role::Parameterizable)
+#BuildRequires: perl(MooseX::Role::Parameterized::Meta::Role::Parameterized)
+#BuildRequires: perl(MooseX::Role::Parameterized::Meta::Trait::Parameterized)
+#BuildRequires: perl(MooseX::Role::Parameterized::Parameters)
+#BuildRequires: perl(MyCompositeRoleA)
+#BuildRequires: perl(MyItem::Role::Equippable)
+#BuildRequires: perl(MyItem::Role::Wearable)
+#BuildRequires: perl(MyPRole)
+#BuildRequires: perl(MyRole)
+#BuildRequires: perl(MyRole::Delegator)
+#BuildRequires: perl(MyRole::LogMethod)
+#BuildRequires: perl(MyRole::Parameterized)
+#BuildRequires: perl(MyRole::Sans::Block)
+#BuildRequires: perl(MyRole::Storage)
+#BuildRequires: perl(MyTrait)
+#BuildRequires: perl(OtherRole)
+#BuildRequires: perl(Parse::CPAN::Meta)
+#BuildRequires: perl(P::Role)
+#BuildRequires: perl(Test::Consumer)
+#BuildRequires: perl(YAML::Tiny)
+Requires: perl(Moose) >= 2.0300
%{perl_requires}
%description
@@ -81,9 +117,6 @@
%perl_process_packlist
%perl_gen_filelist
-%clean
-%{__rm} -rf %{buildroot}
-
%files -f %{name}.files
%defattr(-,root,root,755)
%doc Changes
++++++ MooseX-Role-Parameterized-0.27.tar.gz ->
MooseX-Role-Parameterized-1.00.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MooseX-Role-Parameterized-0.27/Changes
new/MooseX-Role-Parameterized-1.00/Changes
--- old/MooseX-Role-Parameterized-0.27/Changes 2011-08-22 20:58:49.000000000
+0200
+++ new/MooseX-Role-Parameterized-1.00/Changes 2012-01-12 18:46:02.000000000
+0100
@@ -1,5 +1,22 @@
Changes for MooseX-Role-Parameterized
+1.00 January 12, 2012
+ * MooseX::Role::Parameterized now depends on Moose 2.0300
+ released 2011-09-23 for its several core improvements, hence the
+ major version number bump.
+
+ * MXRP now uses the new meta_lookup feature added to Moose 2.0300
+ (specifically for MXRP) to avoid duplicating Moose-0.60-era
+ Moose::Role sugar. This means the error messages you get are
+ better, and there's a lot less ugly code in MXRP.
+ * Remove alias/excludes special case errors. They have long since been
+ replaced in core Moose by -alias and -excludes, and were finally
+ removed in Moose 2.0200.
+ * Expressly forbid using role { } inside role { } (which makes no
+ sense but I suppose you could accidentally trigger it)
+ * Documentation fix from [email protected]
+ https://github.com/sartak/MooseX-Role-Parameterized/pull/5
+
0.27 August 22, 2011
* Remove MooseX::Role::Parameterized::Meta::Parameter; instead,
the default for parameters of (is => 'ro') is set by the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MooseX-Role-Parameterized-0.27/META.yml
new/MooseX-Role-Parameterized-1.00/META.yml
--- old/MooseX-Role-Parameterized-0.27/META.yml 2011-08-22 20:58:54.000000000
+0200
+++ new/MooseX-Role-Parameterized-1.00/META.yml 2012-01-12 18:45:11.000000000
+0100
@@ -21,7 +21,7 @@
- inc
- t
requires:
- Moose: 0.78
+ Moose: 2.0300
perl: 5.8.1
resources:
homepage: http://github.com/sartak/MooseX-Role-Parameterized/tree
@@ -30,4 +30,4 @@
type: git
url: git://github.com/sartak/MooseX-Role-Parameterized.git
web: http://github.com/sartak/MooseX-Role-Parameterized/tree
-version: 0.27
+version: 1.00
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MooseX-Role-Parameterized-0.27/Makefile.PL
new/MooseX-Role-Parameterized-1.00/Makefile.PL
--- old/MooseX-Role-Parameterized-0.27/Makefile.PL 2011-08-22
20:58:49.000000000 +0200
+++ new/MooseX-Role-Parameterized-1.00/Makefile.PL 2011-09-26
20:54:02.000000000 +0200
@@ -9,7 +9,7 @@
all_from 'lib/MooseX/Role/Parameterized.pm';
githubmeta;
-requires 'Moose' => '0.78';
+requires 'Moose' => '2.0300';
test_requires 'Test::Moose';
test_requires 'Test::More' => '0.96';
test_requires 'Test::Fatal';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/MooseX-Role-Parameterized-0.27/lib/MooseX/Role/Parameterized/Meta/Role/Parameterizable.pm
new/MooseX-Role-Parameterized-1.00/lib/MooseX/Role/Parameterized/Meta/Role/Parameterizable.pm
---
old/MooseX-Role-Parameterized-0.27/lib/MooseX/Role/Parameterized/Meta/Role/Parameterizable.pm
2011-08-22 20:58:49.000000000 +0200
+++
new/MooseX-Role-Parameterized-1.00/lib/MooseX/Role/Parameterized/Meta/Role/Parameterizable.pm
2012-01-12 18:38:14.000000000 +0100
@@ -7,7 +7,11 @@
use MooseX::Role::Parameterized::Meta::Role::Parameterized;
use MooseX::Role::Parameterized::Parameters;
-use constant parameterized_role_metaclass =>
'MooseX::Role::Parameterized::Meta::Role::Parameterized';
+has parameterized_role_metaclass => (
+ is => 'ro',
+ isa => 'ClassName',
+ default => 'MooseX::Role::Parameterized::Meta::Role::Parameterized',
+);
has parameters_class => (
is => 'ro',
@@ -19,15 +23,11 @@
is => 'rw',
isa => 'Moose::Meta::Class',
lazy => 1,
- default => sub {
- my $self = shift;
-
- $self->parameters_class->meta->create_anon_class(
- superclasses => [$self->parameters_class],
- );
- },
+ builder => '_build_parameters_metaclass',
handles => {
- has_parameter => 'has_attribute',
+ has_parameter => 'has_attribute',
+ add_parameter => 'add_attribute',
+ construct_parameters => 'new_object',
},
);
@@ -37,30 +37,12 @@
predicate => 'has_role_generator',
);
-sub add_parameter {
+sub _build_parameters_metaclass {
my $self = shift;
- my $name = shift;
-
- confess "You must provide a name for the parameter"
- if !defined($name);
- confess "The parameter name ($name) is currently forbidden"
- if $name eq 'alias'
- || $name eq 'excludes';
-
- $self->parameters_metaclass->add_attribute($name => @_);
-}
-
-sub construct_parameters {
- my $self = shift;
- my %args = @_;
-
- for my $name ('alias', 'excludes') {
- confess "The parameter name ($name) is currently forbidden"
- if exists $args{$name};
- }
-
- $self->parameters_metaclass->new_object(\%args);
+ return $self->parameters_class->meta->create_anon_class(
+ superclasses => [$self->parameters_class],
+ );
}
sub generate_role {
@@ -146,14 +128,19 @@
=head1 DESCRIPTION
-This is the metaclass for parameterizable roles, roles that have their
-parameters currently unbound. These are the roles that you use L<Moose/with>,
-but instead of composing the parameterizable role, we construct a new
-parameterized role
-(L<MooseX::Role::Parameterized::Meta::Role::Parameterized>).
+This is the metaclass for parameterizable roles, roles that have
+their parameters currently unbound. These are the roles that you
+use L<Moose/with>, but instead of composing the parameterizable
+role, we construct a new parameterized role
+(L<MooseX::Role::Parameterized::Meta::Role::Parameterized>) and use
+that new parameterized instead.
=head1 ATTRIBUTES
+=head2 parameterized_role_metaclass
+
+The name of the class that will be used to construct the parameterized role.
+
=head2 parameters_class
The name of the class that will be used to construct the parameters object.
@@ -177,9 +164,8 @@
=head2 add_parameter $name, %options
-Basically delegates to L<Moose::Meta::Class/add_attribute> on the
-L</parameters_metaclass> but with error messages that refer to a "parameter"
-not an "attribute".
+Delegates to L<Moose::Meta::Class/add_attribute> on the
+L</parameters_metaclass> object.
=head2 construct_parameters %arguments
@@ -190,11 +176,27 @@
=head2 generate_role %arguments
-Returns a new instance of
-L<MooseX::Role::Parameterized::Meta::Role::Parameterized> based on the
-arguments. The arguments are a hash reference of C<parameters> and, if
-available, a C<consumer> metaobject. A C<package> argument may be given to use
-a specific package name instead of autogenerating one.
+This method generates and returns a new instance of
+L</parameterized_role_metaclass>. It can take any combination of
+three named parameters:
+
+=over 4
+
+=item arguments
+
+A hashref of parameters for the role, same as would be passed in at a "with"
+statement.
+
+=item package
+
+A package name that, if present, we will use for the generated role; if not,
+we generate an anonymous role.
+
+=item consumer
+
+A consumer metaobject, if available.
+
+=back
=head2 apply
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/MooseX-Role-Parameterized-0.27/lib/MooseX/Role/Parameterized/Tutorial.pod
new/MooseX-Role-Parameterized-1.00/lib/MooseX/Role/Parameterized/Tutorial.pod
---
old/MooseX-Role-Parameterized-0.27/lib/MooseX/Role/Parameterized/Tutorial.pod
2011-04-22 22:28:58.000000000 +0200
+++
new/MooseX-Role-Parameterized-1.00/lib/MooseX/Role/Parameterized/Tutorial.pod
2011-08-29 18:20:30.000000000 +0200
@@ -29,10 +29,11 @@
=head3 C<with>
-The syntax of a class consuming a parameterized role has not changed from the
-standard C<with>. You pass in parameters just like you pass in C<-alias> and
-C<-excludes> to ordinary roles (though without hyphens, since these are not
-core Moose composition parameters):
+The syntax of a class consuming a parameterized role has not changed
+from the standard C<with>. You pass in parameters just like you
+pass in C<-alias> and C<-excludes> to ordinary roles (though your
+custom parameters do not get hyphens, since these are not core Moose
+composition parameters):
with 'MyRole::InstrumentMethod' => {
method_name => 'dbh_do',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/MooseX-Role-Parameterized-0.27/lib/MooseX/Role/Parameterized.pm
new/MooseX-Role-Parameterized-1.00/lib/MooseX/Role/Parameterized.pm
--- old/MooseX-Role-Parameterized-0.27/lib/MooseX/Role/Parameterized.pm
2011-08-22 20:58:49.000000000 +0200
+++ new/MooseX-Role-Parameterized-1.00/lib/MooseX/Role/Parameterized.pm
2012-01-12 18:44:03.000000000 +0100
@@ -3,29 +3,28 @@
use Moose::Role ();
use Moose::Exporter;
use Carp 'confess';
-use Scalar::Util 'blessed';
use MooseX::Role::Parameterized::Meta::Role::Parameterizable;
-our $VERSION = '0.27';
+our $VERSION = '1.00';
our $CURRENT_METACLASS;
+sub current_metaclass { $CURRENT_METACLASS }
+
Moose::Exporter->setup_import_methods(
- with_caller => ['parameter', 'role', 'method', 'has', 'with', 'extends',
- 'requires', 'excludes', 'augment', 'inner', 'before',
- 'after', 'around', 'super', 'override'],
- as_is => [ 'confess', 'blessed' ],
+ also => 'Moose::Role',
+ with_caller => ['parameter', 'role'],
+ with_meta => ['method'],
+ meta_lookup => sub { current_metaclass || Class::MOP::class_of(shift) },
);
-sub current_metaclass { $CURRENT_METACLASS }
-
sub parameter {
my $caller = shift;
confess "'parameter' may not be used inside of the role block"
- if $CURRENT_METACLASS && $CURRENT_METACLASS->genitor->name eq $caller;
+ if current_metaclass && current_metaclass->genitor->name eq $caller;
- my $meta = Class::MOP::class_of($caller);
+ my $meta = Class::MOP::class_of($caller);
my $names = shift;
$names = [$names] if !ref($names);
@@ -41,6 +40,10 @@
sub role (&) {
my $caller = shift;
my $role_generator = shift;
+
+ confess "'role' may not be used inside of the role block"
+ if current_metaclass && current_metaclass->genitor->name eq $caller;
+
Class::MOP::class_of($caller)->role_generator($role_generator);
}
@@ -52,27 +55,13 @@
return Moose::Role->init_meta(%options);
}
-sub has {
- my $caller = shift;
- my $meta = $CURRENT_METACLASS || Class::MOP::class_of($caller);
-
- my $names = shift;
- $names = [$names] if !ref($names);
-
- for my $name (@$names) {
- $meta->add_attribute($name, @_);
- }
-}
-
sub method {
- my $caller = shift;
- my $meta = $CURRENT_METACLASS || Class::MOP::class_of($caller);
-
- my $name = shift;
- my $body = shift;
+ my $meta = shift;
+ my $name = shift;
+ my $body = shift;
my $method = $meta->method_metaclass->wrap(
- package_name => $caller,
+ package_name => $meta->name,
name => $name,
body => $body,
);
@@ -80,79 +69,6 @@
$meta->add_method($name => $method);
}
-sub _add_method_modifier {
- my $type = shift;
- my $caller = shift;
- my $meta = $CURRENT_METACLASS || Class::MOP::class_of($caller);
-
- my $code = pop @_;
-
- for (@_) {
- Carp::croak "Roles do not currently support "
- . ref($_)
- . " references for $type method modifiers"
- if ref $_;
-
- my $add_method = "add_${type}_method_modifier";
- $meta->$add_method($_, $code);
- }
-}
-
-sub before {
- _add_method_modifier('before', @_);
-}
-
-sub after {
- _add_method_modifier('after', @_);
-}
-
-sub around {
- _add_method_modifier('around', @_);
-}
-
-sub with {
- my $caller = shift;
- my $meta = $CURRENT_METACLASS || Class::MOP::class_of($caller);
-
- Moose::Util::apply_all_roles($meta, @_);
-}
-
-sub requires {
- my $caller = shift;
- my $meta = $CURRENT_METACLASS || Class::MOP::class_of($caller);
-
- Carp::croak "Must specify at least one method" unless @_;
- $meta->add_required_methods(@_);
-}
-
-sub excludes {
- my $caller = shift;
- my $meta = $CURRENT_METACLASS || Class::MOP::class_of($caller);
-
- Carp::croak "Must specify at least one role" unless @_;
- $meta->add_excluded_roles(@_);
-}
-
-# see Moose.pm for discussion
-sub super {
- return unless $Moose::SUPER_BODY;
- $Moose::SUPER_BODY->(@Moose::SUPER_ARGS);
-}
-
-sub override {
- my $caller = shift;
- my $meta = $CURRENT_METACLASS || Class::MOP::class_of($caller);
-
- my ($name, $code) = @_;
- $meta->add_override_method_modifier($name, $code);
-}
-
-sub extends { Carp::croak "Roles do not currently support 'extends'" }
-
-sub inner { Carp::croak "Roles cannot support 'inner'" }
-
-sub augment { Carp::croak "Roles cannot support 'augment'" }
-
1;
__END__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/MooseX-Role-Parameterized-0.27/t/100-erroneous-keywords.t
new/MooseX-Role-Parameterized-1.00/t/100-erroneous-keywords.t
--- old/MooseX-Role-Parameterized-0.27/t/100-erroneous-keywords.t
2011-08-22 20:52:36.000000000 +0200
+++ new/MooseX-Role-Parameterized-1.00/t/100-erroneous-keywords.t
2011-08-29 18:23:15.000000000 +0200
@@ -10,12 +10,12 @@
::like( ::exception {
parameter()
- }, qr/^You must provide a name for the parameter/);
+ }, qr/^You must provide a name for the attribute/);
role {
::like( ::exception {
extends 'MyRole::Parameterized';
- }, qr/^Roles do not currently support 'extends'/);
+ }, qr/^Roles do not support 'extends' \(you can use 'with' to
specialize a role\)/);
::like( ::exception {
inner()
}, qr/^Roles cannot support 'inner'/);
@@ -25,6 +25,9 @@
::like( ::exception {
parameter()
}, qr/^'parameter' may not be used inside of the role block/);
+ ::like( ::exception {
+ role {}
+ }, qr/^'role' may not be used inside of the role block/);
};
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/MooseX-Role-Parameterized-0.27/t/101-alias-excludes.t
new/MooseX-Role-Parameterized-1.00/t/101-alias-excludes.t
--- old/MooseX-Role-Parameterized-0.27/t/101-alias-excludes.t 2011-04-22
22:54:24.000000000 +0200
+++ new/MooseX-Role-Parameterized-1.00/t/101-alias-excludes.t 2011-08-29
18:22:12.000000000 +0200
@@ -8,30 +8,32 @@
package MyRole;
use MooseX::Role::Parameterized;
- ::like( ::exception {
+ ::is( ::exception {
parameter 'alias';
- }, qr/^The parameter name \(alias\) is currently forbidden/);
+ }, undef);
- ::like( ::exception {
+ ::is( ::exception {
parameter 'excludes';
- }, qr/^The parameter name \(excludes\) is currently forbidden/);
+ }, undef);
+
+ role { }
};
do {
package MyClass;
use Moose;
- ::like( ::exception {
+ ::is( ::exception {
with MyRole => {
alias => 1,
};
- }, qr/^The parameter name \(alias\) is currently forbidden/);
+ }, undef);
- ::like( ::exception {
+ ::is( ::exception {
with MyRole => {
excludes => 1,
};
- }, qr/^The parameter name \(excludes\) is currently forbidden/);
+ }, undef);
};
do {
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]