rooble 0.3.2 → 0.4.0

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
- SHA1:
3
- metadata.gz: 40e44e737c4f30d4dc8aa00ca5321a64dfb4e3c0
4
- data.tar.gz: ae20c6f07893a26981e3fa5cfb020e6b1f6941d3
2
+ SHA256:
3
+ metadata.gz: c8ad293d2c3fdd811cdf863c9f909d9e4a1213a1aea3adaab31a3454be59ea17
4
+ data.tar.gz: 6b8cc9690c01d6b80f844cc41b6525c413dae1248d9346f146a18bcffe5c35cd
5
5
  SHA512:
6
- metadata.gz: 7887f557a7d2d2aac81cb16c177fc7a9a6f69d328f08daeb63ed91e936996290d7ef76eff74d5482a3323580dc2dc38ee607385ec9aac315d3f549ef4115015d
7
- data.tar.gz: a19a5e91bc6263ae4307466298865dc0a7171129309378fa54c326a59e9abc9c8c245b689bffd3c3d5f408b660be07d079e257c022cb7a6c57b7c1990d61a605
6
+ metadata.gz: 71c79aaf918a41a2609f1b5ad37353b64db21e1d9568adcb48499f2f9ce658059eadbe6326c4ad32511ebafb4381f8a4cabc1d0f59906d99a195d6e476c4bff1
7
+ data.tar.gz: 781e3c4d43238f27e1d03898e33d1dd6e1de8e6055cddef35edcb03ded344c676b55e3cadefb8db73a641b9965b7eef925bfe4729fad4490c606718023b4f5a7
data/README.md CHANGED
@@ -98,7 +98,7 @@ Model.search(fields, search_term, options={})
98
98
 
99
99
  **Arguments:**
100
100
 
101
- - `fields` a string with a field name or string array with field names to make the query against
101
+ - `fields` a string with a field name or string/symbol array with field names to make the query against
102
102
  - `search_term` string with the term to search
103
103
  - `options` a hash with a set of options. Please se below for more info.
104
104
 
@@ -1,3 +1,3 @@
1
1
  module Rooble
2
- VERSION = "0.3.2"
2
+ VERSION = "0.4.0"
3
3
  end
data/lib/rooble.rb CHANGED
@@ -73,8 +73,9 @@ module Rooble
73
73
  end
74
74
 
75
75
  fields = [].push(fields) unless fields.is_a? Array
76
+ fields.collect! { |f| f.to_s }
76
77
  search_values = []
77
- query = ''
78
+ query = []
78
79
  case_sensitive = false
79
80
  or_cond = ''
80
81
  id_fields = ['id']
@@ -90,19 +91,15 @@ module Rooble
90
91
  end
91
92
 
92
93
  fields.each_with_index do |field,index|
93
- # set the OR if we have more than one field
94
- if index > 0
95
- or_cond = "OR"
96
- end
97
94
 
98
95
  # lets find out if we are looking for the ID, we can't
99
96
  # use like for integers so we use equality instead
100
- if id_fields.include? field.downcase
97
+ if id_fields.include? field.downcase.split('.').last
101
98
  # check that the search term is actually a number
102
- next unless search_term.gsub('%', '').to_i > 0
99
+ next unless search_term.to_s.gsub('%', '').to_i > 0
103
100
 
104
101
  operator = "="
105
- search_values.push(search_term.gsub('%', '').to_i)
102
+ search_values.push(search_term.to_s.gsub('%', '').to_i)
106
103
  else
107
104
  # set whether we want case sensitive search
108
105
  case ActiveRecord::Base.connection.adapter_name
@@ -111,6 +108,8 @@ module Rooble
111
108
  search_value = search_term
112
109
  when "MySQL", "Mysql2", "SQLite"
113
110
  operator = "LIKE"
111
+ # downcase the search term if we are doing case insensitive search so
112
+ # the value of downcasing the column matches
114
113
  if case_sensitive
115
114
  search_value = search_term
116
115
  else
@@ -119,15 +118,13 @@ module Rooble
119
118
  end
120
119
  end
121
120
 
