class Cucumber::Messages::Envelope

def self.from_h(hash)

def self.from_h(hash)
  return nil if hash.nil?
  self.new(
    attachment: Attachment.from_h(hash[:attachment]),
    gherkin_document: GherkinDocument.from_h(hash[:gherkinDocument]),
    hook: Hook.from_h(hash[:hook]),
    meta: Meta.from_h(hash[:meta]),
    parameter_type: ParameterType.from_h(hash[:parameterType]),
    parse_error: ParseError.from_h(hash[:parseError]),
    pickle: Pickle.from_h(hash[:pickle]),
    source: Source.from_h(hash[:source]),
    step_definition: StepDefinition.from_h(hash[:stepDefinition]),
    test_case: TestCase.from_h(hash[:testCase]),
    test_case_finished: TestCaseFinished.from_h(hash[:testCaseFinished]),
    test_case_started: TestCaseStarted.from_h(hash[:testCaseStarted]),
    test_run_finished: TestRunFinished.from_h(hash[:testRunFinished]),
    test_run_started: TestRunStarted.from_h(hash[:testRunStarted]),
    test_step_finished: TestStepFinished.from_h(hash[:testStepFinished]),
    test_step_started: TestStepStarted.from_h(hash[:testStepStarted]),
    undefined_parameter_type: UndefinedParameterType.from_h(hash[:undefinedParameterType]),
  )
end

def initialize(

def initialize(
  attachment: nil,
  gherkin_document: nil,
  hook: nil,
  meta: nil,
  parameter_type: nil,
  parse_error: nil,
  pickle: nil,
  source: nil,
  step_definition: nil,
  test_case: nil,
  test_case_finished: nil,
  test_case_started: nil,
  test_run_finished: nil,
  test_run_started: nil,
  test_step_finished: nil,
  test_step_started: nil,
  undefined_parameter_type: nil
)
  @attachment = attachment
  @gherkin_document = gherkin_document
  @hook = hook
  @meta = meta
  @parameter_type = parameter_type
  @parse_error = parse_error
  @pickle = pickle
  @source = source
  @step_definition = step_definition
  @test_case = test_case
  @test_case_finished = test_case_finished
  @test_case_started = test_case_started
  @test_run_finished = test_run_finished
  @test_run_started = test_run_started
  @test_step_finished = test_step_finished
  @test_step_started = test_step_started
  @undefined_parameter_type = undefined_parameter_type
end