Module: Cucumber::Core

Defined in:
lib/cucumber/core.rb,
lib/cucumber/core/ast/tag.rb,
lib/cucumber/core/version.rb,
lib/cucumber/core/ast/step.rb,
lib/cucumber/core/compiler.rb,
lib/cucumber/core/ast/names.rb,
lib/cucumber/core/test/case.rb,
lib/cucumber/core/test/step.rb,
lib/cucumber/core/test/timer.rb,
lib/cucumber/core/ast/comment.rb,
lib/cucumber/core/ast/feature.rb,
lib/cucumber/core/test/mapper.rb,
lib/cucumber/core/test/runner.rb,
lib/cucumber/core/ast/location.rb,
lib/cucumber/core/ast/scenario.rb,
lib/cucumber/core/test/filters.rb,
lib/cucumber/core/test/mapping.rb,
lib/cucumber/core/ast/background.rb,
lib/cucumber/core/ast/data_table.rb,
lib/cucumber/core/ast/doc_string.rb,
lib/cucumber/core/gherkin/parser.rb,
lib/cucumber/core/gherkin/writer.rb,
lib/cucumber/core/ast/outline_step.rb,
lib/cucumber/core/gherkin/document.rb,
lib/cucumber/core/ast/examples_table.rb,
lib/cucumber/core/test/hook_compiler.rb,
lib/cucumber/core/gherkin/ast_builder.rb,
lib/cucumber/core/ast/describes_itself.rb,
lib/cucumber/core/ast/empty_background.rb,
lib/cucumber/core/ast/scenario_outline.rb,
lib/cucumber/core/ast/multiline_argument.rb,
lib/cucumber/core/gherkin/writer/helpers.rb,
lib/cucumber/core/test/filters/tag_filter.rb,
lib/cucumber/core/ast/empty_multiline_argument.rb

Defined Under Namespace

Modules: Ast, Gherkin, Test Classes: Compiler, Version

Instance Method Summary collapse

Instance Method Details

#compile(gherkin_documents, last_receiver, filters = []) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/cucumber/core.rb', line 19

def compile(gherkin_documents, last_receiver, filters = [])
  first_receiver = filters.reduce(last_receiver) do |receiver, (filter_type, args)|
    filter_type.new(*args + [receiver])
  end
  compiler = Compiler.new(first_receiver)
  parse gherkin_documents, compiler
  self
end

#execute(gherkin_documents, mappings, report, filters = [], run_options = {}) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/cucumber/core.rb', line 28

def execute(gherkin_documents, mappings, report, filters = [], run_options = {})
  receiver = Test::Runner.new(report, run_options)
  filters << [Test::HookCompiler, [mappings]]
  filters << [Test::Mapper, [mappings]]
  compile gherkin_documents, receiver, filters
  self
end

#parse(gherkin_documents, compiler) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/cucumber/core.rb', line 10

def parse(gherkin_documents, compiler)
  parser = Core::Gherkin::Parser.new(compiler)
  gherkin_documents.each do |document|
    parser.document document
  end
  parser.done
  self
end