class AWS::Flow::YAMLDataConverter

Converts an object to YAML. Exceptions are handled differently because YAML doesn’t propagate backtraces properly, and they are very handy for debugging.

Public Instance Methods

dump(object) click to toggle source

Serializes a ruby object into a YAML string.

@param object

The object that needs to be serialized into a string.
# File lib/aws/decider/data_converter.rb, line 27
def dump(object)
  if object.is_a? Exception
    return YAML.dump_stream(object, object.backtrace)
  end
  object.to_yaml
end
load(source) click to toggle source

Deserializes a YAML string into a ruby object.

@param source

The source YAML string that needs to be deserialized into a ruby object.
# File lib/aws/decider/data_converter.rb, line 39
def load(source)
  return nil if source.nil?
  output = YAML.load source
  if output.is_a? Exception
    documents = YAML.load_stream(source)
    if YAML.const_defined?(:ENGINE) && YAML::ENGINE.yamler == 'syck'
      documents = documents.documents
    end
    backtrace = documents.find {|x| ! x.is_a? Exception}
    output.set_backtrace(backtrace.to_a)
  end
  output
end