active_model_serializers 0.8.3 → 0.10.13

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 (98) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +702 -6
  3. data/{MIT-LICENSE.txt → MIT-LICENSE} +3 -2
  4. data/README.md +194 -545
  5. data/lib/action_controller/serialization.rb +53 -38
  6. data/lib/active_model/serializable_resource.rb +13 -0
  7. data/lib/active_model/serializer/adapter/attributes.rb +17 -0
  8. data/lib/active_model/serializer/adapter/base.rb +20 -0
  9. data/lib/active_model/serializer/adapter/json.rb +17 -0
  10. data/lib/active_model/serializer/adapter/json_api.rb +17 -0
  11. data/lib/active_model/serializer/adapter/null.rb +17 -0
  12. data/lib/active_model/serializer/adapter.rb +26 -0
  13. data/lib/active_model/serializer/array_serializer.rb +14 -0
  14. data/lib/active_model/serializer/association.rb +73 -0
  15. data/lib/active_model/serializer/attribute.rb +27 -0
  16. data/lib/active_model/serializer/belongs_to_reflection.rb +13 -0
  17. data/lib/active_model/serializer/collection_serializer.rb +99 -0
  18. data/lib/active_model/serializer/concerns/caching.rb +305 -0
  19. data/lib/active_model/serializer/error_serializer.rb +16 -0
  20. data/lib/active_model/serializer/errors_serializer.rb +34 -0
  21. data/lib/active_model/serializer/field.rb +92 -0
  22. data/lib/active_model/serializer/fieldset.rb +33 -0
  23. data/lib/active_model/serializer/has_many_reflection.rb +12 -0
  24. data/lib/active_model/serializer/has_one_reflection.rb +9 -0
  25. data/lib/active_model/serializer/lazy_association.rb +99 -0
  26. data/lib/active_model/serializer/link.rb +23 -0
  27. data/lib/active_model/serializer/lint.rb +152 -0
  28. data/lib/active_model/serializer/null.rb +19 -0
  29. data/lib/active_model/serializer/reflection.rb +212 -0
  30. data/lib/active_model/serializer/version.rb +7 -0
  31. data/lib/active_model/serializer.rb +354 -442
  32. data/lib/active_model_serializers/adapter/attributes.rb +36 -0
  33. data/lib/active_model_serializers/adapter/base.rb +85 -0
  34. data/lib/active_model_serializers/adapter/json.rb +23 -0
  35. data/lib/active_model_serializers/adapter/json_api/deserialization.rb +215 -0
  36. data/lib/active_model_serializers/adapter/json_api/error.rb +98 -0
  37. data/lib/active_model_serializers/adapter/json_api/jsonapi.rb +51 -0
  38. data/lib/active_model_serializers/adapter/json_api/link.rb +85 -0
  39. data/lib/active_model_serializers/adapter/json_api/meta.rb +39 -0
  40. data/lib/active_model_serializers/adapter/json_api/pagination_links.rb +94 -0
  41. data/lib/active_model_serializers/adapter/json_api/relationship.rb +106 -0
  42. data/lib/active_model_serializers/adapter/json_api/resource_identifier.rb +68 -0
  43. data/lib/active_model_serializers/adapter/json_api.rb +535 -0
  44. data/lib/active_model_serializers/adapter/null.rb +11 -0
  45. data/lib/active_model_serializers/adapter.rb +100 -0
  46. data/lib/active_model_serializers/callbacks.rb +57 -0
  47. data/lib/active_model_serializers/deprecate.rb +56 -0
  48. data/lib/active_model_serializers/deserialization.rb +17 -0
  49. data/lib/active_model_serializers/json_pointer.rb +16 -0
  50. data/lib/active_model_serializers/logging.rb +124 -0
  51. data/lib/active_model_serializers/lookup_chain.rb +82 -0
  52. data/lib/active_model_serializers/model/caching.rb +26 -0
  53. data/lib/active_model_serializers/model.rb +132 -0
  54. data/lib/active_model_serializers/railtie.rb +52 -0
  55. data/lib/active_model_serializers/register_jsonapi_renderer.rb +80 -0
  56. data/lib/active_model_serializers/serializable_resource.rb +84 -0
  57. data/lib/active_model_serializers/serialization_context.rb +41 -0
  58. data/lib/active_model_serializers/test/schema.rb +140 -0
  59. data/lib/active_model_serializers/test/serializer.rb +127 -0
  60. data/lib/active_model_serializers/test.rb +9 -0
  61. data/lib/active_model_serializers.rb +49 -81
  62. data/lib/generators/rails/USAGE +6 -0
  63. data/lib/generators/rails/resource_override.rb +12 -0
  64. data/lib/generators/rails/serializer_generator.rb +38 -0
  65. data/lib/generators/rails/templates/serializer.rb.erb +8 -0
  66. data/lib/grape/active_model_serializers.rb +18 -0
  67. data/lib/grape/formatters/active_model_serializers.rb +34 -0
  68. data/lib/grape/helpers/active_model_serializers.rb +19 -0
  69. data/lib/tasks/rubocop.rake +55 -0
  70. metadata +265 -51
  71. data/.gitignore +0 -18
  72. data/.travis.yml +0 -28
  73. data/DESIGN.textile +0 -586
  74. data/Gemfile +0 -4
  75. data/Gemfile.edge +0 -9
  76. data/Rakefile +0 -18
  77. data/active_model_serializers.gemspec +0 -24
  78. data/bench/perf.rb +0 -43
  79. data/cruft.md +0 -19
  80. data/lib/active_model/array_serializer.rb +0 -104
  81. data/lib/active_model/serializer/associations.rb +0 -233
  82. data/lib/active_model/serializers/version.rb +0 -5
  83. data/lib/active_record/serializer_override.rb +0 -16
  84. data/lib/generators/resource_override.rb +0 -13
  85. data/lib/generators/serializer/USAGE +0 -9
  86. data/lib/generators/serializer/serializer_generator.rb +0 -42
  87. data/lib/generators/serializer/templates/serializer.rb +0 -19
  88. data/test/array_serializer_test.rb +0 -75
  89. data/test/association_test.rb +0 -592
  90. data/test/caching_test.rb +0 -96
  91. data/test/generators_test.rb +0 -85
  92. data/test/no_serialization_scope_test.rb +0 -34
  93. data/test/serialization_scope_name_test.rb +0 -67
  94. data/test/serialization_test.rb +0 -392
  95. data/test/serializer_support_test.rb +0 -51
  96. data/test/serializer_test.rb +0 -1465
  97. data/test/test_fakes.rb +0 -217
  98. data/test/test_helper.rb +0 -32
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_model_serializers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.10.13
5
5
  platform: ruby
