]> Frank Brehm's Git Trees - my-stuff/perl.git/commitdiff
Rolle für Testmodus dazu
authorFrank Brehm <frank@brehm-online.com>
Fri, 6 Aug 2010 08:50:08 +0000 (08:50 +0000)
committerFrank Brehm <frank@brehm-online.com>
Fri, 6 Aug 2010 08:50:08 +0000 (08:50 +0000)
git-svn-id: http://svn.brehm-online.com/svn/my-stuff/Perl@109 ec8d2aa5-1599-4edb-8739-2b3a1bc399aa

lib/FrBr/Common/MooseX/Role/TestMode.pm [new file with mode: 0644]

diff --git a/lib/FrBr/Common/MooseX/Role/TestMode.pm b/lib/FrBr/Common/MooseX/Role/TestMode.pm
new file mode 100644 (file)
index 0000000..bfea557
--- /dev/null
@@ -0,0 +1,104 @@
+package FrBr::Common::MooseX::Role::TestMode;
+
+# $Id$
+# $URL$
+
+=head1 NAME
+
+FrBr::Common::MooseX::Role::TestMode
+
+=head1 DESCRIPTION
+
+Fügt die Eigenschaft 'testmode' dem Objekt hinzu
+
+=cut
+
+#---------------------------------------------------------------------------
+
+use Moose::Role;
+
+use Moose::Util::TypeConstraints;
+use Encode qw( decode_utf8 encode_utf8 );
+
+use utf8;
+
+use Carp qw(cluck);
+
+with 'FrBr::Common::MooseX::Role::Types';
+
+use version; our $VERSION = qv("0.0.1");
+
+############################################################################
+
+=head1 Benötigte Funktionen
+
+=cut
+
+requires 'debug';                   # im Moose-Objekt FrBr::Common::MooseX:App
+requires 'evaluate_config';         # in der Rolle FrBr::Common::MooseX::Role::Config
+
+############################################################################
+
+=head1 Attribute
+
+Eigene Attribute
+
+=cut
+
+#-----------------------------------------
+
+=head2 testmode
+
+Es sollten keine verändernden Aktionen durchgeführt werden
+
+=cut
+
+has 'testmode' => (
+    is              => 'rw',
+    isa             => 'Bool',
+    lazy            => 1,
+    traits          => [ 'Getopt' ],
+    cmd_flag        => 'testmode',
+    builder         => '_build_testmode',
+    documentation   => 'Testmodus - es werden keine verändernden Aktionen durchgeführt.',
+    cmd_aliases     => [ 'T', 'test', ],
+);
+
+#------
+
+sub _build_testmode {
+    return 0;
+}
+
+#---------------------------------------------------------------------------
+
+# Methoden dieser Rolle
+
+#---------------------------------
+
+after 'evaluate_config' => sub {
+
+    my $self = shift;
+
+    $self->debug( "Werte Konfigurationsdinge aus ..." );
+    return unless $self->config and keys %{ $self->config };
+
+    if ( $self->verbose >= 2 ) {
+        my $tmp = $self->testmode;
+    }
+
+    for my $key ( keys %{ $self->config } ) {
+        my $val = $self->config->{$key};
+        $self->testmode($val) if $key =~ /^test[_-]?mode$/i;
+    }
+
+};
+
+#---------------------------------------------------------------------------
+
+no Moose::Role;
+1;
+
+__END__
+
+# vim: noai: filetype=perl ts=4 sw=4 : expandtab