Sha256: 49cb42449c37587d7df0a35b63588700ed64535f6a4cd634f9efd0343fe1e5b6

Contents?: true

Size: 1.39 KB

Versions: 126

Compression:

Stored size: 1.39 KB

Contents

module ChargeBee
  module Util

    def self.serialize(value, prefix = nil, idx = nil)
      serialized = {}
      case value
        when Hash
          value.each do |k, v|
            if(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

    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

    def self.as_str(value)
      if(value == nil)
        return ''
      else
        return value.to_s
      end
    end

  end
end

Version data entries

126 entries across 126 versions & 1 rubygems

Version Path
chargebee-2.44.0 lib/chargebee/util.rb
chargebee-2.43.0 lib/chargebee/util.rb
chargebee-2.42.0 lib/chargebee/util.rb
chargebee-2.41.0 lib/chargebee/util.rb
chargebee-2.40.0 lib/chargebee/util.rb
chargebee-2.38.1 lib/chargebee/util.rb
chargebee-2.38.0 lib/chargebee/util.rb
chargebee-2.37.1 lib/chargebee/util.rb
chargebee-2.37.0 lib/chargebee/util.rb
chargebee-2.36.2 lib/chargebee/util.rb
chargebee-2.36.1 lib/chargebee/util.rb
chargebee-2.36.0 lib/chargebee/util.rb
chargebee-2.35.0 lib/chargebee/util.rb
chargebee-2.34.0 lib/chargebee/util.rb
chargebee-2.33.0 lib/chargebee/util.rb
chargebee-2.32.0 lib/chargebee/util.rb
chargebee-2.31.1 lib/chargebee/util.rb
chargebee-2.31.0 lib/chargebee/util.rb
chargebee-2.30.0 lib/chargebee/util.rb
chargebee-2.29.0 lib/chargebee/util.rb