Class: Legato::Filter
- Inherits:
-
Object
- Object
- Legato::Filter
- Defined in:
- lib/legato/filter.rb
Constant Summary collapse
- OPERATORS =
{ # metrics :eql => '==', :not_eql => '!=', :gt => '>', :gte => '>=', :lt => '<', :lte => '<=', # dimensions :matches => '==', :does_not_match => '!=', :substring => '=@', :not_substring => '!@', :contains => '=~', # regex :does_not_contain => '!~' # regex # :desc => '-', # :descending => '-' }
Instance Attribute Summary collapse
-
#field ⇒ Object
Returns the value of attribute field.
-
#join_character ⇒ Object
Returns the value of attribute join_character.
-
#operator ⇒ Object
Returns the value of attribute operator.
-
#value ⇒ Object
Returns the value of attribute value.
Instance Method Summary collapse
- #==(other) ⇒ Object
-
#escaped_value ⇒ Object
escape comma and semicolon in value to differentiate from those used as join characters for OR/AND.
- #google_field ⇒ Object
- #google_operator ⇒ Object
-
#initialize(field, operator, value, join_character) ⇒ Filter
constructor
A new instance of Filter.
- #join_with(param) ⇒ Object
- #to_param ⇒ Object
Constructor Details
#initialize(field, operator, value, join_character) ⇒ Filter
Returns a new instance of Filter.
24 25 26 27 28 29 |
# File 'lib/legato/filter.rb', line 24 def initialize(field, operator, value, join_character) self.field = field self.operator = operator self.value = value self.join_character = join_character # if nil, will be overridden by Query#apply_filter end |
Instance Attribute Details
#field ⇒ Object
Returns the value of attribute field.
3 4 5 |
# File 'lib/legato/filter.rb', line 3 def field @field end |
#join_character ⇒ Object
Returns the value of attribute join_character.
3 4 5 |
# File 'lib/legato/filter.rb', line 3 def join_character @join_character end |
#operator ⇒ Object
Returns the value of attribute operator.
3 4 5 |
# File 'lib/legato/filter.rb', line 3 def operator @operator end |
#value ⇒ Object
Returns the value of attribute value.
3 4 5 |
# File 'lib/legato/filter.rb', line 3 def value @value end |
Instance Method Details
#==(other) ⇒ Object
56 57 58 59 60 61 |
# File 'lib/legato/filter.rb', line 56 def ==(other) field == other.field && operator == other.operator && value == other.value && join_character == other.join_character end |
#escaped_value ⇒ Object
escape comma and semicolon in value to differentiate from those used as join characters for OR/AND
41 42 43 44 45 |
# File 'lib/legato/filter.rb', line 41 def escaped_value # backslash is escaped in strings # oauth will cgi/uri escape for us value.to_s.gsub(/([,;])/) {|c| '\\'+c} end |
#google_field ⇒ Object
31 32 33 |
# File 'lib/legato/filter.rb', line 31 def google_field Legato.to_ga_string(field) end |
#google_operator ⇒ Object
35 36 37 |
# File 'lib/legato/filter.rb', line 35 def google_operator OPERATORS[operator] end |
#join_with(param) ⇒ Object
51 52 53 54 |
# File 'lib/legato/filter.rb', line 51 def join_with(param) param << join_character unless param.nil? param.nil? ? to_param : (param << to_param) end |
#to_param ⇒ Object
47 48 49 |
# File 'lib/legato/filter.rb', line 47 def to_param "#{google_field}#{google_operator}#{escaped_value}" end |