class Qiita::Elasticsearch::IntToken

Constants

INT_PATTERN

Public Instance Methods

to_hash() click to toggle source

@return [Hash] @raise [InvalidQuery]

# File lib/qiita/elasticsearch/int_token.rb, line 13
def to_hash
  if range_parameter && has_valid_range_query?
    {
      "range" => {
        proper_field_name => {
          range_parameter => range_query.to_i,
        },
      },
    }
  elsif has_valid_int_term?
    {
      "term" => {
        proper_field_name => @term.to_i,
      },
    }
  else
    Nodes::NullNode.new.to_hash
  end
end

Private Instance Methods

has_invalid_range_query?() click to toggle source
# File lib/qiita/elasticsearch/int_token.rb, line 35
def has_invalid_range_query?
  has_range_query? && !has_valid_range_query?
end
has_invalid_term?() click to toggle source

@note Override

# File lib/qiita/elasticsearch/int_token.rb, line 40
def has_invalid_term?
  range_parameter && has_invalid_range_query? || !has_valid_int_term?
end
has_range_query?() click to toggle source
# File lib/qiita/elasticsearch/int_token.rb, line 44
def has_range_query?
  !range_query.nil?
end
has_valid_int_term?() click to toggle source
# File lib/qiita/elasticsearch/int_token.rb, line 48
def has_valid_int_term?
  INT_PATTERN === @term
end
has_valid_range_query?() click to toggle source
# File lib/qiita/elasticsearch/int_token.rb, line 52
def has_valid_range_query?
  INT_PATTERN === range_query
end
proper_field_name() click to toggle source

Convert likes:>3“ into ”lgtms:>3“ because ”like“ is a more friendly word. @return [String]

# File lib/qiita/elasticsearch/int_token.rb, line 58
def proper_field_name
  if @field_name == "likes"
    "lgtms"
  else
    @field_name
  end
end