Sha256: 8a66bb1771b346b17ee2914750920ce90fdcd98e0f0505040b3293b6f19d1910

Contents?: true

Size: 702 Bytes

Versions: 22

Compression:

Stored size: 702 Bytes

Contents

module Garb
  class ReportParameter

    attr_reader :elements
    
    def initialize(name)
      @name = name
      @elements = []
    end
    
    def name
      @name.to_s
    end
    
    def <<(element)
      (@elements += [element].flatten).compact!
      self
    end
    
    def to_params
      params = self.elements.map do |elem|
        case elem
        when Hash
          elem.collect do |k,v|
            next unless k.is_a?(Operator)
            "#{k.target}#{URI.encode(k.operator.to_s, /[=<>]/)}#{CGI::escape(v.to_s)}"
          end.join(';')
        else
          elem.to_ga
        end
      end.join(',')
      
      params.empty? ? {} : {self.name => params}
    end
  end
end

Version data entries

22 entries across 22 versions & 4 rubygems

Version Path
jonuts-garb-0.2.3 lib/garb/report_parameter.rb
jonuts-garb-0.2.4 lib/garb/report_parameter.rb
jonuts-garb-0.2.6 lib/garb/report_parameter.rb
macros-garb-0.2.6 lib/garb/report_parameter.rb
vigetlabs-garb-0.2.0 lib/garb/report_parameter.rb
vigetlabs-garb-0.2.1 lib/garb/report_parameter.rb
vigetlabs-garb-0.2.2 lib/garb/report_parameter.rb
vigetlabs-garb-0.2.3 lib/garb/report_parameter.rb
vigetlabs-garb-0.2.4 lib/garb/report_parameter.rb
vigetlabs-garb-0.2.5 lib/garb/report_parameter.rb
vigetlabs-garb-0.2.6 lib/garb/report_parameter.rb
garb-0.4.1 lib/garb/report_parameter.rb
garb-0.4.0 lib/garb/report_parameter.rb
garb-0.3.2 lib/garb/report_parameter.rb
garb-0.3.1 lib/garb/report_parameter.rb
garb-0.3.0 lib/garb/report_parameter.rb
garb-0.2.9 lib/garb/report_parameter.rb
garb-0.2.8 lib/garb/report_parameter.rb
garb-0.2.4 lib/garb/report_parameter.rb
garb-0.2.6 lib/garb/report_parameter.rb