122
- # downcase the search term if we are doing case insensitive search so
123
- # the value of downcasing the column matches
124
- search_values.push("#{search_value}")
121
+ search_values.push("#{search_value.to_s}")
125
122
  end
126
123
 
127
- query += " #{or_cond} #{field} #{operator} ? "
124
+ query << " #{field} #{operator} ? "
128
125
  end
129
126
 
130
- records = model.where(query, *search_values)
127
+ records = model.where(query.join(' OR '), *search_values)
131
128
  end
132
129
 
133
130
  end
data/rooble.gemspec CHANGED
@@ -2,12 +2,13 @@
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'rooble/version'
5
+ require 'date'
5
6
 
6
7
  Gem::Specification.new do |spec|
7
8
  spec.name = 'rooble'
8
9
  spec.version = Rooble::VERSION
9
10
  spec.authors = ["Gustavo Rubio"]
10
- spec.email = 'gus@ahivamos.net'
11
+ spec.email = 'mail@gustavorub.io'
11
12
 
12
13
  spec.summary = "Allows to paginate and search through ActiveRecord associations in rails."
13
14
  spec.description = "Yet another unnecessary and selfishly-created pagination and search gem for rails. This gem will add methods to your ActiveRecord associations and classes so you can search and paginate."
@@ -19,9 +20,9 @@ Gem::Specification.new do |spec|
19
20
  spec.platform = Gem::Platform::RUBY
20
21
  spec.post_install_message = "Here, have a cookie for installing this wonderful gem: 🍪"
21
22
 
22
- spec.add_dependency 'activesupport', '~> 4.0', '>= 4.0.0'
23
- spec.add_dependency 'activerecord', '~> 4.0', '>= 4.0.0'
23
+ spec.add_dependency 'activesupport', '~> 6.1', '>= 6.1.0'
24
+ spec.add_dependency 'activerecord', '~> 6.1', '>= 6.1.0'
24
25
 
25
- spec.add_development_dependency 'bundler', '~> 1.0', '>= 1.0.0'
26
- spec.add_development_dependency "rake", "~> 10.0"
26
+ spec.add_development_dependency 'bundler', '~> 1.17', '>= 1.17.0'
27
+ spec.add_development_dependency "rake", "~> 13.0"
27
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rooble
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gustavo Rubio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-06 00:00:00.000000000 Z
11
+ date: 2022-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,78 +16,78 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '4.0'
19
+ version: '6.1'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 4.0.0
22
+ version: 6.1.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '4.0'
29
+ version: '6.1'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 4.0.0
32
+ version: 6.1.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: activerecord
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '4.0'
39
+ version: '6.1'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 4.0.0
42
+ version: 6.1.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '4.0'
49
+ version: '6.1'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 4.0.0
52
+ version: 6.1.0
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: bundler
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: '1.0'
59
+ version: '1.17'
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 1.0.0
62
+ version: 1.17.0
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '1.0'
69
+ version: '1.17'
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 1.0.0
72
+ version: 1.17.0
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: rake
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: '10.0'
79
+ version: '13.0'
80
80
  type: :development
81
81
  prerelease: false
82
82
  version_requirements: !ruby/object:Gem::Requirement
83
83
  requirements:
84
84
  - - "~>"
85
85
  - !ruby/object:Gem::Version
86
- version: '10.0'
86
+ version: '13.0'
87
87
  description: Yet another unnecessary and selfishly-created pagination and search gem
88
88
  for rails. This gem will add methods to your ActiveRecord associations and classes
89
89
  so you can search and paginate.
90
- email: gus@ahivamos.net
90
+ email: mail@gustavorub.io
91
91
  executables: []
92
92
  extensions: []
93
93
  extra_rdoc_files: []
@@ -119,8 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  - !ruby/object:Gem::Version
120
120
  version: '0'
121
121
  requirements: []
122
- rubyforge_project:
123
- rubygems_version: 2.4.5.1
122
+ rubygems_version: 3.1.6
124
123
  signing_key:
125
124
  specification_version: 4
126
125
  summary: Allows to paginate and search through ActiveRecord associations in rails.