class Administrate::Search::Query
Attributes
filters[R]
valid_filters[R]
Public Class Methods
new(original_query, valid_filters = nil)
click to toggle source
# File lib/administrate/search.rb, line 13 def initialize(original_query, valid_filters = nil) @original_query = original_query @valid_filters = valid_filters @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 19 def original @original_query end
terms()
click to toggle source
# File lib/administrate/search.rb, line 23 def terms @terms.join(" ") end
to_s()
click to toggle source
# File lib/administrate/search.rb, line 27 def to_s original end
Private Instance Methods
filter?(word)
click to toggle source
# File lib/administrate/search.rb, line 33 def filter?(word) valid_filters&.any? { |filter| word.match?(/^#{filter}:/) } end
parse_query(query)
click to toggle source
# File lib/administrate/search.rb, line 37 def parse_query(query) filters = [] terms = [] query.to_s.split.each do |word| if filter?(word) filters << word else terms << word end end [filters, terms] end