Module: ChargeBee::Util
- Defined in:
- lib/chargebee/util.rb
Class Method Summary collapse
- .as_str(value) ⇒ Object
- .serialize(value, prefix = nil, idx = nil) ⇒ Object
- .symbolize_keys(object) ⇒ Object
Class Method Details
.as_str(value) ⇒ Object
49 50 51 52 53 54 55 |
# File 'lib/chargebee/util.rb', line 49 def self.as_str(value) if(value == nil) return '' else return value.to_s end end |
.serialize(value, prefix = nil, idx = nil) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/chargebee/util.rb', line 4 def self.serialize(value, prefix = nil, idx = nil) serialized = {} case value when Hash value.each do |k, v| if k == :metadata or k == :meta_data # metadata is encoded as a JSON string instead of URL-encoded. serialized.merge!({k.to_s => as_str(v)}) elsif(v.kind_of? Hash or v.kind_of? Array) serialized.merge!(serialize(v, k)) else key = "#{(prefix!=nil) ? prefix:''}#{(prefix!=nil) ? '['+k.to_s+']' : k}#{(idx != nil) ? '['+idx.to_s+']':''}" serialized.merge!({key => as_str(v)}) end end when Array value.each_with_index do |v, i| serialized.merge!(serialize(v, prefix, i)) end else if(idx != nil and prefix != nil) key = "#{prefix}[#{idx.to_s}]" serialized.merge!({key => as_str(value)}) else raise ArgumentError.new("only hash or arrays are allowed as value") end end serialized end |
.symbolize_keys(object) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/chargebee/util.rb', line 33 def self.symbolize_keys(object) case object when Hash new = {} object.each do |key, value| key = (key.to_sym rescue key) || key new[key] = symbolize_keys(value) end new when Array object.map { |value| symbolize_keys(value) } else object end end |