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