class Gherkin::Stream::SubprocessMessageStream

def initialize(gherkin_executable, paths, print_source, print_ast, print_pickles)

def initialize(gherkin_executable, paths, print_source, print_ast, print_pickles)
  @gherkin_executable, @paths, @print_source, @print_ast, @print_pickles = gherkin_executable, paths, print_source, print_ast, print_pickles
end

def messages

def messages
  args = [@gherkin_executable]
  args.push('--no-source') unless @print_source
  args.push('--no-ast') unless @print_ast
  args.push('--no-pickles') unless @print_pickles
  args = args.concat(@paths)
  stdin, stdout, stderr, wait_thr = Open3.popen3(*args)
  if(stdout.eof?)
    error = stderr.read
    raise error
  end
  Cucumber::Messages::BinaryToMessageEnumerator.new(stdout)
end