module Gherkin

def self.encode_source_message(uri, data)

def self.encode_source_message(uri, data)
  Cucumber::Messages::Source.new({
    uri: uri,
    data: data,
    media: Cucumber::Messages::Media.new({
      encoding: :UTF8,
      content_type: 'text/x.cucumber.gherkin+plain'
    })
  })
end

def self.from_paths(paths, options={})

def self.from_paths(paths, options={})
  Stream::ParserMessageStream.new(
      paths,
      [],
      options
  ).messages
end

def self.from_source(uri, data, options={})

def self.from_source(uri, data, options={})
  from_sources([encode_source_message(uri, data)], options)
end

def self.from_sources(sources, options={})

def self.from_sources(sources, options={})
  Stream::ParserMessageStream.new(
      [],
      sources,
      options
  ).messages
end