6
6
  authors:
7
- - José Valim
8
- - Yehuda Katz
9
- autorequire:
7
+ - Steve Klabnik
8
+ autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-12-10 00:00:00.000000000 Z
11
+ date: 2022-01-13 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activemodel
@@ -17,30 +16,170 @@ dependencies:
17
16
  requirements:
18
17
  - - ">="
19
18
  - !ruby/object:Gem::Version
20
- version: '3.0'
19
+ version: '4.1'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '7.1'
21
23
  type: :runtime
22
24
  prerelease: false
23
25
  version_requirements: !ruby/object:Gem::Requirement
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
27
- version: '3.0'
29
+ version: '4.1'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '7.1'
28
33
  - !ruby/object:Gem::Dependency
29
- name: rails
34
+ name: actionpack
30
35
  requirement: !ruby/object:Gem::Requirement
31
36
  requirements:
32
37
  - - ">="
33
38
  - !ruby/object:Gem::Version
34
- version: '3.0'
39
+ version: '4.1'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '7.1'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '4.1'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '7.1'
53
+ - !ruby/object:Gem::Dependency
54
+ name: railties
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '4.1'
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '7.1'
35
63
  type: :development
36
64
  prerelease: false
37
65
  version_requirements: !ruby/object:Gem::Requirement
38
66
  requirements:
39
67
  - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '4.1'
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '7.1'
73
+ - !ruby/object:Gem::Dependency
74
+ name: minitest
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '5.0'
80
+ - - "<"
81
+ - !ruby/object:Gem::Version
82
+ version: '5.11'
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '5.0'
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '5.11'
93
+ - !ruby/object:Gem::Dependency
94
+ name: jsonapi-renderer
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: 0.1.1.beta1
100
+ - - "<"
101
+ - !ruby/object:Gem::Version
102
+ version: '0.3'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: 0.1.1.beta1
110
+ - - "<"
111
+ - !ruby/object:Gem::Version
112
+ version: '0.3'
113
+ - !ruby/object:Gem::Dependency
114
+ name: case_transform
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0.2'
120
+ type: :runtime
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '0.2'
127
+ - !ruby/object:Gem::Dependency
128
+ name: activerecord
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '4.1'
134
+ - - "<"
135
+ - !ruby/object:Gem::Version
136
+ version: '7.1'
137
+ type: :development
138
+ prerelease: false
139
+ version_requirements: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '4.1'
144
+ - - "<"
145
+ - !ruby/object:Gem::Version
146
+ version: '7.1'
147
+ - !ruby/object:Gem::Dependency
148
+ name: kaminari
149
+ requirement: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: 0.16.3
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: 0.16.3
161
+ - !ruby/object:Gem::Dependency
162
+ name: will_paginate
163
+ requirement: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
40
166
  - !ruby/object:Gem::Version
