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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 40b9aa918e683ff3a2c69064985c789c5aa32baa
4
- data.tar.gz: c39755155c83ee41154df9d1bb30283684561f71
3
+ metadata.gz: 869edeb1e4a767676fe077bb8d00d291b887147c
4
+ data.tar.gz: 52989316f144003d1382cd8ad6d339a53ab50b06
5
5
  SHA512:
6
- metadata.gz: e51507163e4ed61a46a496fc5efa113ea1156d2d8f4664a5292dd13c624e01f4dc6071b664f1dd563c5e0d6774b85f4018d97f0973f168eaeff46f2aac2d076f
7
- data.tar.gz: 3d947d6e30df665dec40b6062c4da352cff128f25711ecdbd9c4d83a27d9c30cd769657a491b89cfdbaf4f227c4029071a32d1fabaf40523384adbdd682812a4
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(fields)
21
- column_names = self.column_names
22
- column_types = self.column_types
23
- fields.reject { |element| !column_names.include?(element) or column_types[element].type != :string }
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
- column_names = self.column_names
53
- column_types = self.column_types
54
- fields.reject { |element| !column_names.include?(element) or column_types[element].type != :string }
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
- # self.reflect_on_association(:emails).class_name.constantize.column_names
59
- column_names = []
60
- associations.each do |association_name|
61
- # association_name
62
- column_names << self.reflect_on_association(association_name).class_name.constantize.column_names
63
- end
64
- column_names.flatten!
65
- column_names.uniq!
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
- fields.reject { |element| !column_names.include?(element) }
68
- end
78
+ # fields.reject { |element| !column_names.include?(element) }
79
+ # end
69
80
 
70
- def get_valid_associations(associations)
71
- associations.collect! { |assoc| assoc.to_sym }
72
- association_names = self.reflect_on_all_associations.collect{|assoc| assoc.name }
73
- associations.reject { |element| !association_names.include?(element) }
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
@@ -1,3 +1,3 @@
1
1
  module MakeModelSearchable
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  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 "activerecord", '>= 3.0.0'
31
- spec.add_development_dependency "activesupport", '>= 3.0.0'
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.0
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