Module: CamelSnakeKeys
- Defined in:
- lib/version.rb,
lib/camel_snake_keys.rb
Constant Summary collapse
- VERSION =
"0.0.5".freeze
Class Method Summary collapse
- .camel_keys(data, indifference = false) ⇒ Object
- .if_camelize(v) ⇒ Object
- .if_underscore(v) ⇒ Object
- .snake_keys(data, indifference = false) ⇒ Object
- .version ⇒ Object
Class Method Details
.camel_keys(data, indifference = false) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/camel_snake_keys.rb', line 50 def camel_keys(data, indifference=false) if data.kind_of? Array data.map { |v| camel_keys(v) } elsif data.kind_of? Hash hash = Hash[data.sort_by {|k,_v| k =~ /_/ ? 1 : 0 }.map {|k, v| [if_camelize(k), camel_keys(v)] }] hash = hash.with_indifferent_access if indifference data.class == Hash ? hash : data.class.new(hash) else data end end |
.if_camelize(v) ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/camel_snake_keys.rb', line 28 def if_camelize(v) if v.is_a? Symbol v.to_s.camelize(:lower).to_sym elsif v.is_a? String v.camelize(:lower) else v end end |
.if_underscore(v) ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/camel_snake_keys.rb', line 18 def if_underscore(v) if v.is_a? Symbol v.to_s.underscore.to_sym elsif v.is_a? String v.underscore else v end end |
.snake_keys(data, indifference = false) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/camel_snake_keys.rb', line 38 def snake_keys(data, indifference=false) if data.kind_of? Array data.map { |v| snake_keys(v) } elsif data.kind_of? Hash hash = Hash[data.sort_by {|k,_v| k =~ /_/ ? 0 : 1 }.map {|k, v| [if_underscore(k), snake_keys(v)] }] hash = hash.with_indifferent_access if indifference data.class == 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 |