rooble 0.4.1 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rooble/version.rb +1 -1
  3. data/lib/rooble.rb +11 -3
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b8971a29eb4e5250672b39cd2176e3584fb74ed48f824a5dfd744d562d7ea0d0
4
- data.tar.gz: 6c11e4280291cdf93faf7309cbbf8c85f3ee9467a2c289bb1825931779f749f3
3
+ metadata.gz: 2b8584c96b7c4cee5648017142702d8651e82950b6b3b80b98280adb754f82ef
4
+ data.tar.gz: 87c83e64ec2c56dc5e2fd5b69e0b590edb25bfcc5ac2a2c4518688e6db839965
5
5
  SHA512:
6
- metadata.gz: 5471fcff377b14a67b032443003958e5c915168b4f48c1ba312dcf1c324da3d3ef7e7b1b5a6eaa2aab8be363fafd7ecf2b2592d0a2201434e96c63c76c57833d
7
- data.tar.gz: cd823daf8d39cdde76facbf8db9d81f990eaf8f771a144ea9760a73584249cc13d747c61367684d89214872133ac87d157a3dc471bdad2500c5f46c898e16060
6
+ metadata.gz: 3c1b12e7af88715295362eeb3604b1ef24f8e7094555c08a45f229faa7216d9495c774c07c7756de822b90c073311daf9ea629a20f3cda1466f6c2c67f253d88
7
+ data.tar.gz: fc35839dc9590e582c23d98409c3747a83281c131d9f2502f2e0048eb7a6a3ac8bc1792bedb3b8eda5ba463ecc5a2029393b76bb66f20173749f80106d76528e
@@ -1,3 +1,3 @@
1
1
  module Rooble
2
- VERSION = "0.4.1"
2
+ VERSION = "0.4.3"
3
3
  end
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).offset(current_offset)
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.1
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-08-07 00:00:00.000000000 Z
11
+ date: 2022-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport