Sha256: 491324f382699e0c8d47ef4f73c55cab1eae76cf424f0311b90f730e66d50da3
Contents?: true
Size: 883 Bytes
Versions: 6
Compression:
Stored size: 883 Bytes
Contents
# frozen_string_literal: true require 'gherkin/token_scanner' require 'gherkin/token_matcher' require 'gherkin/parser' require 'gherkin/dialect' module Cucumber module Gherkin class StepsParser def initialize(builder, language) @builder = builder @language = language end def parse(text) dialect = ::Gherkin::Dialect.for(@language) token_matcher = ::Gherkin::TokenMatcher.new(@language) token_scanner = ::Gherkin::TokenScanner.new(feature_header(dialect) + text) parser = ::Gherkin::Parser.new gherkin_document = parser.parse(token_scanner, token_matcher) @builder.steps(gherkin_document[:feature][:children][0][:steps]) end def feature_header(dialect) %(#{dialect.feature_keywords[0]}: #{dialect.scenario_keywords[0]}: ) end end end end
Version data entries
6 entries across 6 versions & 1 rubygems