This is an automated email from the git hooks/post-receive script.

intrigeri pushed a commit to annotated tag 0.19
in repository libtest-bdd-cucumber-perl.

commit 8f71cf553c8ea2503f8117e8e4f9f463825d70d3
Author: glauschwuffel <glauschwuf...@nomaden.org>
Date:   Sat May 31 07:47:20 2014 +0200

    Added temp var for langdef so the lines referring to it read a bit nicer. 
Reformatted changed functions with perltidy (tabs are gone now). Minor 
corrections to keyword regexes.
---
 lib/Test/BDD/Cucumber/Parser.pm | 204 +++++++++++++++++++++-------------------
 1 file changed, 108 insertions(+), 96 deletions(-)

diff --git a/lib/Test/BDD/Cucumber/Parser.pm b/lib/Test/BDD/Cucumber/Parser.pm
index d3b2d6e..d05d52c 100644
--- a/lib/Test/BDD/Cucumber/Parser.pm
+++ b/lib/Test/BDD/Cucumber/Parser.pm
@@ -128,113 +128,125 @@ sub _extract_feature_name {
 }
 
 sub _extract_conditions_of_satisfaction {
-       my ( $self, $feature, @lines ) = @_;
-
-       while ( my $line = shift( @lines ) ) {
-               next if $line->is_comment || $line->is_blank;
-
-               if ( $line->content =~ 
m/^((?:$self->{langdef}->{background}):|(?:$self->{langdef}->{scenario}):|@)/ ) 
{
-                       unshift( @lines, $line );
-                       last;
-               } else {
-                       push( @{ $feature->satisfaction }, $line );
-               }
-       }
+    my ( $self, $feature, @lines ) = @_;
+
+    while ( my $line = shift(@lines) ) {
+        next if $line->is_comment || $line->is_blank;
+
+        my $langdef = $self->{langdef};
+        if ( $line->content =~ 
m/^((?:$langdef->{background}):|(?:$langdef->{scenario}):|@)/) {
+            unshift( @lines, $line );
+            last;
+        } else {
+            push( @{ $feature->satisfaction }, $line );
+        }
+    }
 
-       return $feature, $self->_remove_next_blanks( @lines );
+    return $feature, $self->_remove_next_blanks(@lines);
 }
 
 sub _extract_scenarios {
-       my ( $self, $feature, @lines ) = @_;
-       my $scenarios = 0;
-       my @scenario_tags;
-
-       while ( my $line = shift( @lines ) ) {
-               next if $line->is_comment || $line->is_blank;
-
-               if ( $line->content =~ 
m/^((?:$self->{langdef}->{background})|(?:$self->{langdef}->{scenario}))(?: 
Outline)?: ?(.+)?/ ) {
-                       my ( $type, $name ) = ( $1, $2 );
-
-                       # Only one background section, and it must be the first
-                       if ( $scenarios++ && $type =~ 
m/^($self->{langdef}->{background})/ ) {
-                               ouch 'parse_error', "Background not allowed 
after scenarios",
-                                       $line;
-                       }
-
-                       # Create the scenario
-                       my $scenario = 
Test::BDD::Cucumber::Model::Scenario->new({
-                               ( $name ? ( name => $name ) : () ),
-                               background => $type =~ 
m/^($self->{langdef}->{background})/ ? 1 : 0,
-                               line       => $line,
-                               tags       => [@{$feature->tags}, 
@scenario_tags]
-                       });
-                       @scenario_tags = ();
-
-                       # Attempt to populate it
-                       @lines = $self->_extract_steps( $feature, $scenario, 
@lines );
-
-                       if ( $type =~ m/^($self->{langdef}->{background})/ ) {
-                               $feature->background( $scenario );
-                       } else {
-                               push( @{ $feature->scenarios }, $scenario );
-                       }
-
-               # Scenario-level tags
-               } elsif ( $line->content =~ m/^\s*\@\w/ ) {
-                       my @tags = $line->content =~ m/\@([^\s]+)/g;
-                       push( @scenario_tags, @tags );
-
-               } else {
-                       ouch 'parse_error', "Malformed scenario line", $line;
-               }
-       }
+    my ( $self, $feature, @lines ) = @_;
+    my $scenarios = 0;
+    my @scenario_tags;
+
+    while ( my $line = shift(@lines) ) {
+        next if $line->is_comment || $line->is_blank;
+
+        my $langdef = $self->{langdef};
+        if ( $line->content =~ 
m/^((?:$langdef->{background})|(?:$langdef->{scenario}))(?: Outline)?: ?(.+)?/) 
{
+            my ( $type, $name ) = ( $1, $2 );
+
+            # Only one background section, and it must be the first
+            if ( $scenarios++ && $type =~ m/^($langdef->{background})/ ) {
+                ouch 'parse_error', "Background not allowed after scenarios",
+                  $line;
+            }
+
+            # Create the scenario
+            my $scenario = Test::BDD::Cucumber::Model::Scenario->new(
+                {
+                    ( $name ? ( name => $name ) : () ),
+                    background => $type =~ m/^($langdef->{background})/ ? 1 : 
0,
+                    line => $line,
+                    tags => [ @{ $feature->tags }, @scenario_tags ]
+                }
+            );
+            @scenario_tags = ();
+
+            # Attempt to populate it
+            @lines = $self->_extract_steps( $feature, $scenario, @lines );
+
+            if ( $type =~ m/^($langdef->{background})/ ) {
+                $feature->background($scenario);
+            } else {
+                push( @{ $feature->scenarios }, $scenario );
+            }
+
+            # Scenario-level tags
+        } elsif ( $line->content =~ m/^\s*\@\w/ ) {
+            my @tags = $line->content =~ m/\@([^\s]+)/g;
+            push( @scenario_tags, @tags );
+
+        } else {
+            ouch 'parse_error', "Malformed scenario line", $line;
+        }
+    }
 
-       return $feature, $self->_remove_next_blanks( @lines );
+    return $feature, $self->_remove_next_blanks(@lines);
 }
 
 sub _extract_steps {
-       my ( $self, $feature, $scenario, @lines ) = @_;
-
-        my @givens = split( /\|/, $self->{langdef}->{given} );
-       my $last_verb = $givens[-1];
-
-       while ( my $line = shift( @lines ) ) {
-               next if $line->is_comment;
-               last if $line->is_blank;
-
-               # Conventional step?
-               if ( $line->content =~ 
m/^((?:$self->{langdef}->{given})|(?:$self->{langdef}->{and})|(?:$self->{langdef}->{when})|(?:$self->{langdef}->{then})|(?:$self->{langdef}->{but}))
 (.+)/ ) {
-                       my ( $verb, $text ) = ( $1, $2 );
-                       my $original_verb = $verb;
-                       $verb = 'Given' if $verb =~ 
m/^($self->{langdef}->{given}$)/;
-                       $verb = 'When' if  $verb =~ 
m/^($self->{langdef}->{when}$)/;
-                       $verb = 'Then' if  $verb =~ 
m/^($self->{langdef}->{then}$)/;
-                       $verb = $last_verb if $verb =~ 
m/^($self->{langdef}->{and}$)/ or $verb =~ m/^($self->{langdef}->{but}$)/;
+    my ( $self, $feature, $scenario, @lines ) = @_;
+
+    my $langdef   = $self->{langdef};
+    my @givens    = split( /\|/, $langdef->{given} );
+    my $last_verb = $givens[-1];
+
+    while ( my $line = shift(@lines) ) {
+        next if $line->is_comment;
+        last if $line->is_blank;
+
+        # Conventional step?
+        if ( $line->content =~
+m/^((?:$langdef->{given})|(?:$langdef->{and})|(?:$langdef->{when})|(?:$langdef->{then})|(?:$langdef->{but}))
 (.+)/
+          )
+        {
+            my ( $verb, $text ) = ( $1, $2 );
+            my $original_verb = $verb;
+            $verb = 'Given' if $verb =~ m/^($langdef->{given})$/;
+            $verb = 'When'  if $verb =~ m/^($langdef->{when})$/;
+            $verb = 'Then'  if $verb =~ m/^($langdef->{then})$/;
+            $verb = $last_verb
+              if $verb =~ m/^($langdef->{and})$/
+              or $verb =~ m/^($langdef->{but}$)/;
             $last_verb = $verb;
 
-                       my $step = Test::BDD::Cucumber::Model::Step->new({
-                               text => $text,
-                               verb => $verb,
-                               line => $line,
-                               verb_original => $original_verb,
-                       });
-
-                       @lines = $self->_extract_step_data(
-                               $feature, $scenario, $step, @lines );
-
-                       push( @{ $scenario->steps }, $step );
-
-               # Outline data block...
-               } elsif ( $line->content =~ 
m/^($self->{langdef}->{examples}):$/ ) {
-                       return $self->_extract_table( 6, $scenario,
-                           $self->_remove_next_blanks( @lines ));
-               } else {
-                   warn $line->content;
-                       ouch 'parse_error', "Malformed step line", $line;
-               }
-       }
+            my $step = Test::BDD::Cucumber::Model::Step->new(
+                {
+                    text          => $text,
+                    verb          => $verb,
+                    line          => $line,
+                    verb_original => $original_verb,
+                }
+            );
+
+            @lines =
+              $self->_extract_step_data( $feature, $scenario, $step, @lines );
+
+            push( @{ $scenario->steps }, $step );
+
+            # Outline data block...
+        } elsif ( $line->content =~ m/^($langdef->{examples}):$/ ) {
+            return $self->_extract_table( 6, $scenario,
+                $self->_remove_next_blanks(@lines) );
+        } else {
+            warn $line->content;
+            ouch 'parse_error', "Malformed step line", $line;
+        }
+    }
 
-       return $self->_remove_next_blanks( @lines );
+    return $self->_remove_next_blanks(@lines);
 }
 
 sub _extract_step_data {

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/libtest-bdd-cucumber-perl.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to