class Cucumber::Messages::GherkinDocument

Represents the GherkinDocument message in Cucumber's message protocol.

*

The [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree) of a Gherkin document.
Cucumber implementations should *not* depend on `GherkinDocument` or any of its
children for execution - use [Pickle](#io.cucumber.messages.Pickle) instead.

The only consumers of `GherkinDocument` should only be formatters that produce
"rich" output, resembling the original Gherkin document.

Attributes

comments[R]

All the comments in the Gherkin document

feature[R]
uri[R]

*

The [URI](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier)
of the source, typically a file path relative to the root directory

Public Class Methods

from_h(hash) click to toggle source

Returns a new GherkinDocument from the given hash. If the hash keys are camelCased, they are properly assigned to the corresponding snake_cased attributes.

Cucumber::Messages::GherkinDocument.from_h(some_hash) # => #<Cucumber::Messages::GherkinDocument:0x... ...>
# File lib/cucumber/messages.deserializers.rb, line 121
def self.from_h(hash)
  return nil if hash.nil?

  self.new(
    uri: hash[:uri],
    feature: Feature.from_h(hash[:feature]),
    comments: hash[:comments]&.map { |item| Comment.from_h(item) },
  )
end
new( uri: nil, feature: nil, comments: [] ) click to toggle source
# File lib/cucumber/messages.dtos.rb, line 282
def initialize(
  uri: nil,
  feature: nil,
  comments: []
)
  @uri = uri
  @feature = feature
  @comments = comments
end