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.
Files changed (103) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ci.yml +23 -0
  3. data/CHANGES.md +33 -0
  4. data/Gemfile +4 -12
  5. data/LICENSE +1 -1
  6. data/README.md +12 -13
  7. data/Rakefile +1 -6
  8. data/TODO +1 -3
  9. data/TODO-4.0.md +72 -0
  10. data/lib/representable/binding.rb +32 -12
  11. data/lib/representable/cached.rb +1 -1
  12. data/lib/representable/coercion.rb +8 -6
  13. data/lib/representable/config.rb +13 -3
  14. data/lib/representable/debug.rb +23 -15
  15. data/lib/representable/declarative.rb +12 -7
  16. data/lib/representable/decorator.rb +1 -1
  17. data/lib/representable/definition.rb +7 -3
  18. data/lib/representable/deserializer.rb +5 -4
  19. data/lib/representable/for_collection.rb +1 -1
  20. data/lib/representable/hash/allow_symbols.rb +9 -11
  21. data/lib/representable/hash/binding.rb +1 -0
  22. data/lib/representable/hash/collection.rb +4 -2
  23. data/lib/representable/hash.rb +9 -2
  24. data/lib/representable/hash_methods.rb +3 -2
  25. data/lib/representable/insert.rb +1 -1
  26. data/lib/representable/json/collection.rb +3 -0
  27. data/lib/representable/json.rb +8 -7
  28. data/lib/representable/object/binding.rb +5 -1
  29. data/lib/representable/object.rb +1 -1
  30. data/lib/representable/option.rb +19 -0
  31. data/lib/representable/pipeline.rb +3 -2
  32. data/lib/representable/pipeline_factories.rb +4 -2
  33. data/lib/representable/populator.rb +1 -1
  34. data/lib/representable/represent.rb +1 -0
  35. data/lib/representable/serializer.rb +3 -2
  36. data/lib/representable/version.rb +1 -1
  37. data/lib/representable/xml/binding.rb +19 -13
  38. data/lib/representable/xml/namespace.rb +122 -0
  39. data/lib/representable/xml.rb +12 -10
  40. data/lib/representable/yaml/binding.rb +1 -0
  41. data/lib/representable/yaml.rb +6 -2
  42. data/lib/representable.rb +19 -25
  43. data/representable.gemspec +8 -9
  44. data/test/as_test.rb +7 -7
  45. data/test/binding_test.rb +14 -14
  46. data/test/cached_test.rb +59 -49
  47. data/test/class_test.rb +9 -9
  48. data/test/coercion_test.rb +33 -22
  49. data/test/config/inherit_test.rb +14 -14
  50. data/test/config_test.rb +20 -20
  51. data/test/decorator_scope_test.rb +4 -4
  52. data/test/decorator_test.rb +33 -20
  53. data/test/default_test.rb +8 -8
  54. data/test/defaults_options_test.rb +3 -3
  55. data/test/definition_test.rb +38 -40
  56. data/test/{example.rb → examples/example.rb} +0 -1
  57. data/test/examples/object.rb +1 -5
  58. data/test/exec_context_test.rb +8 -8
  59. data/test/features_test.rb +6 -6
  60. data/test/filter_test.rb +8 -8
  61. data/test/for_collection_test.rb +10 -10
  62. data/test/generic_test.rb +13 -13
  63. data/test/getter_setter_test.rb +5 -5
  64. data/test/hash_bindings_test.rb +1 -1
  65. data/test/hash_test.rb +45 -23
  66. data/test/heritage_test.rb +16 -13
  67. data/test/if_test.rb +9 -9
  68. data/test/include_exclude_test.rb +14 -14
  69. data/test/inherit_test.rb +18 -18
  70. data/test/inline_test.rb +24 -24
  71. data/test/instance_test.rb +31 -31
  72. data/test/is_representable_test.rb +10 -10
  73. data/test/json_test.rb +29 -7
  74. data/test/lonely_test.rb +31 -31
  75. data/test/nested_test.rb +13 -13
  76. data/test/object_test.rb +9 -9
  77. data/test/option_test.rb +36 -0
  78. data/test/parse_pipeline_test.rb +3 -5
  79. data/test/pipeline_test.rb +50 -50
  80. data/test/populator_test.rb +18 -18
  81. data/test/prepare_test.rb +4 -4
  82. data/test/private_options_test.rb +2 -2
  83. data/test/reader_writer_test.rb +2 -2
  84. data/test/render_nil_test.rb +2 -2
  85. data/test/represent_test.rb +14 -14
  86. data/test/representable_test.rb +34 -36
  87. data/test/schema_test.rb +8 -11
  88. data/test/serialize_deserialize_test.rb +2 -2
  89. data/test/skip_test.rb +14 -14
  90. data/test/stringify_hash_test.rb +3 -3
  91. data/test/test_helper.rb +26 -14
  92. data/test/uncategorized_test.rb +10 -10
  93. data/test/user_options_test.rb +4 -4
  94. data/test/wrap_test.rb +19 -19
  95. data/test/xml_bindings_test.rb +0 -4
  96. data/test/xml_namespace_test.rb +186 -0
  97. data/test/xml_test.rb +103 -43
  98. data/test/yaml_test.rb +51 -26
  99. metadata +42 -35
  100. data/.travis.yml +0 -7
  101. data/lib/representable/TODO.getting_serious +0 -11
  102. data/lib/representable/autoload.rb +0 -10
  103. 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.0.0
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: 2015-12-19 00:00:00.000000000 Z
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.15
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.15
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.5
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.5
40
+ version: 0.1.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: trailblazer-option
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
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: '0'
57
+ version: 0.1.1
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: 0.2.0
55
61
  - !ruby/object:Gem::Dependency
56
- name: test_xml
62
+ name: rake
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
- - - '='
65
+ - - ">="
60
66
  - !ruby/object:Gem::Version
61
- version: 0.1.6
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.1.6
74
+ version: '0'
69
75
  - !ruby/object:Gem::Dependency
70
- name: minitest
76
+ name: test_xml
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - ">="
74
80
  - !ruby/object:Gem::Version
75
- version: '0'
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: '0'
88
+ version: 0.1.6
83
89
  - !ruby/object:Gem::Dependency
84
- name: mongoid
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: json
118
+ name: dry-types
113
119
  requirement: !ruby/object:Gem::Requirement
114
120
  requirements:
115
121
  - - ">="
116
122
  - !ruby/object:Gem::Version
117
- version: 1.7.7
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: 1.7.7
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/apotonick/representable/
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: 1.9.3
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
- rubyforge_project:
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,7 +0,0 @@
1
- rvm:
2
- - 1.9.3
3
- - 2.0.0
4
- - 2.1.1
5
- - 2.2.3
6
- before_install:
7
- - gem install bundler
@@ -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
@@ -1,10 +0,0 @@
1
- module Representable
2
- autoload :Hash, 'representable/hash'
3
-
4
- module Hash
5
- autoload :AllowSymbols, 'representable/hash/allow_symbols'
6
- autoload :Collection, 'representable/hash/collection'
7
- end
8
-
9
- autoload :Decorator, 'representable/decorator'
10
- end
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