make_model_searchable 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/make_model_searchable.rb +37 -26
- data/lib/make_model_searchable/version.rb +1 -1
- data/make_model_searchable.gemspec +2 -2
- metadata +13 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 869edeb1e4a767676fe077bb8d00d291b887147c
|
4
|
+
data.tar.gz: 52989316f144003d1382cd8ad6d339a53ab50b06
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d2618c99d9d70b8b3b7732329a0f2eed38083eab7b7fb41aff661299286ac27bee626038bc3dcfb09ce98844f47efcfa5835b1718bc1cb14ec56fd652eee9f0
|
7
|
+
data.tar.gz: 71de900ab1b4eeb9e92e4306e4523d1384b8eb0ff6cbbd4ce0a9dc24fbff9130340b02ffec1b3f6d8ee5079ab84c5e67ae45f0bf67ec468501445c83fdc2b252
|
@@ -2,6 +2,7 @@ require "make_model_searchable/version"
|
|
2
2
|
require 'active_record'
|
3
3
|
|
4
4
|
module MakeModelSearchable
|
5
|
+
|
5
6
|
def searchable_attributes(*options)
|
6
7
|
options = options.collect{ |option| option.to_s }
|
7
8
|
self.connection
|
@@ -17,10 +18,21 @@ module MakeModelSearchable
|
|
17
18
|
self.instance_variable_set(:@selected_fields, valid_fields)
|
18
19
|
end
|
19
20
|
|
20
|
-
def get_valid_fields(
|
21
|
-
column_names = self.
|
22
|
-
column_types = self.
|
23
|
-
|
21
|
+
def get_valid_fields(options)
|
22
|
+
column_names = self.columns.map(&:name)
|
23
|
+
column_types = self.columns.map(&:type)
|
24
|
+
searchable_columns = []
|
25
|
+
if column_names.length == column_types.length
|
26
|
+
column_names.each_with_index do |column_name, index|
|
27
|
+
searchable_columns << column_name if column_types[index].to_sym == :string
|
28
|
+
end
|
29
|
+
end
|
30
|
+
if searchable_columns.present?
|
31
|
+
options.select{ |option| searchable_columns.include?(option) }
|
32
|
+
else
|
33
|
+
options = []
|
34
|
+
end
|
35
|
+
options
|
24
36
|
end
|
25
37
|
|
26
38
|
module ClassMethods
|
@@ -30,7 +42,6 @@ module MakeModelSearchable
|
|
30
42
|
if search_term
|
31
43
|
search_term = "%#{search_term.downcase}%"
|
32
44
|
users = self.arel_table
|
33
|
-
# valid_fields = ["first_name", "last_name"]
|
34
45
|
arel_node = Arel::Nodes::Node.new
|
35
46
|
valid_fields.each_with_index do |val, index|
|
36
47
|
if index == 0
|
@@ -48,30 +59,30 @@ module MakeModelSearchable
|
|
48
59
|
end
|
49
60
|
end
|
50
61
|
|
51
|
-
def get_valid_fields(fields)
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
end
|
62
|
+
# def get_valid_fields(fields)
|
63
|
+
# column_names = self.columns.map(&:name)
|
64
|
+
# column_types = self.columns.map(&:type)
|
65
|
+
# fields.reject { |element| !column_names.include?(element) or column_types[element].type != :string }
|
66
|
+
# end
|
56
67
|
|
57
|
-
def get_join_fields(fields, associations)
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
68
|
+
# def get_join_fields(fields, associations)
|
69
|
+
# # self.reflect_on_association(:emails).class_name.constantize.column_names
|
70
|
+
# column_names = []
|
71
|
+
# associations.each do |association_name|
|
72
|
+
# # association_name
|
73
|
+
# column_names << self.reflect_on_association(association_name).class_name.constantize.column_names
|
74
|
+
# end
|
75
|
+
# column_names.flatten!
|
76
|
+
# column_names.uniq!
|
66
77
|
|
67
|
-
|
68
|
-
end
|
78
|
+
# fields.reject { |element| !column_names.include?(element) }
|
79
|
+
# end
|
69
80
|
|
70
|
-
def get_valid_associations(associations)
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
end
|
81
|
+
# def get_valid_associations(associations)
|
82
|
+
# associations.collect! { |assoc| assoc.to_sym }
|
83
|
+
# association_names = self.reflect_on_all_associations.collect{|assoc| assoc.name }
|
84
|
+
# associations.reject { |element| !association_names.include?(element) }
|
85
|
+
# end
|
75
86
|
end
|
76
87
|
ActiveRecord::Base.extend MakeModelSearchable
|
77
88
|
end
|
@@ -27,8 +27,8 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
|
30
|
-
spec.add_development_dependency
|
31
|
-
spec.add_development_dependency
|
30
|
+
spec.add_development_dependency 'activerecord', '~> 3.0', '>= 3.0.0'
|
31
|
+
spec.add_development_dependency 'activesupport', '~> 3.0', '>= 3.0.0'
|
32
32
|
spec.add_development_dependency "bundler", "~> 1.12"
|
33
33
|
spec.add_development_dependency "rake", "~> 10.0"
|
34
34
|
spec.add_development_dependency "rspec", "~> 3.0"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: make_model_searchable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 8parth
|
@@ -14,6 +14,9 @@ dependencies:
|
|
14
14
|
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.0'
|
17
20
|
- - ">="
|
18
21
|
- !ruby/object:Gem::Version
|
19
22
|
version: 3.0.0
|
@@ -21,6 +24,9 @@ dependencies:
|
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.0'
|
24
30
|
- - ">="
|
25
31
|
- !ruby/object:Gem::Version
|
26
32
|
version: 3.0.0
|
@@ -28,6 +34,9 @@ dependencies:
|
|
28
34
|
name: activesupport
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '3.0'
|
31
40
|
- - ">="
|
32
41
|
- !ruby/object:Gem::Version
|
33
42
|
version: 3.0.0
|
@@ -35,6 +44,9 @@ dependencies:
|
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '3.0'
|
38
50
|
- - ">="
|
39
51
|
- !ruby/object:Gem::Version
|
40
52
|
version: 3.0.0
|