class Textoken::Searcher

This class reads YAML file under searchables/values, returns array of regexps representing values passed as an argument todo: add regexp support

Attributes

values[R]
yaml[R]

Public Class Methods

new(values) click to toggle source
# File lib/textoken/searcher.rb, line 8
def initialize(values)
  @values   = check_and_init_values(values)
  @yaml     = load_file
  @regexps  = []
end

Public Instance Methods

regexps() click to toggle source
# File lib/textoken/searcher.rb, line 14
def regexps
  match_keys
  @regexps.map.each { |r| Regexp.new(r) }
end

Private Instance Methods

add_regexps(arr) click to toggle source
# File lib/textoken/searcher.rb, line 41
def add_regexps(arr)
  @regexps += arr
end
check_and_init_values(values) click to toggle source
# File lib/textoken/searcher.rb, line 21
def check_and_init_values(values)
  values.split(',').map(&:strip)
rescue
  Textoken.expression_err("#{values} are not supported. Correct format,
    has to be 'numbers' or 'numbers, dates, phones'")
end
load_file() click to toggle source
# File lib/textoken/searcher.rb, line 28
def load_file
  YAML.load_file("#{GEM_ROOT}/lib/textoken/regexps/option_values.yml")
end
match_keys() click to toggle source

here we do check for option values user supplied option values has to be declared at option_values.yml

# File lib/textoken/searcher.rb, line 34
def match_keys
  values.each do |v|
    Textoken.expression_err("#{v}: is not permitted.") unless yaml.key?(v)
    add_regexps(yaml[v])
  end
end