Sha256: 9a715867bb07c483e291967687f4765a78904bf8ebbf800e2a58070866691621

Contents?: true

Size: 786 Bytes

Versions: 36

Compression:

Stored size: 786 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, :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

36 entries across 36 versions & 1 rubygems

Version Path
gherkin-1.0.12 lib/gherkin/parser/sexp.rb
gherkin-1.0.12-i386-mswin32 lib/gherkin/parser/sexp.rb
gherkin-1.0.12-i386-mingw32 lib/gherkin/parser/sexp.rb
gherkin-1.0.12-java lib/gherkin/parser/sexp.rb
gherkin-1.0.11 lib/gherkin/parser/sexp.rb
gherkin-1.0.11-i386-mswin32 lib/gherkin/parser/sexp.rb
gherkin-1.0.11-i386-mingw32 lib/gherkin/parser/sexp.rb
gherkin-1.0.11-java lib/gherkin/parser/sexp.rb
gherkin-1.0.10 lib/gherkin/parser/sexp.rb
gherkin-1.0.10-i386-mswin32 lib/gherkin/parser/sexp.rb
gherkin-1.0.10-i386-mingw32 lib/gherkin/parser/sexp.rb
gherkin-1.0.10-java lib/gherkin/parser/sexp.rb
gherkin-1.0.9 lib/gherkin/parser/sexp.rb
gherkin-1.0.9-i386-mswin32 lib/gherkin/parser/sexp.rb
gherkin-1.0.9-i386-mingw32 lib/gherkin/parser/sexp.rb
gherkin-1.0.9-java lib/gherkin/parser/sexp.rb
gherkin-1.0.8 lib/gherkin/parser/sexp.rb
gherkin-1.0.8-i386-mswin32 lib/gherkin/parser/sexp.rb
gherkin-1.0.8-i386-mingw32 lib/gherkin/parser/sexp.rb
gherkin-1.0.8-java lib/gherkin/parser/sexp.rb