class Cucumber::Messages::Pickle

def self.from_h(hash)

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

corresponding snake_cased attributes.
If the hash keys are camelCased, they are properly assigned to the
Returns a new Pickle from the given hash.
#
def self.from_h(hash)
  return nil if hash.nil?
  new(
    id: hash[:id],
    uri: hash[:uri],
    name: hash[:name],
    language: hash[:language],
    steps: hash[:steps]&.map { |item| PickleStep.from_h(item) },
    tags: hash[:tags]&.map { |item| PickleTag.from_h(item) },
    ast_node_ids: hash[:astNodeIds]
  )
end