rails-rapido 0.6.0 → 0.6.1
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/README.md +8 -6
- data/lib/rapido/api_controller.rb +2 -1
- data/lib/rapido/controller.rb +6 -1
- data/lib/rapido/version.rb +1 -1
- 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: 4c7123a3a6f6a4c588644079e1aa18d1f2f43f65fba2a073bdf65ad5d969f84f
|
4
|
+
data.tar.gz: 06b29712f5d93a0121b71a6f5af810cdbf9c3869049a202a2f5923f8333743f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bad24cf889ce9d2fda165b50850a60b7b2bcb8a38800d8224027d1b9efd8fc68e2584a3b6e5356604437f4d6587568ec33b7bc7270f71e95801a1a6f2115bdd7
|
7
|
+
data.tar.gz: 3af33765a75abeb4b7abf4c9ba4ada1dc1d0190fae2f45fa2af2b48ba6d8b15b7a4b0e607e70f54549d24b88017151cf58e14e5180a0615d24a47075dee4077f
|
data/README.md
CHANGED
@@ -54,18 +54,20 @@ Specifies the param used to retrieve the resource. For example, if `Post` belong
|
|
54
54
|
|
55
55
|
Specifies the class that will present the resource. This class must accept the resource as the only parameter at initialization, and respond to the `as_json` for output when used with the `Rapido::ApiController`.
|
56
56
|
|
57
|
-
|
58
|
-
|
59
|
-
Specifies the class that will present a collection of resources, as in the index method. Similar to `presented_by`, the class must accept the resource collection as the only argument at initialization, and respond to `as_json` for output when used with the `Rapido::ApiController`. The `collection_presented_by` can also accept a list of arguments, as symbols, that should be pulled from the `params` hash and passed to presenter class at initialization as optional argments.
|
57
|
+
For example, if `params` contained a `:filter` parameter which should be used by the presenter , then the following would work:
|
60
58
|
|
61
|
-
|
62
|
-
|
63
|
-
`collection_presented_by WidgetsCollectionPresenter, :filter`
|
59
|
+
`presented_by WidgetsPresenter, :filter`
|
64
60
|
|
65
61
|
The `initialize` method of the presenter should be structured as such:
|
66
62
|
|
67
63
|
`def initialize(widgets, filter = nil)`
|
68
64
|
|
65
|
+
#### `collection_presented_by`
|
66
|
+
|
67
|
+
Specifies the class that will present a collection of resources, as in the index method. Similar to `presented_by`, the class must accept the resource collection as the only argument at initialization, and respond to `as_json` for output when used with the `Rapido::ApiController`. The `collection_presented_by` can also accept a list of arguments, as symbols, that should be pulled from the `params` hash and passed to presenter class at initialization as optional argments.
|
68
|
+
|
69
|
+
Collection presenters can also be provided args, similar to `presented_by`
|
70
|
+
|
69
71
|
#### `attr_permitted`
|
70
72
|
|
71
73
|
Accepts a list of symbols. These symbols specify the attributes that are supplied to StrongParameters as permitted parameters in `create` and `update` actions.
|
@@ -50,7 +50,8 @@ module Rapido
|
|
50
50
|
private
|
51
51
|
|
52
52
|
def present_resource(resource)
|
53
|
-
|
53
|
+
args = presenter_args.nil? ? nil : presenter_args.map { |arg| params[arg] }
|
54
|
+
return presenter.new(*[resource, *args]).as_json if presenter
|
54
55
|
resource.to_h
|
55
56
|
end
|
56
57
|
|
data/lib/rapido/controller.rb
CHANGED
@@ -87,8 +87,9 @@ module Rapido
|
|
87
87
|
resource_class_from_controller
|
88
88
|
end
|
89
89
|
|
90
|
-
def presented_by(presenter_class)
|
90
|
+
def presented_by(presenter_class, *args)
|
91
91
|
@presenter ||= presenter_class
|
92
|
+
@presenter_args = args if args.count > 0
|
92
93
|
end
|
93
94
|
end
|
94
95
|
|
@@ -159,6 +160,10 @@ module Rapido
|
|
159
160
|
setting(:presenter)
|
160
161
|
end
|
161
162
|
|
163
|
+
def presenter_args
|
164
|
+
setting(:presenter_args)
|
165
|
+
end
|
166
|
+
|
162
167
|
def resource
|
163
168
|
@resource ||= begin
|
164
169
|
if setting(:has_one)
|
data/lib/rapido/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails-rapido
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Kirst
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|