Module: CamelSnakeKeys
- Defined in:
- lib/version.rb,
lib/camel_snake_keys.rb
Constant Summary collapse
- VERSION =
'0.0.7'.freeze
Class Method Summary collapse
- .camel_keys(data, indifference = false) ⇒ Object
- .if_camelize(obj) ⇒ Object
- .if_underscore(obj) ⇒ Object
- .snake_keys(data, indifference = false) ⇒ Object
- .version ⇒ Object
Class Method Details
.camel_keys(data, indifference = false) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/camel_snake_keys.rb', line 53 def camel_keys(data, indifference=false) case data when Array data.map { |v| camel_keys(v, indifference) } when Hash hash = data.sort_by {|k, _v| k =~ /_/ ? 1 : 0 }.map {|k, v| [if_camelize(k), camel_keys(v, indifference)] }.to_h hash = hash.with_indifferent_access if indifference data.instance_of?(Hash) ? hash : data.class.new(hash) else data end end |
.if_camelize(obj) ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/camel_snake_keys.rb', line 29 def if_camelize(obj) case obj when Symbol obj.to_s.camelize(:lower).to_sym when String obj.camelize(:lower) else obj end end |
.if_underscore(obj) ⇒ Object
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/camel_snake_keys.rb', line 18 def if_underscore(obj) case obj when Symbol obj.to_s.underscore.to_sym when String obj.underscore else obj end end |
.snake_keys(data, indifference = false) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/camel_snake_keys.rb', line 40 def snake_keys(data, indifference=false) case data when Array data.map { |v| snake_keys(v, indifference) } when Hash hash = data.sort_by {|k, _v| k =~ /_/ ? 0 : 1 }.map {|k, v| [if_underscore(k), snake_keys(v, indifference)] }.to_h hash = hash.with_indifferent_access if indifference data.instance_of?(Hash) ? hash : data.class.new(hash) else data end end |
.version ⇒ Object
4 5 6 |
# File 'lib/version.rb', line 4 def self.version VERSION end |