module CloudEvents::Event::Utils

A variety of helper methods. @private

Public Class Methods

deep_dup(obj) click to toggle source
# File lib/cloud_events/event/utils.rb, line 30
def deep_dup obj
  case obj
  when ::Hash
    obj.each_with_object({}) { |(key, val), hash| hash[deep_dup key] = deep_dup val }
  when ::Array
    obj.map { |val| deep_dup val }
  else
    obj.dup
  end
end
deep_freeze(obj) click to toggle source
# File lib/cloud_events/event/utils.rb, line 11
def deep_freeze obj
  case obj
  when ::Hash
    obj.each do |key, val|
      deep_freeze key
      deep_freeze val
    end
  when ::Array
    obj.each do |val|
      deep_freeze val
    end
  else
    obj.instance_variables.each do |iv|
      deep_freeze obj.instance_variable_get iv
    end
  end
  obj.freeze
end
keys_to_strings(hash) click to toggle source
# File lib/cloud_events/event/utils.rb, line 41
def keys_to_strings hash
  result = {}
  hash.each do |key, val|
    result[key.to_s] = val
  end
  result
end