class Cucumber::Messages::GherkinDocument

#
“rich” output, resembling the original Gherkin document.
The only consumers of ‘GherkinDocument` should only be formatters that produce
children for execution - use [Pickle](#io.cucumber.messages.Pickle) instead.
Cucumber implementations should not depend on `GherkinDocument` or any of its
The [AST](en.wikipedia.org/wiki/Abstract_syntax_tree) of a Gherkin document.
*
#
Represents the GherkinDocument message in Cucumber’s message protocol.
#

def self.from_h(hash)

#
Cucumber::Messages::GherkinDocument.from_h(some_hash) # => #

corresponding snake_cased attributes.
If the hash keys are camelCased, they are properly assigned to the
Returns a new GherkinDocument from the given hash.
#
def self.from_h(hash)
  return nil if hash.nil?
  new(
    uri: hash[:uri],
    feature: Feature.from_h(hash[:feature]),
    comments: hash[:comments]&.map { |item| Comment.from_h(item) }
  )
end

def initialize(

def initialize(
  uri: nil,
  feature: nil,
  comments: []
)
  @uri = uri
  @feature = feature
  @comments = comments
  super()
end