]> git.vpit.fr Git - perl/modules/rgit.git/blobdiff - lib/App/Rgit/Command.pm
Don't depend on Object::Tiny anymore
[perl/modules/rgit.git] / lib / App / Rgit / Command.pm
index 454f4d3d691b8c1be4486fa293b9830beb90f517..c43cc6c5c9e7cbe21a3a4622acd5e8c6b2163bbd 100644 (file)
@@ -5,8 +5,6 @@ use warnings;
 
 use Carp qw/croak/;
 
-use Object::Tiny qw/cmd args policy/;
-
 use App::Rgit::Utils qw/validate :codes/;
 
 =head1 NAME
@@ -15,11 +13,11 @@ App::Rgit::Command - Base class for App::Rgit commands.
 
 =head1 VERSION
 
-Version 0.05
+Version 0.06
 
 =cut
 
-our $VERSION = '0.05';
+our $VERSION = '0.06';
 
 =head1 DESCRIPTION
 
@@ -50,11 +48,11 @@ sub new {
                                unless $class->isa($action);
  }
  eval "require $action; 1" or croak "Couldn't load $action: $@";
- $class->SUPER::new(
+ bless {
   cmd    => $cmd,
   args   => $args{args} || [ ],
   policy => $args{policy},
);
}, $class;
 }
 
 =head2 C<< action $cmd [ => $pkg ] >>
@@ -81,15 +79,15 @@ sub action {
 =head2 C<report $conf, $repo, $status>
 
 Reports that the execution of the command in C<$repo> exited with C<$status> to the current command's policy.
-Returns what the policy callback returned, which should be one of the policy codes listed in C<App::Rgit::Utils>.
+Returns what policy C<report> method returned, which should be one of the policy codes listed in C<App::Rgit::Utils>.
 
 =cut
 
 sub report {
  my ($self) = @_;
- my $cb = $self->policy;
return $_[3] ? LAST : NEXT unless $cb;
- my $code = $cb->(@_);
+
my $code = $self->policy->report(@_);
+
  return defined $code ? $code : NEXT;
 }
 
@@ -99,7 +97,13 @@ sub report {
 
 =head2 C<policy>
 
-Accessors.
+Read-only accessors.
+
+=cut
+
+BEGIN {
+ eval "sub $_ { \$_[0]->{$_} }" for qw/cmd args policy/;
+}
 
 =head2 C<run $conf>
 
@@ -129,7 +133,7 @@ You can find documentation for this module with the perldoc command.
 
 =head1 COPYRIGHT & LICENSE
 
-Copyright 2008 Vincent Pit, all rights reserved.
+Copyright 2008-2009 Vincent Pit, all rights reserved.
 
 This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.