onsi 1.1.0 → 1.2.0
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/CHANGELOG.md +14 -0
- data/lib/onsi/model.rb +10 -5
- data/lib/onsi/resource.rb +10 -5
- data/lib/onsi/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: 125362cc7e8b37e2a01878974ca1f8df845d5ae6235fb09571c939ea4ef0dbef
|
4
|
+
data.tar.gz: 1453b4fd3d2cc8f4f55c5a8862e3dedcf8caec1e866438cc9b125ef8e9897b21
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f46696980dcffe537154b596eae1783b56fbbc85e6ec789e616878e89a455519c291f5450ece97fe002554b52ef72e23b479a74137a1c3d617d6c1d4ecd3965
|
7
|
+
data.tar.gz: 9ccd840a50e92d321f62fdd304a225d771ab2c298880c506f0b684f68c6a9c201348dcd294161dedceaab3207798283741ab10f797f86b4e0bf590a2ce58ab9b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
# Version 1.2.0
|
2
|
+
|
3
|
+
## Released February 23, 2019
|
4
|
+
|
5
|
+
###
|
6
|
+
|
7
|
+
- Feat: Allow setting a different primary id attribute.
|
8
|
+
|
9
|
+
---
|
10
|
+
|
1
11
|
# Version 1.1.0
|
2
12
|
|
3
13
|
## Released February 23, 2019
|
@@ -8,6 +18,8 @@
|
|
8
18
|
|
9
19
|
- Feat: Allow Params to parse included relationships
|
10
20
|
|
21
|
+
---
|
22
|
+
|
11
23
|
# Version 1.0.1
|
12
24
|
|
13
25
|
## Released November 21, 2018
|
@@ -16,6 +28,8 @@
|
|
16
28
|
|
17
29
|
- Fix for nested complex attributes.
|
18
30
|
|
31
|
+
---
|
32
|
+
|
19
33
|
# Version 1.0.0
|
20
34
|
|
21
35
|
## Released November 15, 2018
|
data/lib/onsi/model.rb
CHANGED
@@ -48,8 +48,8 @@ module Onsi
|
|
48
48
|
#
|
49
49
|
# @param block [Block] The block. Called on an instance
|
50
50
|
# of {Onsi::Model::ModelRenderer}
|
51
|
-
def api_render(version, &block)
|
52
|
-
api_renderer(version).instance_exec(&block)
|
51
|
+
def api_render(version, id: :id, &block)
|
52
|
+
api_renderer(version, id).instance_exec(&block)
|
53
53
|
end
|
54
54
|
|
55
55
|
##
|
@@ -63,12 +63,12 @@ module Onsi
|
|
63
63
|
#
|
64
64
|
# @raise [Onsi::Errors::UnknownVersionError] If the version isn't defined
|
65
65
|
# and the for_render param is true.
|
66
|
-
def api_renderer(version, for_render: false)
|
66
|
+
def api_renderer(version, id, for_render: false)
|
67
67
|
@api_renderer ||= {}
|
68
68
|
if for_render
|
69
69
|
raise Errors::UnknownVersionError.new(self, version) if @api_renderer[version].nil?
|
70
70
|
else
|
71
|
-
@api_renderer[version] ||= ModelRenderer.new
|
71
|
+
@api_renderer[version] ||= ModelRenderer.new(id)
|
72
72
|
end
|
73
73
|
@api_renderer[version]
|
74
74
|
end
|
@@ -91,11 +91,16 @@ module Onsi
|
|
91
91
|
# The default date-time format for a rendered Date and Time. (ISO-8601)
|
92
92
|
DATETIME_FORMAT = '%Y-%m-%dT%H:%M:%SZ'.freeze
|
93
93
|
|
94
|
+
##
|
95
|
+
# The name of the id attribute on the model
|
96
|
+
attr_reader :id_attr
|
97
|
+
|
94
98
|
##
|
95
99
|
# Create a new ModelRenderer
|
96
100
|
#
|
97
101
|
# @private
|
98
|
-
def initialize
|
102
|
+
def initialize(id_attr)
|
103
|
+
@id_attr = id_attr
|
99
104
|
@attributes = {}
|
100
105
|
@relationships = {}
|
101
106
|
@metadata = {}
|
data/lib/onsi/resource.rb
CHANGED
@@ -154,7 +154,7 @@ module Onsi
|
|
154
154
|
def as_json(_opts = {})
|
155
155
|
{}.tap do |root|
|
156
156
|
root[TYPE_KEY] = type
|
157
|
-
root[ID_KEY] =
|
157
|
+
root[ID_KEY] = object_id
|
158
158
|
root[ATTRIBUTES_KEY] = generate_attributes
|
159
159
|
append_relationships(root)
|
160
160
|
append_meta(root)
|
@@ -189,8 +189,13 @@ module Onsi
|
|
189
189
|
end
|
190
190
|
end
|
191
191
|
|
192
|
+
def object_id
|
193
|
+
attr = object.class.api_renderer(version, nil, for_render: true).id_attr
|
194
|
+
object.send(attr).to_s
|
195
|
+
end
|
196
|
+
|
192
197
|
def type
|
193
|
-
object.class.api_renderer(version, for_render: true).type || object.class.name.underscore
|
198
|
+
object.class.api_renderer(version, nil, for_render: true).type || object.class.name.underscore
|
194
199
|
end
|
195
200
|
|
196
201
|
def append_relationships(root)
|
@@ -216,15 +221,15 @@ module Onsi
|
|
216
221
|
end
|
217
222
|
|
218
223
|
def generate_attributes
|
219
|
-
object.class.api_renderer(version, for_render: true).render_attributes(object)
|
224
|
+
object.class.api_renderer(version, nil, for_render: true).render_attributes(object)
|
220
225
|
end
|
221
226
|
|
222
227
|
def generate_relationships
|
223
|
-
object.class.api_renderer(version, for_render: true).render_relationships(object)
|
228
|
+
object.class.api_renderer(version, nil, for_render: true).render_relationships(object)
|
224
229
|
end
|
225
230
|
|
226
231
|
def generate_metadata
|
227
|
-
object.class.api_renderer(version, for_render: true).render_metadata(object)
|
232
|
+
object.class.api_renderer(version, nil, for_render: true).render_metadata(object)
|
228
233
|
end
|
229
234
|
|
230
235
|
def generate_includes
|
data/lib/onsi/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onsi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maddie Schipper
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-02-
|
11
|
+
date: 2019-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|