Sha256: 64229909a485fea52b9f87cac1d561959f17eca34e870ad215b0590dd17a6350

Contents?: true

Size: 799 Bytes

Versions: 40

Compression:

Stored size: 799 Bytes

Contents

module Gherkin
  module Parser
    class Sexp < Array
      def initialize(*args)
        super
        self[1] = self[1].to_a if event == :row # Special JRuby handling
      end

      def event
        self[0]
      end

      def keyword
        self[1]
      end
      
      def line_match?(lines)
        lines.include?(line)
      end

      def name_match?(name_regexen)
        return false unless [:feature, :background, :scenario, :scenario_outline, :examples].include?(event)
        name_regexen.detect{|name_regex| name =~ name_regex}
      end

      def replay(listener)
        listener.__send__(event, *args)
      end

    private

      def name
        self[2]
      end

      def line
        self[-1]
      end

      def args
        self[1..-1]
      end
    end
  end
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
gherkin-1.0.22 lib/gherkin/parser/sexp.rb
gherkin-1.0.22-i386-mswin32 lib/gherkin/parser/sexp.rb
gherkin-1.0.22-i386-mingw32 lib/gherkin/parser/sexp.rb
gherkin-1.0.22-java lib/gherkin/parser/sexp.rb
gherkin-1.0.21 lib/gherkin/parser/sexp.rb
gherkin-1.0.21-i386-mswin32 lib/gherkin/parser/sexp.rb
gherkin-1.0.21-i386-mingw32 lib/gherkin/parser/sexp.rb
gherkin-1.0.21-java lib/gherkin/parser/sexp.rb
gherkin-1.0.20 lib/gherkin/parser/sexp.rb
gherkin-1.0.20-i386-mswin32 lib/gherkin/parser/sexp.rb
gherkin-1.0.20-i386-mingw32 lib/gherkin/parser/sexp.rb
gherkin-1.0.20-java lib/gherkin/parser/sexp.rb
gherkin-1.0.19 lib/gherkin/parser/sexp.rb
gherkin-1.0.19-i386-mswin32 lib/gherkin/parser/sexp.rb
gherkin-1.0.19-i386-mingw32 lib/gherkin/parser/sexp.rb
gherkin-1.0.19-java lib/gherkin/parser/sexp.rb
gherkin-1.0.18 lib/gherkin/parser/sexp.rb
gherkin-1.0.18-i386-mswin32 lib/gherkin/parser/sexp.rb
gherkin-1.0.18-i386-mingw32 lib/gherkin/parser/sexp.rb
gherkin-1.0.18-java lib/gherkin/parser/sexp.rb