module Texticle::Helper

Public Class Methods

dynamic_search_method?(method, class_columns) click to toggle source
# File lib/texticle.rb, line 220
def dynamic_search_method?(method, class_columns)
  exclusive_dynamic_search_method?(method, class_columns) or
    inclusive_dynamic_search_method?(method, class_columns)
end
exclusive_dynamic_search_columns(method) click to toggle source
# File lib/texticle.rb, line 184
def exclusive_dynamic_search_columns(method)
  if match = method.to_s.match(method_name_regex)
    match[:columns].split('_and_')
  else
    []
  end
end
exclusive_dynamic_search_method?(method, class_columns) click to toggle source
# File lib/texticle.rb, line 200
def exclusive_dynamic_search_method?(method, class_columns)
  string_columns = class_columns.map(&:name)
  columns = exclusive_dynamic_search_columns(method)
  unless columns.empty?
    columns.all? {|column| string_columns.include?(column) }
  else
    false
  end
end
inclusive_dynamic_search_columns(method) click to toggle source
# File lib/texticle.rb, line 192
def inclusive_dynamic_search_columns(method)
  if match = method.to_s.match(method_name_regex)
    match[:columns].split('_or_')
  else
    []
  end
end
inclusive_dynamic_search_method?(method, class_columns) click to toggle source
# File lib/texticle.rb, line 210
def inclusive_dynamic_search_method?(method, class_columns)
  string_columns = class_columns.map(&:name)
  columns = inclusive_dynamic_search_columns(method)
  unless columns.empty?
    columns.all? {|column| string_columns.include?(column) }
  else
    false
  end
end
method_name_regex() click to toggle source
# File lib/texticle.rb, line 176
def method_name_regex
  /^(?<search_type>((basic|advanced|fuzzy)_)?search)_by_(?<columns>[_a-zA-Z]\w*)$/
end
normalize(query) click to toggle source
# File lib/texticle.rb, line 172
def normalize(query)
  query.to_s.gsub(' ', '\\\\ ')
end
search_type(method) click to toggle source
# File lib/texticle.rb, line 180
def search_type(method)
  method.to_s.match(method_name_regex)[:search_type]
end