module Postmark::HashHelper
Public Instance Methods
to_postmark(object, options = {})
click to toggle source
# File lib/postmark/helpers/hash_helper.rb, line 6 def to_postmark(object, options = {}) deep = options.fetch(:deep, false) case object when Hash object.reduce({}) do |m, (k, v)| m.tap do |h| h[Inflector.to_postmark(k)] = deep ? to_postmark(v, options) : v end end when Array deep ? object.map { |v| to_postmark(v, options) } : object else object end end
to_ruby(object, options = {})
click to toggle source
# File lib/postmark/helpers/hash_helper.rb, line 23 def to_ruby(object, options = {}) compatible = options.fetch(:compatible, false) deep = options.fetch(:deep, false) case object when Hash object.reduce({}) do |m, (k, v)| m.tap do |h| h[Inflector.to_ruby(k)] = deep ? to_ruby(v, options) : v end end.tap do |result| if compatible result.merge!(object) enhance_with_compatibility_warning(result) end end when Array deep ? object.map { |v| to_ruby(v, options) } : object else object end end
Private Instance Methods
enhance_with_compatibility_warning(hash)
click to toggle source
# File lib/postmark/helpers/hash_helper.rb, line 48 def enhance_with_compatibility_warning(hash) def hash.[](key) if key.is_a? String Kernel.warn("Postmark: the CamelCased String keys of response are " \ "deprecated in favor of underscored symbols. The " \ "support will be dropped in the future.") end super end end