Sha256: 350a9f3a5afc4f311403bdc893a4fdc83a74424b5ea4149aa39424bd03ad6612

Contents?: true

Size: 954 Bytes

Versions: 13

Compression:

Stored size: 954 Bytes

Contents

module Paid
  module Util

    def self.symbolize_keys(obj)
      if obj.is_a?(Hash)
        ret = {}
        obj.each do |key, value|
          ret[(key.to_sym rescue key) || key] = symbolize_keys(value)
        end
        return ret
      elsif obj.is_a?(Array)
        return obj.map{ |value| symbolize_keys(value) }
      else
        return obj
      end
    end

    def self.sorta_deep_clone(json)
      if json.is_a?(Hash)
        ret = {}
        json.each do |k, v|
          ret[k] = sorta_deep_clone(v)
        end
        ret
      elsif json.is_a?(Array)
        json.map{ |j| sorta_deep_clone(j) }
      else
        begin
          json.dup
        rescue
          json
        end
      end
    end

    def self.constantize(str, prefix=false)
      p = "#{self.name}".split("::").first
      if "#{str}".split("::").first != p
        str = "#{p}::#{str}"
      end
      str.split('::').reduce(Module, :const_get)
    end

  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
paid-1.2.1 lib/paid/util.rb
paid-1.2.0 lib/paid/util.rb
paid-1.1.4 lib/paid/util.rb
paid-1.1.3 lib/paid/util.rb
paid-1.1.2 lib/paid/util.rb
paid-1.1.1 lib/paid/util.rb
paid-1.1.0 lib/paid/util.rb
paid-1.0.11 lib/paid/util.rb
paid-1.0.10 lib/paid/util.rb
paid-1.0.9 lib/paid/util.rb
paid-1.0.8 lib/paid/util.rb
paid-1.0.7 lib/paid/util.rb
paid-1.0.6 lib/paid/util.rb