class Qiita::Elasticsearch::RangeToken

Constants

RANGE_TERM_REGEXP

Public Instance Methods

to_hash() click to toggle source

@return [Hash]

# File lib/qiita/elasticsearch/range_token.rb, line 9
def to_hash
  if range_parameter
    {
      "range" => {
        @field_name => {
          range_parameter => range_query.to_i,
        },
      },
    }
  else
    {
      "term" => {
        @field_name => proper_cased_term.to_i,
      },
    }
  end
end

Private Instance Methods

operand_map() click to toggle source
# File lib/qiita/elasticsearch/range_token.rb, line 47
def operand_map
  {
    ">" => "gt",
    ">=" => "gte",
    "<" => "lt",
    "<=" => "lte",
  }
end
range_match() click to toggle source
# File lib/qiita/elasticsearch/range_token.rb, line 43
def range_match
  @range_match ||= RANGE_TERM_REGEXP.match(@term) || {}
end
range_parameter() click to toggle source

@return [String, nil] @example Suppose @term is “created_at:>=2015-04-16”

range_parameter #=> "gte"
# File lib/qiita/elasticsearch/range_token.rb, line 32
def range_parameter
  range_match[:operand] ? operand_map[range_match[:operand]] : nil
end
range_query() click to toggle source

@return [String, nil] @example Suppose @term is “created_at:>=2015-04-16”

range_query #=> "2015-04-16"
# File lib/qiita/elasticsearch/range_token.rb, line 39
def range_query
  range_match[:query]
end