Class: JsonKeyTransformerMiddleware::Middleware
- Inherits:
-
Object
- Object
- JsonKeyTransformerMiddleware::Middleware
- Defined in:
- lib/json_key_transformer_middleware/middleware.rb
Direct Known Subclasses
Instance Method Summary collapse
-
#camel_to_underscore(key) ⇒ Object
‘keyName’ -> ‘key_name’.
- #deep_transform_hash_keys(subject, strategy) ⇒ Object
-
#underscore_to_camel(key) ⇒ Object
‘key_name’ -> ‘keyName’.
Instance Method Details
#camel_to_underscore(key) ⇒ Object
‘keyName’ -> ‘key_name’
22 23 24 |
# File 'lib/json_key_transformer_middleware/middleware.rb', line 22 def camel_to_underscore(key) key.gsub(/([A-Z])/) { "_#{$1}" }.downcase end |
#deep_transform_hash_keys(subject, strategy) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/json_key_transformer_middleware/middleware.rb', line 4 def deep_transform_hash_keys(subject, strategy) if subject.is_a?(Hash) subject.inject({}) do |memo, (key, value)| new_key = send(strategy, key) memo[new_key] = deep_transform_hash_keys(value, strategy) memo end elsif subject.is_a?(Array) subject.inject([]) do |memo, item| memo << deep_transform_hash_keys(item, strategy) memo end else subject end end |
#underscore_to_camel(key) ⇒ Object
‘key_name’ -> ‘keyName’
27 28 29 |
# File 'lib/json_key_transformer_middleware/middleware.rb', line 27 def underscore_to_camel(key) key.gsub(/_([a-z0-9])/) { $1.upcase } end |