41
167
  version: '3.0'
168
+ - - ">="
169
+ - !ruby/object:Gem::Version
170
+ version: 3.0.7
171
+ type: :development
172
+ prerelease: false
173
+ version_requirements: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - "~>"
176
+ - !ruby/object:Gem::Version
177
+ version: '3.0'
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: 3.0.7
42
181
  - !ruby/object:Gem::Dependency
43
- name: pry
182
+ name: bundler
44
183
  requirement: !ruby/object:Gem::Requirement
45
184
  requirements:
46
185
  - - ">="
@@ -54,7 +193,35 @@ dependencies:
54
193
  - !ruby/object:Gem::Version
55
194
  version: '0'
56
195
  - !ruby/object:Gem::Dependency
57
- name: minitest
196
+ name: timecop
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '0.7'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '0.7'
209
+ - !ruby/object:Gem::Dependency
210
+ name: grape
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0.13'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0.13'
223
+ - !ruby/object:Gem::Dependency
224
+ name: json_schema
58
225
  requirement: !ruby/object:Gem::Requirement
59
226
  requirements:
60
227
  - - ">="
@@ -67,52 +234,101 @@ dependencies:
67
234
  - - ">="
68
235
  - !ruby/object:Gem::Version
69
236
  version: '0'
70
- description: Making it easy to serialize models for client-side use
237
+ - !ruby/object:Gem::Dependency
238
+ name: rake
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '10.0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '10.0'
251
+ description: ActiveModel::Serializers allows you to generate your JSON in an object-oriented
252
+ and convention-driven manner.
71
253
  email:
72
- - jose.valim@gmail.com
73
- - wycats@gmail.com
254
+ - steve@steveklabnik.com
74
255
  executables: []
75
256
  extensions: []
76
257
  extra_rdoc_files: []
77
258
  files:
78
- - ".gitignore"
79
- - ".travis.yml"
80
259
  - CHANGELOG.md
81
- - DESIGN.textile
82
- - Gemfile
83
- - Gemfile.edge
84
- - MIT-LICENSE.txt
260
+ - MIT-LICENSE
85
261
  - README.md
86
- - Rakefile
87
- - active_model_serializers.gemspec
88
- - bench/perf.rb
89
- - cruft.md
90
262
  - lib/action_controller/serialization.rb
91
- - lib/active_model/array_serializer.rb
263
+ - lib/active_model/serializable_resource.rb
92
264
  - lib/active_model/serializer.rb
93
- - lib/active_model/serializer/associations.rb
94
- - lib/active_model/serializers/version.rb
265
+ - lib/active_model/serializer/adapter.rb
266
+ - lib/active_model/serializer/adapter/attributes.rb
267
+ - lib/active_model/serializer/adapter/base.rb
268
+ - lib/active_model/serializer/adapter/json.rb
269
+ - lib/active_model/serializer/adapter/json_api.rb
270
+ - lib/active_model/serializer/adapter/null.rb
271
+ - lib/active_model/serializer/array_serializer.rb
272
+ - lib/active_model/serializer/association.rb
273
+ - lib/active_model/serializer/attribute.rb
274
+ - lib/active_model/serializer/belongs_to_reflection.rb
275
+ - lib/active_model/serializer/collection_serializer.rb
276
+ - lib/active_model/serializer/concerns/caching.rb
277
+ - lib/active_model/serializer/error_serializer.rb
278
+ - lib/active_model/serializer/errors_serializer.rb
279
+ - lib/active_model/serializer/field.rb
280
+ - lib/active_model/serializer/fieldset.rb
281
+ - lib/active_model/serializer/has_many_reflection.rb
282
+ - lib/active_model/serializer/has_one_reflection.rb
283
+ - lib/active_model/serializer/lazy_association.rb
284
+ - lib/active_model/serializer/link.rb
285
+ - lib/active_model/serializer/lint.rb
286
+ - lib/active_model/serializer/null.rb
287
+ - lib/active_model/serializer/reflection.rb
288
+ - lib/active_model/serializer/version.rb
95
289
  - lib/active_model_serializers.rb
