module ICU::Util::AlternativeNames

For generating SQL queries relating to alternative first or last names.

Public Instance Methods

first_name_like(first, last=nil) click to toggle source
# File lib/icu_name/util.rb, line 65
def first_name_like(first, last=nil)
  last = "X" if last.nil? || last =~ /\A\s*\z/
  ICU::Name.new(first, last).alternatives(:first).push(first).map do |nam|
    "first_name LIKE '%#{quote_str(nam)}%'"
  end.sort.join(" OR ")
end
last_name_like(last, first=nil) click to toggle source
# File lib/icu_name/util.rb, line 58
def last_name_like(last, first=nil)
  first = "X" if first.nil? || first =~ /\A\s*\z/
  ICU::Name.new(first, last).alternatives(:last).push(last).map do |nam|
    "last_name LIKE '%#{quote_str(nam)}%'"
  end.sort.join(" OR ")
end

Private Instance Methods

quote_str(s) click to toggle source

Same as Rails version (ActiveRecord::ConnectionAdapters::Quoting).

# File lib/icu_name/util.rb, line 75
def quote_str(s)
  s.gsub(/\\/, '\&\&').gsub(/'/, "''")
end