Class: JsonKeyTransformerMiddleware::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/json_key_transformer_middleware/middleware.rb

Direct Known Subclasses

IncomingJsonFormatter, OutgoingJsonFormatter

Instance Method Summary collapse

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