class Garb::FilterParameters
Attributes
parameters[RW]
Public Class Methods
new(parameters)
click to toggle source
# File lib/garb/filter_parameters.rb, line 5 def initialize(parameters) self.parameters = (Array.wrap(parameters) || []).compact end
Public Instance Methods
to_params()
click to toggle source
# File lib/garb/filter_parameters.rb, line 9 def to_params value = array_to_params(self.parameters) value.empty? ? {} : {'filters' => value} end
Private Instance Methods
array_to_params(arr)
click to toggle source
# File lib/garb/filter_parameters.rb, line 15 def array_to_params(arr) arr.map do |param| case param when Hash then hash_to_params(param) when Array then array_to_params(param) end end.join(',') # Array OR end
hash_to_params(hsh)
click to toggle source
# File lib/garb/filter_parameters.rb, line 24 def hash_to_params(hsh) hsh.map do |k, v| next unless k.is_a?(SymbolOperatorMethods) escaped_v = v.to_s.gsub(/([,;])/) { |c| '\\' + c } "#{URI.encode(k.to_google_analytics, /[=<>]/)}#{CGI::escape(escaped_v)}" end.join('%3B') # Hash AND (no duplicate keys), escape char for ';' fixes oauth end