module Params
Public Instance Methods
to_camelcase(h=self)
click to toggle source
turns keys from snake_case to CamelCase
# File lib/ruby-macrodroid.rb, line 78 def to_camelcase(h=self) h.inject({}) do |r,x| key, value = x val = if value.is_a?(Hash) then to_camelcase(value) elsif value.is_a?(Array) and value.first.is_a? Hash value.map {|row| to_camelcase(row)} else value end r.merge({key.to_s.gsub(/(?<!^m)_[a-z]/){|x| x[-1].upcase} => val}) end end
to_snake_case(h=self)
click to toggle source
turns keys from camelCase into snake_case
# File lib/ruby-macrodroid.rb, line 55 def to_snake_case(h=self) h.inject({}) do |r, x| key, value = x #puts 'value: ' + value.inspect val = if value.is_a?(Hash) then to_snake_case(value) elsif value.is_a?(Array) and value.first.is_a? Hash value.map {|row| to_snake_case(row)} else value end r.merge key.to_s.sub(/^m_/,'').gsub(/[A-Z][a-z]/){|x| '_' + x.downcase}.gsub(/[a-z][A-Z]/){|x| x[0] + '_' + x[1].downcase}\ .downcase.to_sym => val end end