class Administrate::Search::Query

Attributes

filters[R]

Public Class Methods

new(original_query) click to toggle source
# File lib/administrate/search.rb, line 13
def initialize(original_query)
  @original_query = original_query
  @filters, @terms = parse_query(original_query)
end

Public Instance Methods

blank?() click to toggle source
# File lib/administrate/search.rb, line 9
def blank?
  terms.blank? && filters.empty?
end
original() click to toggle source
# File lib/administrate/search.rb, line 18
def original
  @original_query
end
terms() click to toggle source
# File lib/administrate/search.rb, line 22
def terms
  @terms.join(" ")
end
to_s() click to toggle source
# File lib/administrate/search.rb, line 26
def to_s
  original
end

Private Instance Methods

filter?(word) click to toggle source
# File lib/administrate/search.rb, line 32
def filter?(word)
  word.match?(/^\w+:$/)
end
parse_query(query) click to toggle source
# File lib/administrate/search.rb, line 36
def parse_query(query)
  filters = []
  terms = []
  query.to_s.split.each do |word|
    if filter?(word)
      filters << word.split(":").first
    else
      terms << word
    end
  end
  [filters, terms]
end