Skip to content

Instantly share code, notes, and snippets.

@toothrot
Created January 19, 2011 22:30
Show Gist options
  • Select an option

  • Save toothrot/787025 to your computer and use it in GitHub Desktop.

Select an option

Save toothrot/787025 to your computer and use it in GitHub Desktop.
underscoring json in ruby
def self.underscore_hash(hash)
hash.inject({}) do |underscored, (key, value)|
value = underscore_hash(value) if value.is_a?(Hash)
value = value.map { |v| underscore_hash(v) } if value.is_a?(Array)
underscored[key.underscore] = value
underscored
end
end
def self.underscore_hash(hash)
hash.inject({}) do |underscored, (key, value)|
underscored[key.underscore] = case value
when Hash: underscore_hash(value)
when Array: value.map {|v| underscore_hash(v)}
else value
end
underscored
end
end
def self.underscore_hash(camel_hash)
camel_hash.inject({}) do |underscored, (key, value)|
value = case value
when Hash: underscore_hash(value)
when Array: value.map {|v| underscore_hash(v)}
else value
end
underscored[key.underscore] = value
underscored
end
end
def self.underscore(json)
case json
when Hash
json.inject({}) do |underscored, (key, value)|
underscored[key.underscore] = underscore_hash(value)
underscored
end
when Array
json.map {|v| underscore_hash(v)}
else
json
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment