representable 3.0.0 → 3.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 +5 -5
- data/.github/workflows/ci.yml +23 -0
- data/CHANGES.md +33 -0
- data/Gemfile +4 -12
- data/LICENSE +1 -1
- data/README.md +12 -13
- data/Rakefile +1 -6
- data/TODO +1 -3
- data/TODO-4.0.md +72 -0
- data/lib/representable/binding.rb +32 -12
- data/lib/representable/cached.rb +1 -1
- data/lib/representable/coercion.rb +8 -6
- data/lib/representable/config.rb +13 -3
- data/lib/representable/debug.rb +23 -15
- data/lib/representable/declarative.rb +12 -7
- data/lib/representable/decorator.rb +1 -1
- data/lib/representable/definition.rb +7 -3
- data/lib/representable/deserializer.rb +5 -4
- data/lib/representable/for_collection.rb +1 -1
- data/lib/representable/hash/allow_symbols.rb +9 -11
- data/lib/representable/hash/binding.rb +1 -0
- data/lib/representable/hash/collection.rb +4 -2
- data/lib/representable/hash.rb +9 -2
- data/lib/representable/hash_methods.rb +3 -2
- data/lib/representable/insert.rb +1 -1
- data/lib/representable/json/collection.rb +3 -0
- data/lib/representable/json.rb +8 -7
- data/lib/representable/object/binding.rb +5 -1
- data/lib/representable/object.rb +1 -1
- data/lib/representable/option.rb +19 -0
- data/lib/representable/pipeline.rb +3 -2
- data/lib/representable/pipeline_factories.rb +4 -2
- data/lib/representable/populator.rb +1 -1
- data/lib/representable/represent.rb +1 -0
- data/lib/representable/serializer.rb +3 -2
- data/lib/representable/version.rb +1 -1
- data/lib/representable/xml/binding.rb +19 -13
- data/lib/representable/xml/namespace.rb +122 -0
- data/lib/representable/xml.rb +12 -10
- data/lib/representable/yaml/binding.rb +1 -0
- data/lib/representable/yaml.rb +6 -2
- data/lib/representable.rb +19 -25
- data/representable.gemspec +8 -9
- data/test/as_test.rb +7 -7
- data/test/binding_test.rb +14 -14
- data/test/cached_test.rb +59 -49
- data/test/class_test.rb +9 -9
- data/test/coercion_test.rb +33 -22
- data/test/config/inherit_test.rb +14 -14
- data/test/config_test.rb +20 -20
- data/test/decorator_scope_test.rb +4 -4
- data/test/decorator_test.rb +33 -20
- data/test/default_test.rb +8 -8
- data/test/defaults_options_test.rb +3 -3
- data/test/definition_test.rb +38 -40
- data/test/{example.rb → examples/example.rb} +0 -1
- data/test/examples/object.rb +1 -5
- data/test/exec_context_test.rb +8 -8
- data/test/features_test.rb +6 -6
- data/test/filter_test.rb +8 -8
- data/test/for_collection_test.rb +10 -10
- data/test/generic_test.rb +13 -13
- data/test/getter_setter_test.rb +5 -5
- data/test/hash_bindings_test.rb +1 -1
- data/test/hash_test.rb +45 -23
- data/test/heritage_test.rb +16 -13
- data/test/if_test.rb +9 -9
- data/test/include_exclude_test.rb +14 -14
- data/test/inherit_test.rb +18 -18
- data/test/inline_test.rb +24 -24
- data/test/instance_test.rb +31 -31
- data/test/is_representable_test.rb +10 -10
- data/test/json_test.rb +29 -7
- data/test/lonely_test.rb +31 -31
- data/test/nested_test.rb +13 -13
- data/test/object_test.rb +9 -9
- data/test/option_test.rb +36 -0
- data/test/parse_pipeline_test.rb +3 -5
- data/test/pipeline_test.rb +50 -50
- data/test/populator_test.rb +18 -18
- data/test/prepare_test.rb +4 -4
- data/test/private_options_test.rb +2 -2
- data/test/reader_writer_test.rb +2 -2
- data/test/render_nil_test.rb +2 -2
- data/test/represent_test.rb +14 -14
- data/test/representable_test.rb +34 -36
- data/test/schema_test.rb +8 -11
- data/test/serialize_deserialize_test.rb +2 -2
- data/test/skip_test.rb +14 -14
- data/test/stringify_hash_test.rb +3 -3
- data/test/test_helper.rb +26 -14
- data/test/uncategorized_test.rb +10 -10
- data/test/user_options_test.rb +4 -4
- data/test/wrap_test.rb +19 -19
- data/test/xml_bindings_test.rb +0 -4
- data/test/xml_namespace_test.rb +186 -0
- data/test/xml_test.rb +103 -43
- data/test/yaml_test.rb +51 -26
- metadata +42 -35
- data/.travis.yml +0 -7
- data/lib/representable/TODO.getting_serious +0 -11
- data/lib/representable/autoload.rb +0 -10
- data/test/mongoid_test.rb +0 -31
metadata
CHANGED
@@ -1,87 +1,93 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: representable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Sutterer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: uber
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "<"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.0
|
19
|
+
version: 0.2.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "<"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.0
|
26
|
+
version: 0.2.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: declarative
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0
|
33
|
+
version: 0.1.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "<"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.0
|
40
|
+
version: 0.1.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: trailblazer-option
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
48
|
-
|
47
|
+
version: 0.1.1
|
48
|
+
- - "<"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 0.2.0
|
51
|
+
type: :runtime
|
49
52
|
prerelease: false
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
51
54
|
requirements:
|
52
55
|
- - ">="
|
53
56
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
57
|
+
version: 0.1.1
|
58
|
+
- - "<"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 0.2.0
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
62
|
+
name: rake
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
|
-
- -
|
65
|
+
- - ">="
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0
|
67
|
+
version: '0'
|
62
68
|
type: :development
|
63
69
|
prerelease: false
|
64
70
|
version_requirements: !ruby/object:Gem::Requirement
|
65
71
|
requirements:
|
66
|
-
- -
|
72
|
+
- - ">="
|
67
73
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0
|
74
|
+
version: '0'
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
76
|
+
name: test_xml
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
72
78
|
requirements:
|
73
79
|
- - ">="
|
74
80
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
81
|
+
version: 0.1.6
|
76
82
|
type: :development
|
77
83
|
prerelease: false
|
78
84
|
version_requirements: !ruby/object:Gem::Requirement
|
79
85
|
requirements:
|
80
86
|
- - ">="
|
81
87
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
88
|
+
version: 0.1.6
|
83
89
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
90
|
+
name: minitest
|
85
91
|
requirement: !ruby/object:Gem::Requirement
|
86
92
|
requirements:
|
87
93
|
- - ">="
|
@@ -109,19 +115,19 @@ dependencies:
|
|
109
115
|
- !ruby/object:Gem::Version
|
110
116
|
version: '0'
|
111
117
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
118
|
+
name: dry-types
|
113
119
|
requirement: !ruby/object:Gem::Requirement
|
114
120
|
requirements:
|
115
121
|
- - ">="
|
116
122
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
123
|
+
version: '0'
|
118
124
|
type: :development
|
119
125
|
prerelease: false
|
120
126
|
version_requirements: !ruby/object:Gem::Requirement
|
121
127
|
requirements:
|
122
128
|
- - ">="
|
123
129
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
130
|
+
version: '0'
|
125
131
|
- !ruby/object:Gem::Dependency
|
126
132
|
name: ruby-prof
|
127
133
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,17 +150,16 @@ executables: []
|
|
144
150
|
extensions: []
|
145
151
|
extra_rdoc_files: []
|
146
152
|
files:
|
153
|
+
- ".github/workflows/ci.yml"
|
147
154
|
- ".gitignore"
|
148
|
-
- ".travis.yml"
|
149
155
|
- CHANGES.md
|
150
156
|
- Gemfile
|
151
157
|
- LICENSE
|
152
158
|
- README.md
|
153
159
|
- Rakefile
|
154
160
|
- TODO
|
161
|
+
- TODO-4.0.md
|
155
162
|
- lib/representable.rb
|
156
|
-
- lib/representable/TODO.getting_serious
|
157
|
-
- lib/representable/autoload.rb
|
158
163
|
- lib/representable/binding.rb
|
159
164
|
- lib/representable/cached.rb
|
160
165
|
- lib/representable/coercion.rb
|
@@ -176,6 +181,7 @@ files:
|
|
176
181
|
- lib/representable/json/hash.rb
|
177
182
|
- lib/representable/object.rb
|
178
183
|
- lib/representable/object/binding.rb
|
184
|
+
- lib/representable/option.rb
|
179
185
|
- lib/representable/pipeline.rb
|
180
186
|
- lib/representable/pipeline_factories.rb
|
181
187
|
- lib/representable/populator.rb
|
@@ -186,6 +192,7 @@ files:
|
|
186
192
|
- lib/representable/xml/binding.rb
|
187
193
|
- lib/representable/xml/collection.rb
|
188
194
|
- lib/representable/xml/hash.rb
|
195
|
+
- lib/representable/xml/namespace.rb
|
189
196
|
- lib/representable/yaml.rb
|
190
197
|
- lib/representable/yaml/binding.rb
|
191
198
|
- representable.gemspec
|
@@ -202,7 +209,7 @@ files:
|
|
202
209
|
- test/default_test.rb
|
203
210
|
- test/defaults_options_test.rb
|
204
211
|
- test/definition_test.rb
|
205
|
-
- test/example.rb
|
212
|
+
- test/examples/example.rb
|
206
213
|
- test/examples/object.rb
|
207
214
|
- test/exec_context_test.rb
|
208
215
|
- test/features_test.rb
|
@@ -221,9 +228,9 @@ files:
|
|
221
228
|
- test/is_representable_test.rb
|
222
229
|
- test/json_test.rb
|
223
230
|
- test/lonely_test.rb
|
224
|
-
- test/mongoid_test.rb
|
225
231
|
- test/nested_test.rb
|
226
232
|
- test/object_test.rb
|
233
|
+
- test/option_test.rb
|
227
234
|
- test/parse_pipeline_test.rb
|
228
235
|
- test/pipeline_test.rb
|
229
236
|
- test/populator_test.rb
|
@@ -244,9 +251,10 @@ files:
|
|
244
251
|
- test/user_options_test.rb
|
245
252
|
- test/wrap_test.rb
|
246
253
|
- test/xml_bindings_test.rb
|
254
|
+
- test/xml_namespace_test.rb
|
247
255
|
- test/xml_test.rb
|
248
256
|
- test/yaml_test.rb
|
249
|
-
homepage: https://github.com/
|
257
|
+
homepage: https://github.com/trailblazer/representable/
|
250
258
|
licenses:
|
251
259
|
- MIT
|
252
260
|
metadata: {}
|
@@ -258,15 +266,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
258
266
|
requirements:
|
259
267
|
- - ">="
|
260
268
|
- !ruby/object:Gem::Version
|
261
|
-
version:
|
269
|
+
version: 2.4.0
|
262
270
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
263
271
|
requirements:
|
264
272
|
- - ">="
|
265
273
|
- !ruby/object:Gem::Version
|
266
274
|
version: '0'
|
267
275
|
requirements: []
|
268
|
-
|
269
|
-
rubygems_version: 2.4.8
|
276
|
+
rubygems_version: 3.0.3.1
|
270
277
|
signing_key:
|
271
278
|
specification_version: 4
|
272
279
|
summary: Renders and parses JSON/XML/YAML documents from and to Ruby objects. Includes
|
data/.travis.yml
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
* Cleanup the manifest part in Decorator.
|
2
|
-
|
3
|
-
* all property objects should be extended/wrapped so we don't need the switch.
|
4
|
-
|
5
|
-
# Deprecations
|
6
|
-
|
7
|
-
* deprecate instance: { nil } which is superseded by parse_strategy: :sync
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
from_hash, property :band, class: vergessen
|
data/test/mongoid_test.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
require 'mongoid'
|
3
|
-
require 'mongoid/document'
|
4
|
-
|
5
|
-
class MongoidTest < MiniTest::Spec
|
6
|
-
describe "Mongoid compatibility" do
|
7
|
-
it "allows #to_json" do
|
8
|
-
class Profile
|
9
|
-
include Mongoid::Document
|
10
|
-
field :name
|
11
|
-
end
|
12
|
-
|
13
|
-
class Dude
|
14
|
-
include Mongoid::Document
|
15
|
-
embeds_one :profile, :class_name => "MongoidTest::Profile"
|
16
|
-
end
|
17
|
-
|
18
|
-
module ProfileRepresenter
|
19
|
-
include Representable::JSON
|
20
|
-
|
21
|
-
property :name
|
22
|
-
end
|
23
|
-
|
24
|
-
dude = Dude.new
|
25
|
-
dude.profile = Profile.new
|
26
|
-
dude.profile.name = "Kofi"
|
27
|
-
|
28
|
-
assert_equal "{\"name\":\"Kofi\"}", dude.profile.extend(ProfileRepresenter).to_json
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|