Sha256: 8395018be61db478b504c11e20f88464fbbab86b4d02cdc5b718997c111e8e6f

Contents?: true

Size: 961 Bytes

Versions: 17

Compression:

Stored size: 961 Bytes

Contents

class SymbolOperator
  def initialize(field, operator)
    @field, @operator = field, operator
  end unless method_defined?(:initialize)

  def to_google_analytics
    operators = {
      :eql => '==',
      :not_eql => '!=',
      :gt => '>',
      :gte => '>=',
      :lt => '<',
      :lte => '<=',
      :matches => '==',
      :does_not_match => '!=',
      :contains => '=~',
      :does_not_contain => '!~',
      :substring => '=@',
      :not_substring => '!@',
      :desc => '-'
    }

    target = Garb.to_google_analytics(@field)
    operator = operators[@operator]

    @operator == :desc ? "#{operator}#{target}" : "#{target}#{operator}"
  end
end

class Symbol
  [:eql, :not_eql, :gt, :gte, :lt, :lte, :desc,
    :matches, :does_not_match, :contains, :does_not_contain,
    :substring, :not_substring].each do |operator|

    define_method(operator) do
      SymbolOperator.new(self, operator)
    end unless method_defined?(operator)
  end
end

Version data entries

17 entries across 17 versions & 4 rubygems

Version Path
garb-0.8.3 lib/support.rb
garb-0.8.2 lib/support.rb
garb-0.8.1 lib/support.rb
garb-0.8.0 lib/support.rb
garb-0.7.6 lib/support.rb
garb-0.7.5 lib/support.rb
shingara-garb-0.7.6 lib/support.rb
garb-no-activesupport-0.7.4 lib/support.rb
garb-0.7.4 lib/support.rb
garb-no-activesupport-0.7.3 lib/support.rb
garb-0.7.3 lib/support.rb
garb-0.7.2 lib/support.rb
garb-0.7.1 lib/support.rb
garb-authsub-0.7.0 lib/support.rb
garb-0.7.0 lib/support.rb
garb-0.6.0 lib/support.rb
garb-0.5.1 lib/support.rb