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_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