wildsearcher 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/wildsearcher.rb +15 -4
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b294f9eaa57ebbe1dd3686b3ac074d1a2504de7
|
4
|
+
data.tar.gz: 888b7164d190e952df04f4480bf75f46d2d5b109
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0a8a063fdcd89e96ba0fd810487536c929204fe1f0e4d8c9cdf95b0ff0948972b2f9a468dba370a213cd5713b391190565e42c4e284b6c31b8c687cf5165b37
|
7
|
+
data.tar.gz: f66f4b8164c57dfdb991ac5867286295946285efe8d72e5456c871e0b1f4c9d6313ee1f26803ceaf6e406ebe7de1b0dfb906fc4161151ed1a90102668fb9054d
|
data/lib/wildsearcher.rb
CHANGED
@@ -1,16 +1,27 @@
|
|
1
|
-
require "wildsearcher/version"
|
2
|
-
require "wildsearcher/active_record_helper"
|
3
1
|
require "active_record"
|
4
2
|
|
5
3
|
module Wildsearcher
|
6
|
-
include ActiveRecordHelper
|
7
|
-
|
8
4
|
def wildsearcher(params = {})
|
9
5
|
field_array = params[:search_fields].to_s.split(",")
|
10
6
|
term = params[:search_term].to_s.strip
|
11
7
|
filter_records(search_fields: field_array, search_term: term)
|
12
8
|
end
|
13
9
|
|
10
|
+
private def version_specific_scoped
|
11
|
+
::ActiveRecord::VERSION::MAJOR >= 4 ? all : scoped
|
12
|
+
end
|
13
|
+
|
14
|
+
private def db_like
|
15
|
+
case ::ActiveRecord::Base.connection.class.name.demodulize
|
16
|
+
when "PostgreSQLAdapter"
|
17
|
+
"ILIKE"
|
18
|
+
when "MysqlAdapter", "Mysql2Adapter"
|
19
|
+
"LIKE"
|
20
|
+
else
|
21
|
+
raise NotImplementedError.new("Wildsearcher currently supports only Mysql and Postgresql.")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
14
25
|
def filter_records(search_fields: [], search_term: "")
|
15
26
|
return version_specific_scoped if search_fields.empty? || search_term.blank?
|
16
27
|
check_missing_associations(search_fields)
|