active_model_serializers 0.8.3 → 0.10.13

Sign up to get free protection for your applications and to get access to all the features.
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