diff options
author | Hiroyuki Sato <sathiroyuki@gmail.com> | 2017-08-29 07:14:41 +0900 |
---|---|---|
committer | Hiroyuki Sato <sathiroyuki@gmail.com> | 2017-08-29 07:14:41 +0900 |
commit | 87b51c5981db3b1b9831b01ca6e74127d57dc2d9 (patch) | |
tree | 711dcce0d9a49385cae82854ecbbbc13b09b9806 /lib | |
parent | 866aab7f2a92f9929a5c5811d3d3c23c11184b26 (diff) | |
download | gitlab-ce-87b51c5981db3b1b9831b01ca6e74127d57dc2d9.tar.gz |
Move the logic to a concern
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/sql/pattern.rb | 39 |
1 files changed, 16 insertions, 23 deletions
diff --git a/lib/gitlab/sql/pattern.rb b/lib/gitlab/sql/pattern.rb index 46c973d8a11..26bfeeeee67 100644 --- a/lib/gitlab/sql/pattern.rb +++ b/lib/gitlab/sql/pattern.rb @@ -1,33 +1,26 @@ module Gitlab module SQL - class Pattern - MIN_CHARS_FOR_PARTIAL_MATCHING = 3 - - attr_reader :query + module Pattern + extend ActiveSupport::Concern - def initialize(query) - @query = query - end + MIN_CHARS_FOR_PARTIAL_MATCHING = 3 - def to_sql - if exact_matching? - sanitized_query - else - "%#{sanitized_query}%" + class_methods do + def to_pattern(query) + if exact_matching?(query) + sanitize_sql_like(query) + else + "%#{sanitize_sql_like(query)}%" + end end - end - def exact_matching? - !partial_matching? - end - - def partial_matching? - @query.length >= MIN_CHARS_FOR_PARTIAL_MATCHING - end + def exact_matching?(query) + query.length < MIN_CHARS_FOR_PARTIAL_MATCHING + end - def sanitized_query - # Note: ActiveRecord::Base.sanitize_sql_like is a protected method - ActiveRecord::Base.__send__(:sanitize_sql_like, query) + def partial_matching?(query) + query.length >= MIN_CHARS_FOR_PARTIAL_MATCHING + end end end end |