From 10d112c756e6f00bd12bebeb033070ac037cfe93 Mon Sep 17 00:00:00 2001 From: Frank Brehm Date: Fri, 6 Aug 2010 08:50:08 +0000 Subject: [PATCH] =?utf8?q?Rolle=20f=C3=BCr=20Testmodus=20dazu?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 | 104 ++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 lib/FrBr/Common/MooseX/Role/TestMode.pm diff --git a/lib/FrBr/Common/MooseX/Role/TestMode.pm b/lib/FrBr/Common/MooseX/Role/TestMode.pm new file mode 100644 index 0000000..bfea557 --- /dev/null +++ b/lib/FrBr/Common/MooseX/Role/TestMode.pm @@ -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 -- 2.39.5