Class: Cucumber::Core::Gherkin::AstBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/cucumber/core/gherkin/ast_builder.rb

Overview

 Builds an AST of a feature by listening to events from the Gherkin parser.

Defined Under Namespace

Classes: BackgroundBuilder, Builder, FeatureBuilder, ScenarioBuilder, ScenarioOutlineBuilder

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ AstBuilder

Returns a new instance of AstBuilder.



12
13
14
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 12

def initialize(path)
  @path = path
end

Instance Method Details

#background(node) ⇒ Object



33
34
35
36
37
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 33

def background(node)
  builder = BackgroundBuilder.new(file, node)
  @feature_builder.background_builder = builder
  @current = builder
end

#eofObject



59
60
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 59

def eof
end

#examples(node) ⇒ Object



51
52
53
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 51

def examples(node)
  @current.add_examples file, node
end

#feature(node) ⇒ Object



29
30
31
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 29

def feature(node)
  @feature_builder = FeatureBuilder.new(file, node)
end

#language=(language) ⇒ Object



21
22
23
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 21

def language=(language)
  @language = language
end

#resultObject



16
17
18
19
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 16

def result
  return nil unless @feature_builder
  @feature_builder.result(language)
end

#scenario(node) ⇒ Object



39
40
41
42
43
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 39

def scenario(node)
  builder = ScenarioBuilder.new(file, node)
  @feature_builder.add_child builder
  @current = builder
end

#scenario_outline(node) ⇒ Object



45
46
47
48
49
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 45

def scenario_outline(node)
  builder = ScenarioOutlineBuilder.new(file, node)
  @feature_builder.add_child builder
  @current = builder
end

#step(node) ⇒ Object



55
56
57
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 55

def step(node)
  @current.add_step file, node
end

#syntax_error(state, event, legal_events, line) ⇒ Object



62
63
64
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 62

def syntax_error(state, event, legal_events, line)
  # raise "SYNTAX ERROR"
end

#uri(uri) ⇒ Object



25
26
27
# File 'lib/cucumber/core/gherkin/ast_builder.rb', line 25

def uri(uri)
  @path = uri
end