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