module JsonToOpenStruct
Public Class Methods
included(host_class)
click to toggle source
# File lib/json_to_openstruct.rb, line 6 def self.included(host_class) host_class.extend ClassMethods end
Public Instance Methods
join(params)
click to toggle source
# File lib/json_to_openstruct.rb, line 32 def join(params) hash = self.to_hash parse(hash, params) hash end
to_hash()
click to toggle source
# File lib/json_to_openstruct.rb, line 15 def to_hash hash = {} self.to_h.each do |key, value| if self[key].kind_of?(Array) hash[key] = [] self[key].each do |array_item| hash[key] << array_item.to_hash end elsif self[key].kind_of?(self.class) hash[key] = value.to_hash else hash[key] = value end end hash end
to_json()
click to toggle source
# File lib/json_to_openstruct.rb, line 10 def to_json hash = self.to_hash hash.to_json end
Private Instance Methods
parse(hash, params)
click to toggle source
# File lib/json_to_openstruct.rb, line 40 def parse(hash, params) params.keys.each do |key| if params[key].kind_of?(Hash) if key.end_with?("_attributes") params[key].keys.each do |index| parse(hash[StringHelper.normalize(key).to_sym][index.to_i], params[key][index]) end else parse(hash[key.to_sym], params[key]) end else hash[key.to_sym] = params[key] end end end