effective_resources 2.8.0 → 2.8.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0140383360a1897a1b21a4a5897f5e61d9099210ab1fca6fe8e93159c7bdc999'
|
4
|
+
data.tar.gz: 33819637928fe7fdb8e75df61f79526228652142fc76ab09222bed6ed9f91e6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 490636b3efc23c0406833448528f2e8029d9d707a49db92309eda2d65fff6be90d7c31c9d835827866d953b9c18a13781aeb11b43f606c411b051037f0c6f1ed
|
7
|
+
data.tar.gz: 1dc0516ce102fac154bfc374deee17678f4d4f33906a2e90bf96e175d5af0573faff5800749c5fff3f198110a3ef142b3fdb1b341e21aef3656a1388e6c4352b
|
data/README.md
CHANGED
@@ -213,6 +213,19 @@ Just put another `app/views/posts/index.html.haml` in the posts directory to ove
|
|
213
213
|
|
214
214
|
Sure why not. These don't really fit into my code base anywhere else.
|
215
215
|
|
216
|
+
### acts_as_paginable
|
217
|
+
|
218
|
+
Quickly adds a `paginate` scope to your model that can then be used in your views and also integrates well with `effective_bootstrap`. The pagination method is `Limit and Offset`.
|
219
|
+
|
220
|
+
```ruby
|
221
|
+
# Given any model you just need to call it like
|
222
|
+
class Thing < ApplicationRecord
|
223
|
+
acts_as_paginable
|
224
|
+
end
|
225
|
+
|
226
|
+
# Now you can use it like:
|
227
|
+
Thing.all.paginate(page: 1, per_page: 5)
|
228
|
+
```
|
216
229
|
### acts_as_tokened
|
217
230
|
|
218
231
|
Quickly adds rails 5 `has_secure_token` to your model, along with some `Post.find()` enhancements to work with tokens instead of IDs.
|
@@ -0,0 +1,36 @@
|
|
1
|
+
#
|
2
|
+
# ActsAsPaginable
|
3
|
+
#
|
4
|
+
# Adds the a `paginate` scope to a model for `limit` and `offset` pagination.
|
5
|
+
#
|
6
|
+
module ActsAsPaginable
|
7
|
+
extend ActiveSupport::Concern
|
8
|
+
|
9
|
+
module Base
|
10
|
+
def acts_as_paginable(options = nil)
|
11
|
+
include ::ActsAsPaginable
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
module ClassMethods
|
16
|
+
def acts_as_paginable?; true; end
|
17
|
+
end
|
18
|
+
|
19
|
+
included do
|
20
|
+
def self.default_per_page=(per_page)
|
21
|
+
@default_per_page = per_page
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.default_per_page
|
25
|
+
@default_per_page || 12 # because we often do 3 columns of 4 elements layouts
|
26
|
+
end
|
27
|
+
|
28
|
+
scope :paginate, -> (page: nil, per_page: nil) {
|
29
|
+
per_page = (per_page || default_per_page).to_i
|
30
|
+
page = (page || 1).to_i
|
31
|
+
offset = [(page - 1), 0].max * (per_page).to_i
|
32
|
+
|
33
|
+
all.limit(per_page).offset(offset)
|
34
|
+
}
|
35
|
+
end
|
36
|
+
end
|
@@ -313,11 +313,10 @@ module Effective
|
|
313
313
|
)
|
314
314
|
|
315
315
|
if as == :date
|
316
|
-
|
317
|
-
|
316
|
+
relation.where("#{sql_column} >= ? AND #{sql_column} < ?", term.to_date, (end_at + 1.day).to_date)
|
317
|
+
else
|
318
|
+
relation.where("#{sql_column} >= ? AND #{sql_column} <= ?", term, end_at)
|
318
319
|
end
|
319
|
-
|
320
|
-
relation.where("#{sql_column} >= ? AND #{sql_column} <= ?", term, end_at)
|
321
320
|
elsif value.respond_to?(:strftime) && operation == :eq
|
322
321
|
relation.where(attribute.matches(value))
|
323
322
|
end
|
@@ -347,7 +346,7 @@ module Effective
|
|
347
346
|
|
348
347
|
case operation
|
349
348
|
when :eq then relation.where("#{sql_column} = ?", term)
|
350
|
-
when :matches then search_columns_by_ilike_term(relation, term, columns: name)
|
349
|
+
when :matches then search_columns_by_ilike_term(relation, term, columns: (sql_column.presence || name))
|
351
350
|
when :not_eq then relation.where(attribute.not_eq(term))
|
352
351
|
when :does_not_match then relation.where(attribute.does_not_match("%#{term}%"))
|
353
352
|
when :starts_with then relation.where(attribute.matches("#{term}%"))
|
@@ -426,7 +425,10 @@ module Effective
|
|
426
425
|
|
427
426
|
# Do any of these columns contain all the terms?
|
428
427
|
conditions = columns.map do |name|
|
429
|
-
|
428
|
+
column = (name.to_s.include?('.') ? name : sql_column(name))
|
429
|
+
raise("expected an sql column for #{name}") if column.blank?
|
430
|
+
|
431
|
+
keys = terms.keys.map { |key| (fuzzy ? "#{column} #{ilike} :#{key}" : "#{column} = :#{key}") }
|
430
432
|
'(' + keys.join(' AND ') + ')'
|
431
433
|
end.join(' OR ')
|
432
434
|
|
@@ -29,8 +29,10 @@ module EffectiveResources
|
|
29
29
|
ActiveRecord::Base.extend(ActsAsTokened::Base)
|
30
30
|
ActiveRecord::Base.extend(ActsAsSlugged::Base)
|
31
31
|
ActiveRecord::Base.extend(ActsAsStatused::Base)
|
32
|
+
ActiveRecord::Base.extend(ActsAsPaginable::Base)
|
32
33
|
ActiveRecord::Base.extend(ActsAsWizard::Base)
|
33
34
|
ActiveRecord::Base.extend(ActsAsPurchasableWizard::Base)
|
35
|
+
|
34
36
|
ActiveRecord::Base.extend(HasManyPurgable::Base)
|
35
37
|
ActiveRecord::Base.extend(HasManyRichTexts::Base)
|
36
38
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_resources
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.8.
|
4
|
+
version: 2.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-06-
|
11
|
+
date: 2023-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -122,6 +122,34 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: psych
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "<"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '4'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "<"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '4'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: net-smtp
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
125
153
|
description: Make any controller an effective resource controller.
|
126
154
|
email:
|
127
155
|
- info@codeandeffect.com
|
@@ -159,6 +187,7 @@ files:
|
|
159
187
|
- app/mailers/concerns/effective_mailer.rb
|
160
188
|
- app/models/concerns/acts_as_archived.rb
|
161
189
|
- app/models/concerns/acts_as_email_form.rb
|
190
|
+
- app/models/concerns/acts_as_paginable.rb
|
162
191
|
- app/models/concerns/acts_as_purchasable_wizard.rb
|
163
192
|
- app/models/concerns/acts_as_slugged.rb
|
164
193
|
- app/models/concerns/acts_as_statused.rb
|
@@ -243,7 +272,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
243
272
|
- !ruby/object:Gem::Version
|
244
273
|
version: '0'
|
245
274
|
requirements: []
|
246
|
-
rubygems_version: 3.
|
275
|
+
rubygems_version: 3.3.7
|
247
276
|
signing_key:
|
248
277
|
specification_version: 4
|
249
278
|
summary: Make any controller an effective resource controller.
|