class PaginationSearch::SearchConditions

Constants

ALL_TRAIT_SEARCH_KEY
EXACT_MATCH
MATCH_TYPE_KEY
Result

Public Class Methods

process(search_string) click to toggle source
# File lib/pagination_search/search_conditions.rb, line 29
def process(search_string)
  wrapped attribute_cleaned grouped separated search_string
end

Private Class Methods

attribute_cleaned(grouped_hash) click to toggle source
# File lib/pagination_search/search_conditions.rb, line 51
def attribute_cleaned(grouped_hash)
  return nil if grouped_hash.nil?
  grouped_hash.each do |key, values|
    values.each { |value|  value.gsub!("#{key}:", '') }.compact
  end
end
grouped(terms) click to toggle source
# File lib/pagination_search/search_conditions.rb, line 46
def grouped(terms)
  return nil if terms.nil?
  terms.group_by { |item| /.+?(?=:)/.match(item).to_s }.to_hash
end
separated(search_string) click to toggle source
# File lib/pagination_search/search_conditions.rb, line 40
def separated(search_string)
  CSV::parse_line(search_string, col_sep: ' ').compact
rescue CSV::MalformedCSVError => mce
  nil
end
wrapped(cleaned_grouped_hash) click to toggle source
# File lib/pagination_search/search_conditions.rb, line 35
def wrapped(cleaned_grouped_hash)
  return nil if cleaned_grouped_hash.nil?
  Result.new(cleaned_grouped_hash)
end