module Cucumber::Core

Public Instance Methods

compile(gherkin_documents, last_receiver, filters = [], event_bus = EventBus.new) click to toggle source
# File lib/cucumber/core.rb, line 20
def compile(gherkin_documents, last_receiver, filters = [], event_bus = EventBus.new)
  first_receiver = compose(filters, last_receiver)
  gherkin_query = ::Gherkin::Query.new
  compiler = Compiler.new(first_receiver, gherkin_query, event_bus)
  parse gherkin_documents, compiler, event_bus, gherkin_query
  self
end
execute(gherkin_documents, filters = [], event_bus = EventBus.new) { |event_bus| ... } click to toggle source
# File lib/cucumber/core.rb, line 13
def execute(gherkin_documents, filters = [], event_bus = EventBus.new)
  yield event_bus if block_given?
  receiver = Test::Runner.new(event_bus)
  compile gherkin_documents, receiver, filters, event_bus
  self
end

Private Instance Methods

compose(filters, last_receiver) click to toggle source
# File lib/cucumber/core.rb, line 39
def compose(filters, last_receiver)
  filters.reverse.reduce(last_receiver) do |receiver, filter|
    filter.with_receiver(receiver)
  end
end
parse(gherkin_documents, compiler, event_bus, gherkin_query) click to toggle source
# File lib/cucumber/core.rb, line 30
def parse(gherkin_documents, compiler, event_bus, gherkin_query)
  parser = Core::Gherkin::Parser.new(compiler, event_bus, gherkin_query)
  gherkin_documents.each do |document|
    parser.document document
  end
  parser.done
  self
end