class Gfycat::Middleware::Response::SnakeCaseKeys
Public Instance Methods
call(env)
click to toggle source
# File lib/gfycat/middleware/response/snake_case_keys.rb, line 7 def call(env) @app.call(env).on_complete do |env| env[:body] = convert_value(env[:body]) end end
Protected Instance Methods
convert_key(key)
click to toggle source
# File lib/gfycat/middleware/response/snake_case_keys.rb, line 14 def convert_key(key) key.to_s.strip. gsub(" ", "_"). gsub(/::/, "/"). gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2'). gsub(/([a-z\d])([A-Z])/, '\1_\2'). tr("-", "_"). squeeze("_"). downcase end
convert_value(value)
click to toggle source
# File lib/gfycat/middleware/response/snake_case_keys.rb, line 25 def convert_value(value) case value when Array value.map { |v| convert_value(v) } when Hash Hash[value.map { |k, v| [convert_key(k), convert_value(v)] }] else value end end