Module: Texticle::Helper

Defined in:
lib/texticle.rb

Class Method Summary collapse

Class Method Details

.dynamic_search_method?(method, class_columns) ⇒ Boolean

Returns:

  • (Boolean)


123
124
125
126
# File 'lib/texticle.rb', line 123

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) ⇒ Object



87
88
89
90
91
92
93
# File 'lib/texticle.rb', line 87

def exclusive_dynamic_search_columns(method)
  if match = method.to_s.match(/^search_by_(?<columns>[_a-zA-Z]\w*)$/)
    match[:columns].split('_and_')
  else
    []
  end
end

.exclusive_dynamic_search_method?(method, class_columns) ⇒ Boolean

Returns:

  • (Boolean)


103
104
105
106
107
108
109
110
111
# File 'lib/texticle.rb', line 103

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) ⇒ Object



95
96
97
98
99
100
101
# File 'lib/texticle.rb', line 95

def inclusive_dynamic_search_columns(method)
  if match = method.to_s.match(/^search_by_(?<columns>[_a-zA-Z]\w*)$/)
    match[:columns].split('_or_')
  else
    []
  end
end

.inclusive_dynamic_search_method?(method, class_columns) ⇒ Boolean

Returns:

  • (Boolean)


113
114
115
116
117
118
119
120
121
# File 'lib/texticle.rb', line 113

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

.normalize(query) ⇒ Object



83
84
85
# File 'lib/texticle.rb', line 83

def normalize(query)
  query.to_s.gsub(' ', '\\\\ ')
end