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