Class: Kuaidi100Rails::SHash
- Inherits:
-
Hash
- Object
- Hash
- Kuaidi100Rails::SHash
- Defined in:
- lib/kuaidi100_rails.rb
Instance Method Summary collapse
-
#initialize(json_object = nil) ⇒ SHash
constructor
A new instance of SHash.
Constructor Details
#initialize(json_object = nil) ⇒ SHash
Returns a new instance of SHash.
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/kuaidi100_rails.rb', line 73 def initialize(json_object=nil) json_object && json_object.inject(self) { |memo, (key, v)| if v.instance_of?(Hash) memo[key.to_sym]= SHash.new(v) elsif v.instance_of?(Array) s_array = ->(value) { value.inject([]) { |m, i| if i.instance_of?(Hash) m<< SHash.new(i) elsif i.instance_of?(Array) m<< s_array.call(i) else m<<i end m } } memo[key.to_sym] = s_array.call(v) else memo[key.to_sym]=v end memo } end |