Sha256: d8db82dd8f34fa715b97605c50e2b1447fde58000b0319ab9bdf4515be4fbd21

Contents?: true

Size: 706 Bytes

Versions: 4

Compression:

Stored size: 706 Bytes

Contents

module Legato
  class ListParameter

    attr_reader :name, :elements, :tracking_scope

    def initialize(name, elements=[], tracking_scope = "ga")
      @name = name
      @elements = Array.wrap(elements)
      @tracking_scope = tracking_scope
    end

    def name
      @name.to_s
    end

    def <<(element)
      (@elements += Array.wrap(element)).compact!
      self
    end

    def to_params
      value = elements.map{|element| Legato.to_ga_string(element, tracking_scope)}.join(',')
      value.empty? ? {} : {name => value}
    end

    def ==(other)
      name == other.name && elements == other.elements
    end

    def include?(element)
      @elements.include?(element)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
legato-0.4.0 lib/legato/list_parameter.rb
legato-0.3.3 lib/legato/list_parameter.rb
legato-0.3.2 lib/legato/list_parameter.rb
legato-0.3.1 lib/legato/list_parameter.rb