class Cucumber::Messages::Scenario

#
#
Represents the Scenario message in Cucumber’s message protocol.
#

def self.from_h(hash)

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

corresponding snake_cased attributes.
If the hash keys are camelCased, they are properly assigned to the
Returns a new Scenario from the given hash.
#
def self.from_h(hash)
  return nil if hash.nil?
  new(
    location: Location.from_h(hash[:location]),
    tags: hash[:tags]&.map { |item| Tag.from_h(item) },
    keyword: hash[:keyword],
    name: hash[:name],
    description: hash[:description],
    steps: hash[:steps]&.map { |item| Step.from_h(item) },
    examples: hash[:examples]&.map { |item| Examples.from_h(item) },
    id: hash[:id]
  )
end

def initialize(

def initialize(
  location: Location.new,
  tags: [],
  keyword: '',
  name: '',
  description: '',
  steps: [],
  examples: [],
  id: ''
)
  @location = location
  @tags = tags
  @keyword = keyword
  @name = name
  @description = description
  @steps = steps
  @examples = examples
  @id = id
  super()
end