96
- - lib/active_record/serializer_override.rb
97
- - lib/generators/resource_override.rb
98
- - lib/generators/serializer/USAGE
99
- - lib/generators/serializer/serializer_generator.rb
100
- - lib/generators/serializer/templates/serializer.rb
101
- - test/array_serializer_test.rb
102
- - test/association_test.rb
103
- - test/caching_test.rb
104
- - test/generators_test.rb
105
- - test/no_serialization_scope_test.rb
106
- - test/serialization_scope_name_test.rb
107
- - test/serialization_test.rb
108
- - test/serializer_support_test.rb
109
- - test/serializer_test.rb
110
- - test/test_fakes.rb
111
- - test/test_helper.rb
290
+ - lib/active_model_serializers/adapter.rb
291
+ - lib/active_model_serializers/adapter/attributes.rb
292
+ - lib/active_model_serializers/adapter/base.rb
293
+ - lib/active_model_serializers/adapter/json.rb
294
+ - lib/active_model_serializers/adapter/json_api.rb
295
+ - lib/active_model_serializers/adapter/json_api/deserialization.rb
296
+ - lib/active_model_serializers/adapter/json_api/error.rb
297
+ - lib/active_model_serializers/adapter/json_api/jsonapi.rb
298
+ - lib/active_model_serializers/adapter/json_api/link.rb
299
+ - lib/active_model_serializers/adapter/json_api/meta.rb
300
+ - lib/active_model_serializers/adapter/json_api/pagination_links.rb
301
+ - lib/active_model_serializers/adapter/json_api/relationship.rb
302
+ - lib/active_model_serializers/adapter/json_api/resource_identifier.rb
303
+ - lib/active_model_serializers/adapter/null.rb
304
+ - lib/active_model_serializers/callbacks.rb
305
+ - lib/active_model_serializers/deprecate.rb
306
+ - lib/active_model_serializers/deserialization.rb
307
+ - lib/active_model_serializers/json_pointer.rb
308
+ - lib/active_model_serializers/logging.rb
309
+ - lib/active_model_serializers/lookup_chain.rb
310
+ - lib/active_model_serializers/model.rb
311
+ - lib/active_model_serializers/model/caching.rb
312
+ - lib/active_model_serializers/railtie.rb
313
+ - lib/active_model_serializers/register_jsonapi_renderer.rb
314
+ - lib/active_model_serializers/serializable_resource.rb
315
+ - lib/active_model_serializers/serialization_context.rb
316
+ - lib/active_model_serializers/test.rb
317
+ - lib/active_model_serializers/test/schema.rb
318
+ - lib/active_model_serializers/test/serializer.rb
319
+ - lib/generators/rails/USAGE
320
+ - lib/generators/rails/resource_override.rb
321
+ - lib/generators/rails/serializer_generator.rb
322
+ - lib/generators/rails/templates/serializer.rb.erb
323
+ - lib/grape/active_model_serializers.rb
324
+ - lib/grape/formatters/active_model_serializers.rb
325
+ - lib/grape/helpers/active_model_serializers.rb
326
+ - lib/tasks/rubocop.rake
112
327
  homepage: https://github.com/rails-api/active_model_serializers
113
- licenses: []
328
+ licenses:
329
+ - MIT
114
330
  metadata: {}
115
- post_install_message:
331
+ post_install_message:
116
332
  rdoc_options: []
117
333
  require_paths:
118
334
  - lib
@@ -120,17 +336,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
336
  requirements:
121
337
  - - ">="
122
338
  - !ruby/object:Gem::Version
123
- version: '0'
339
+ version: '2.1'
124
340
  required_rubygems_version: !ruby/object:Gem::Requirement
125
341
  requirements:
126
342
  - - ">="
127
343
  - !ruby/object:Gem::Version
128
344
  version: '0'
129
345
  requirements: []
130
- rubyforge_project:
131
- rubygems_version: 2.2.2
132
- signing_key:
346
+ rubygems_version: 3.1.4
347
+ signing_key:
133
348
  specification_version: 4
134
- summary: Bringing consistency and object orientation to model serialization. Works
135
- great for client-side MVC frameworks!
349
+ summary: Conventions-based JSON generation for Rails.
136
350
  test_files: []
data/.gitignore DELETED
@@ -1,18 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- *.swp
data/.travis.yml DELETED
@@ -1,28 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 1.8.7
4
- - 1.9.2
5
- - 1.9.3
6
- - 2.0.0
7
- - ree
8
- - jruby-18mode
9
- - jruby-19mode
10
- - rbx-2
11
- gemfile:
12
- - Gemfile
13
- - Gemfile.edge
14
- matrix:
15
- allow_failures:
16
- - gemfile: Gemfile.edge
17
- exclude:
18
- # Edge Rails is only compatible with 1.9.3
19
- - gemfile: Gemfile.edge
20
- rvm: 1.8.7
21
- - gemfile: Gemfile.edge
22
- rvm: 1.9.2
23
- - gemfile: Gemfile.edge
24
- rvm: ree
25
- - gemfile: Gemfile.edge
26
- rvm: jruby-18mode
27
- - gemfile: Gemfile.edge
28
- rvm: rbx-18mode