module Tamber::Util
Public Class Methods
convert_full(resp)
click to toggle source
# File lib/tamber/util.rb, line 45 def self.convert_full(resp) case resp when Hash object_classes.fetch(resp[:object],TamberObject).construct_from(resp) when Array resp.map { |i| convert_full(i) } else resp end end
convert_to_tamber_object(resp)
click to toggle source
# File lib/tamber/util.rb, line 56 def self.convert_to_tamber_object(resp) case resp when Hash object_classes.fetch(resp[:object],TamberObject).construct_from(resp) when Array if resp.size == 1 resp = resp[0] self.convert_full(resp) else resp.map { |i| convert_full(i) } end else resp end end
encode_parameters(params)
click to toggle source
# File lib/tamber/util.rb, line 7 def self.encode_parameters(params) Util.flatten_params(params). map { |k,v| "#{url_encode(k)}=#{url_encode(v)}" }.join('&') end
flatten_params(params, parent_key=nil)
click to toggle source
# File lib/tamber/util.rb, line 17 def self.flatten_params(params, parent_key=nil) result = [] params.sort_by { |(k, v)| k.to_s }.each do |key, value| calculated_key = parent_key ? "#{parent_key}[#{key}]" : "#{key}" if value.is_a?(Hash) || value.is_a?(Array) || value.is_a?(APIResource) result << [calculated_key, value.to_json] else result << [calculated_key, value] end end result end
object_classes()
click to toggle source
# File lib/tamber/util.rb, line 32 def self.object_classes @object_classes ||= { # Core 'event' => Event, 'discovery' => Discovery, # Expanded 'user' => User, 'item' => Item, 'behavior' => Behavior, } end
symbolize_names(object)
click to toggle source
# File lib/tamber/util.rb, line 72 def self.symbolize_names(object) case object when Hash new_hash = {} object.each do |key, value| key = (key.to_sym rescue key) || key new_hash[key] = symbolize_names(value) end new_hash when Array object.map { |value| symbolize_names(value) } else object end end
url_encode(key)
click to toggle source
# File lib/tamber/util.rb, line 12 def self.url_encode(key) CGI.escape(key.to_s). gsub('%5B', '[').gsub('%5D', ']') end