Sha256: 9b592e7503b381894c7f4801b4e537f7edcf8dc6ae60b97b7ef54400138b5ce3
Contents?: true
Size: 1.39 KB
Versions: 2
Compression:
Stored size: 1.39 KB
Contents
module Mollie module API module Util extend self def nested_underscore_keys(obj) if obj.is_a?(Hash) obj.each_with_object({}) do |(key, value), underscored| underscored[underscore(key)] = nested_underscore_keys(value) end elsif obj.is_a?(Array) obj.map { |v| nested_underscore_keys(v) } else obj end end def camelize_keys(hash) hash.each_with_object({}) do |(key, value), camelized| camelized[camelize(key)] = value end end def underscore(string) string.to_s.gsub(/::/, '/'). gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2'). gsub(/([a-z\d])([A-Z])/, '\1_\2'). tr("-", "_"). downcase.to_s end def camelize(term) string = term.to_s string = string.sub(/^(?:(?=\b|[A-Z_])|\w)/) { |match| match.downcase } string.gsub!(/(?:_|(\/))([a-z\d]*)/i) { "#{$1}#{$2.capitalize}" } string.gsub!('/'.freeze, '::'.freeze) string end def nested_openstruct(obj) if obj.is_a?(Hash) obj.each_with_object(OpenStruct.new) do |(key, value), openstructed| openstructed[key] = nested_openstruct(value) end elsif obj.is_a?(Array) obj.map { |v| nested_openstruct(v) } else obj end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mollie-api-ruby-2.2.1 | lib/mollie/api/util.rb |
mollie-api-ruby-2.2.0 | lib/mollie/api/util.rb |