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 +5 -5
- data/README.md +1 -1
- data/lib/rooble/version.rb +1 -1
- data/lib/rooble.rb +10 -13
- data/rooble.gemspec +6 -5
- metadata +18 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: c8ad293d2c3fdd811cdf863c9f909d9e4a1213a1aea3adaab31a3454be59ea17
|
4
|
+
data.tar.gz: 6b8cc9690c01d6b80f844cc41b6525c413dae1248d9346f146a18bcffe5c35cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
|
data/lib/rooble/version.rb
CHANGED
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
|
-
#
|
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
|
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 = '
|
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', '~>
|
23
|
-
spec.add_dependency 'activerecord', '~>
|
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.
|
26
|
-
spec.add_development_dependency "rake", "~>
|
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.
|
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:
|
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: '
|
19
|
+
version: '6.1'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
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: '
|
29
|
+
version: '6.1'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
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: '
|
39
|
+
version: '6.1'
|
40
40
|
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
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: '
|
49
|
+
version: '6.1'
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version:
|
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.
|
59
|
+
version: '1.17'
|
60
60
|
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 1.
|
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.
|
69
|
+
version: '1.17'
|
70
70
|
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: 1.
|
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: '
|
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: '
|
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:
|
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
|
-
|
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.
|