artist urls: add artist, url_matches search params to /artist_urls.

This commit is contained in:
evazion
2018-09-15 11:44:05 -05:00
parent 1fce794b99
commit c06af060f9
3 changed files with 42 additions and 0 deletions

View File

@@ -5,6 +5,20 @@ class ApplicationRecord < ActiveRecord::Base
concerning :SearchMethods do
class_methods do
def qualified_column_for(attr)
"#{table_name}.#{column_for_attribute(attr).name}"
end
def where_ilike(attr, value)
where("lower(#{qualified_column_for(attr)}) LIKE ? ESCAPE E'\\\\'", value.mb_chars.downcase.to_escaped_for_sql_like)
end
# https://www.postgresql.org/docs/current/static/functions-matching.html#FUNCTIONS-POSIX-REGEXP
# "(?e)" means force use of ERE syntax; see sections 9.7.3.1 and 9.7.3.4.
def where_regex(attr, value)
where("#{qualified_column_for(attr)} ~ ?", "(?e)" + value)
end
def attribute_matches(attribute, value, **options)
return all if value.nil?