rooble 0.4.1 → 0.4.3
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/rooble/version.rb +1 -1
- data/lib/rooble.rb +11 -3
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2b8584c96b7c4cee5648017142702d8651e82950b6b3b80b98280adb754f82ef
|
|
4
|
+
data.tar.gz: 87c83e64ec2c56dc5e2fd5b69e0b590edb25bfcc5ac2a2c4518688e6db839965
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3c1b12e7af88715295362eeb3604b1ef24f8e7094555c08a45f229faa7216d9495c774c07c7756de822b90c073311daf9ea629a20f3cda1466f6c2c67f253d88
|
|
7
|
+
data.tar.gz: fc35839dc9590e582c23d98409c3747a83281c131d9f2502f2e0048eb7a6a3ac8bc1792bedb3b8eda5ba463ecc5a2029393b76bb66f20173749f80106d76528e
|
data/lib/rooble/version.rb
CHANGED
data/lib/rooble.rb
CHANGED
|
@@ -36,7 +36,7 @@ module Rooble
|
|
|
36
36
|
# Returns a set of paginated records given a page.
|
|
37
37
|
#
|
|
38
38
|
|
|
39
|
-
def paginate(page=1, max_records_per_page=nil)
|
|
39
|
+
def paginate(page=1, max_records_per_page=nil, order_by: {id: :asc})
|
|
40
40
|
page ||= 1
|
|
41
41
|
|
|
42
42
|
if page.to_i < 0
|
|
@@ -45,14 +45,16 @@ module Rooble
|
|
|
45
45
|
|
|
46
46
|
max_records_per_page ||= Rooble::configuration.max_records_per_page
|
|
47
47
|
current_offset = ((page.to_i*max_records_per_page))-max_records_per_page
|
|
48
|
-
records = self.limit(max_records_per_page)
|
|
48
|
+
records = self.limit(max_records_per_page)
|
|
49
|
+
.offset(current_offset)
|
|
50
|
+
.order(**order_by)
|
|
49
51
|
end
|
|
50
52
|
|
|
51
53
|
##
|
|
52
54
|
# Searches through records for the given fields
|
|
53
55
|
#
|
|
54
56
|
|
|
55
|
-
def search(fields, search_term, options={})
|
|
57
|
+
def search(fields, search_term, options={}, order_by: {id: :asc})
|
|
56
58
|
if search_term.nil?
|
|
57
59
|
raise Rooble::Error.new "You need to give a search term"
|
|
58
60
|
end
|
|
@@ -63,6 +65,11 @@ module Rooble
|
|
|
63
65
|
|
|
64
66
|
raise Rooble::Error.new("You can only include or join relations, not both!") if ([:include, :join] - options.keys ).empty?
|
|
65
67
|
|
|
68
|
+
# check if we are doing pattern search
|
|
69
|
+
if options.has_key? :partial_search
|
|
70
|
+
search_term = "%#{search_term}%"
|
|
71
|
+
end
|
|
72
|
+
|
|
66
73
|
# check if we are joining/including other models first
|
|
67
74
|
if options.has_key? :include
|
|
68
75
|
model = self.includes(options[:include])
|
|
@@ -125,6 +132,7 @@ module Rooble
|
|
|
125
132
|
end
|
|
126
133
|
|
|
127
134
|
records = model.where(query.join(' OR '), *search_values)
|
|
135
|
+
.order(**order_by)
|
|
128
136
|
end
|
|
129
137
|
|
|
130
138
|
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.
|
|
4
|
+
version: 0.4.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gustavo Rubio
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-
|
|
11
|
+
date: 2022-10-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|