class Cucumber::Formatter::AstLookup::KeywordLookupBuilder

Attributes

lookup_hash[R]

Public Class Methods

new(gherkin_document) click to toggle source
# File lib/cucumber/formatter/ast_lookup.rb, line 131
def initialize(gherkin_document)
  @lookup_hash = {}
  process_scenario_container(gherkin_document.feature, nil)
end

Private Instance Methods

process_scenario_container(container, original_previous_node) click to toggle source
# File lib/cucumber/formatter/ast_lookup.rb, line 138
def process_scenario_container(container, original_previous_node)
  container.children.each do |child|
    previous_node = original_previous_node
    if child.respond_to?(:rule) && child.rule
      process_scenario_container(child.rule, original_previous_node)
    elsif child.respond_to?(:scenario) && child.scenario
      child.scenario.steps.each do |step|
        node = KeywordSearchNode.new(step.keyword, previous_node)
        @lookup_hash[step.location.line] = node
        previous_node = node
      end
    elsif child.respond_to?(:background) && child.background
      child.background.steps.each do |step|
        node = KeywordSearchNode.new(step.keyword, previous_node)
        @lookup_hash[step.location.line] = node
        previous_node = node
        original_previous_node = previous_node
      end
    end
  end
end