jsonapi-realizer 4.1.0 → 4.2.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 +11 -8
- data/lib/jsonapi/realizer/action.rb +17 -6
- data/lib/jsonapi/realizer/version.rb +1 -1
- metadata +23 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4cc7c0ca36909f2b78e77b8b13d77edfdee53a242cf6556d4c9c6e2fb9be737
|
4
|
+
data.tar.gz: 73139ddf9d227b9ba71a7e974ccbd0709ed1a7e23da2bd2be8d86c22021c3a35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c214e9a2462303cedabd80fdba3411f581d03e3ca413abc065fee77bac007b01f61d0e23599cf51be59951483d90257d4dceb0e3ed8cd192b5f4393cddc27230
|
7
|
+
data.tar.gz: b4d9901c7f64eb7aa931f097d7d04301c1b377d9dc1e5f15bbda8725d46b20835665002a025c7133f1f60cb8e5257c2317d718774e378568bc65e97da42e313b
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# jsonapi-realizer
|
2
2
|
|
3
|
-
- [](https://travis-ci.org/krainboltgreene/jsonapi-realizer)
|
3
|
+
- [](https://travis-ci.org/krainboltgreene/jsonapi-realizer.rb)
|
4
4
|
- [](https://rubygems.org/gems/jsonapi-realizer)
|
5
5
|
- [](https://rubygems.org/gems/jsonapi-realizer)
|
6
6
|
|
@@ -21,7 +21,9 @@ class Profile < ApplicationRecord
|
|
21
21
|
end
|
22
22
|
```
|
23
23
|
|
24
|
-
*They don't have to be ActiveRecord
|
24
|
+
*Note: They don't have to be ActiveRecord models, but we have built-in support for that library (adapter-based).*
|
25
|
+
|
26
|
+
Second you'll need some realizers:
|
25
27
|
|
26
28
|
``` ruby
|
27
29
|
class PhotoRealizer
|
@@ -183,9 +185,14 @@ class PhotoRealizer
|
|
183
185
|
end
|
184
186
|
```
|
185
187
|
|
186
|
-
### rails
|
188
|
+
### rails
|
189
|
+
|
190
|
+
If you want to use jsonapi-realizer in development mode you'll want to turn on `eager_loading` (by setting it to `true` in `config/environments/development.rb`) or by adding `app/realizers` to the `eager_load_paths`.
|
191
|
+
|
187
192
|
|
188
|
-
|
193
|
+
### rails and pundit and jsonapi-serializers
|
194
|
+
|
195
|
+
While this gem contains nothing specifically targeting rails or pundit or [jsonapi-serializers](https://github.com/fotinakis/jsonapi-serializers) (a fantastic gem) I've already written some seamless integration code. This root controller will handle exceptions in a graceful way and also give you access to a clean interface for serializing:
|
189
196
|
|
190
197
|
``` ruby
|
191
198
|
module V1
|
@@ -333,10 +340,6 @@ Or install it yourself with:
|
|
333
340
|
|
334
341
|
$ gem install jsonapi-realizer
|
335
342
|
|
336
|
-
### Rails
|
337
|
-
|
338
|
-
There's nothing extremely special about a rails application, but if you want to use jsonapi-realizer in development mode you'll probably want to turn on `eager_loading` (by setting it to `true` in `config/environments/development.rb`) or by adding `app/realizers` to the `eager_load_paths`.
|
339
|
-
|
340
343
|
|
341
344
|
## Contributing
|
342
345
|
|
@@ -83,12 +83,23 @@ module JSONAPI
|
|
83
83
|
end
|
84
84
|
|
85
85
|
private def as_relationship(value)
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
86
|
+
if value.kind_of?(Array)
|
87
|
+
value.map do |member|
|
88
|
+
data = member.fetch("data")
|
89
|
+
mapping = JSONAPI::Realizer.type_mapping.fetch(data.fetch("type"))
|
90
|
+
mapping.adapter.find_via_call(
|
91
|
+
mapping.model_class,
|
92
|
+
data.fetch("id")
|
93
|
+
)
|
94
|
+
end
|
95
|
+
else
|
96
|
+
data = value.fetch("data")
|
97
|
+
mapping = JSONAPI::Realizer.type_mapping.fetch(data.fetch("type"))
|
98
|
+
mapping.adapter.find_via_call(
|
99
|
+
mapping.model_class,
|
100
|
+
data.fetch("id")
|
101
|
+
)
|
102
|
+
end
|
92
103
|
end
|
93
104
|
|
94
105
|
def includes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jsonapi-realizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.1
|
4
|
+
version: 4.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kurtis Rainbolt-Greene
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03
|
11
|
+
date: 2018-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -112,14 +112,32 @@ dependencies:
|
|
112
112
|
name: activesupport
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - "
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 4.0.0
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '4.1'
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: 5.0.0
|
124
|
+
- - ">="
|
116
125
|
- !ruby/object:Gem::Version
|
117
126
|
version: '5.1'
|
118
127
|
type: :runtime
|
119
128
|
prerelease: false
|
120
129
|
version_requirements: !ruby/object:Gem::Requirement
|
121
130
|
requirements:
|
122
|
-
- - "
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 4.0.0
|
134
|
+
- - ">="
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '4.1'
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: 5.0.0
|
140
|
+
- - ">="
|
123
141
|
- !ruby/object:Gem::Version
|
124
142
|
version: '5.1'
|
125
143
|
description: A way to take json:api requests and turn them into models
|
@@ -182,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
200
|
version: '0'
|
183
201
|
requirements: []
|
184
202
|
rubyforge_project:
|
185
|
-
rubygems_version: 2.7.
|
203
|
+
rubygems_version: 2.7.3
|
186
204
|
signing_key:
|
187
205
|
specification_version: 4
|
188
206
|
summary: A way to take json:api requests and turn them into models
|