make_model_searchable 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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