active_model_serializers 0.10.2 → 0.10.3
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/.travis.yml +8 -1
- data/CHANGELOG.md +45 -3
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +4 -1
- data/README.md +5 -2
- data/active_model_serializers.gemspec +2 -2
- data/docs/ARCHITECTURE.md +6 -7
- data/docs/README.md +2 -0
- data/docs/general/caching.md +7 -1
- data/docs/general/configuration_options.md +64 -0
- data/docs/general/rendering.md +35 -1
- data/docs/general/serializers.md +35 -5
- data/docs/howto/add_pagination_links.md +2 -2
- data/docs/howto/add_relationship_links.md +137 -0
- data/docs/howto/add_root_key.md +4 -0
- data/docs/howto/grape_integration.md +42 -0
- data/docs/howto/outside_controller_use.md +9 -2
- data/docs/howto/passing_arbitrary_options.md +2 -2
- data/docs/howto/test.md +2 -0
- data/docs/howto/upgrade_from_0_8_to_0_10.md +265 -0
- data/docs/integrations/ember-and-json-api.md +41 -24
- data/lib/action_controller/serialization.rb +9 -0
- data/lib/active_model/serializer.rb +19 -22
- data/lib/active_model/serializer/association.rb +19 -4
- data/lib/active_model/serializer/collection_serializer.rb +8 -5
- data/lib/active_model/serializer/{associations.rb → concerns/associations.rb} +8 -5
- data/lib/active_model/serializer/{attributes.rb → concerns/attributes.rb} +0 -0
- data/lib/active_model/serializer/{caching.rb → concerns/caching.rb} +5 -1
- data/lib/active_model/serializer/{configuration.rb → concerns/configuration.rb} +24 -1
- data/lib/active_model/serializer/{links.rb → concerns/links.rb} +0 -0
- data/lib/active_model/serializer/{meta.rb → concerns/meta.rb} +0 -0
- data/lib/active_model/serializer/{type.rb → concerns/type.rb} +0 -0
- data/lib/active_model/serializer/reflection.rb +37 -21
- data/lib/active_model/serializer/version.rb +1 -1
- data/lib/active_model_serializers.rb +1 -0
- data/lib/active_model_serializers/adapter/attributes.rb +3 -1
- data/lib/active_model_serializers/adapter/json_api.rb +15 -22
- data/lib/active_model_serializers/adapter/json_api/relationship.rb +30 -19
- data/lib/active_model_serializers/adapter/json_api/resource_identifier.rb +23 -9
- data/lib/active_model_serializers/key_transform.rb +4 -0
- data/lib/active_model_serializers/lookup_chain.rb +80 -0
- data/lib/active_model_serializers/model.rb +1 -1
- data/lib/active_model_serializers/serializable_resource.rb +6 -5
- data/lib/generators/rails/serializer_generator.rb +1 -1
- data/test/action_controller/json_api/fields_test.rb +57 -0
- data/test/action_controller/json_api/transform_test.rb +3 -3
- data/test/action_controller/lookup_proc_test.rb +49 -0
- data/test/action_controller/namespace_lookup_test.rb +226 -0
- data/test/active_model_serializers/key_transform_test.rb +32 -0
- data/test/active_model_serializers/model_test.rb +11 -0
- data/test/adapter/attributes_test.rb +43 -0
- data/test/adapter/json/transform_test.rb +1 -1
- data/test/adapter/json_api/fields_test.rb +4 -3
- data/test/adapter/json_api/has_many_test.rb +21 -0
- data/test/adapter/json_api/include_data_if_sideloaded_test.rb +166 -0
- data/test/adapter/json_api/linked_test.rb +24 -6
- data/test/adapter/json_api/links_test.rb +1 -1
- data/test/adapter/json_api/pagination_links_test.rb +17 -2
- data/test/adapter/json_api/relationship_test.rb +309 -73
- data/test/adapter/json_api/resource_identifier_test.rb +20 -0
- data/test/adapter/json_api/transform_test.rb +4 -3
- data/test/benchmark/benchmarking_support.rb +1 -1
- data/test/benchmark/bm_active_record.rb +81 -0
- data/test/benchmark/bm_adapter.rb +38 -0
- data/test/benchmark/bm_caching.rb +1 -1
- data/test/benchmark/bm_lookup_chain.rb +83 -0
- data/test/cache_test.rb +42 -4
- data/test/collection_serializer_test.rb +1 -1
- data/test/fixtures/poro.rb +44 -41
- data/test/generators/serializer_generator_test.rb +22 -5
- data/test/serializers/association_macros_test.rb +3 -2
- data/test/serializers/associations_test.rb +97 -22
- data/test/serializers/attribute_test.rb +1 -1
- data/test/serializers/serializer_for_test.rb +3 -3
- data/test/serializers/serializer_for_with_namespace_test.rb +87 -0
- data/test/support/serialization_testing.rb +16 -0
- data/test/test_helper.rb +1 -0
- metadata +35 -14
- data/test/adapter/json_api/relationships_test.rb +0 -204
@@ -20,11 +20,10 @@ class SerializerGeneratorTest < Rails::Generators::TestCase
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def test_uses_application_serializer_if_one_exists
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
Object.send :remove_const, :ApplicationSerializer
|
23
|
+
stub_safe_constantize(expected: 'ApplicationSerializer') do
|
24
|
+
run_generator
|
25
|
+
assert_file 'app/serializers/account_serializer.rb', /class AccountSerializer < ApplicationSerializer/
|
26
|
+
end
|
28
27
|
end
|
29
28
|
|
30
29
|
def test_uses_given_parent
|
@@ -54,4 +53,22 @@ class SerializerGeneratorTest < Rails::Generators::TestCase
|
|
54
53
|
end
|
55
54
|
end
|
56
55
|
end
|
56
|
+
|
57
|
+
private
|
58
|
+
|
59
|
+
def stub_safe_constantize(expected:)
|
60
|
+
String.class_eval do
|
61
|
+
alias_method :old, :safe_constantize
|
62
|
+
end
|
63
|
+
String.send(:define_method, :safe_constantize) do
|
64
|
+
Class if self == expected
|
65
|
+
end
|
66
|
+
|
67
|
+
yield
|
68
|
+
ensure
|
69
|
+
String.class_eval do
|
70
|
+
alias_method :safe_constantize, :old
|
71
|
+
undef_method :old
|
72
|
+
end
|
73
|
+
end
|
57
74
|
end
|
@@ -3,7 +3,8 @@ require 'test_helper'
|
|
3
3
|
module ActiveModel
|
4
4
|
class Serializer
|
5
5
|
class AssociationMacrosTest < ActiveSupport::TestCase
|
6
|
-
AuthorSummarySerializer
|
6
|
+
class AuthorSummarySerializer < ActiveModel::Serializer; end
|
7
|
+
|
7
8
|
class AssociationsTestSerializer < Serializer
|
8
9
|
belongs_to :author, serializer: AuthorSummarySerializer
|
9
10
|
has_many :comments
|
@@ -11,7 +12,7 @@ module ActiveModel
|
|
11
12
|
end
|
12
13
|
|
13
14
|
def before_setup
|
14
|
-
@reflections = AssociationsTestSerializer._reflections
|
15
|
+
@reflections = AssociationsTestSerializer._reflections.values
|
15
16
|
end
|
16
17
|
|
17
18
|
def test_has_one_defines_reflection
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'test_helper'
|
2
|
-
|
3
2
|
module ActiveModel
|
4
3
|
class Serializer
|
5
4
|
class AssociationsTest < ActiveSupport::TestCase
|
@@ -32,13 +31,13 @@ module ActiveModel
|
|
32
31
|
|
33
32
|
case key
|
34
33
|
when :posts
|
35
|
-
assert_equal
|
34
|
+
assert_equal true, options.fetch(:include_data)
|
36
35
|
assert_kind_of(ActiveModelSerializers.config.collection_serializer, serializer)
|
37
36
|
when :bio
|
38
|
-
assert_equal
|
37
|
+
assert_equal true, options.fetch(:include_data)
|
39
38
|
assert_nil serializer
|
40
39
|
when :roles
|
41
|
-
assert_equal
|
40
|
+
assert_equal true, options.fetch(:include_data)
|
42
41
|
assert_kind_of(ActiveModelSerializers.config.collection_serializer, serializer)
|
43
42
|
else
|
44
43
|
flunk "Unknown association: #{key}"
|
@@ -80,7 +79,7 @@ module ActiveModel
|
|
80
79
|
flunk "Unknown association: #{key}"
|
81
80
|
end
|
82
81
|
|
83
|
-
assert_equal
|
82
|
+
assert_equal true, association.options.fetch(:include_data)
|
84
83
|
end
|
85
84
|
end
|
86
85
|
|
@@ -104,13 +103,13 @@ module ActiveModel
|
|
104
103
|
end
|
105
104
|
|
106
105
|
assert(
|
107
|
-
PostSerializer._reflections.all? do |reflection|
|
108
|
-
inherited_klass._reflections.include?(reflection)
|
106
|
+
PostSerializer._reflections.values.all? do |reflection|
|
107
|
+
inherited_klass._reflections.values.include?(reflection)
|
109
108
|
end
|
110
109
|
)
|
111
110
|
|
112
111
|
assert(
|
113
|
-
inherited_klass._reflections.any? do |reflection|
|
112
|
+
inherited_klass._reflections.values.any? do |reflection|
|
114
113
|
reflection.name == :top_comments
|
115
114
|
end
|
116
115
|
)
|
@@ -160,18 +159,18 @@ module ActiveModel
|
|
160
159
|
|
161
160
|
class NamespacedResourcesTest < ActiveSupport::TestCase
|
162
161
|
class ResourceNamespace
|
163
|
-
Post
|
164
|
-
Comment
|
165
|
-
Author
|
166
|
-
Description
|
162
|
+
class Post < ::Model; end
|
163
|
+
class Comment < ::Model; end
|
164
|
+
class Author < ::Model; end
|
165
|
+
class Description < ::Model; end
|
167
166
|
class PostSerializer < ActiveModel::Serializer
|
168
167
|
has_many :comments
|
169
168
|
belongs_to :author
|
170
169
|
has_one :description
|
171
170
|
end
|
172
|
-
CommentSerializer
|
173
|
-
AuthorSerializer
|
174
|
-
DescriptionSerializer
|
171
|
+
class CommentSerializer < ActiveModel::Serializer; end
|
172
|
+
class AuthorSerializer < ActiveModel::Serializer; end
|
173
|
+
class DescriptionSerializer < ActiveModel::Serializer; end
|
175
174
|
end
|
176
175
|
|
177
176
|
def setup
|
@@ -201,17 +200,17 @@ module ActiveModel
|
|
201
200
|
end
|
202
201
|
|
203
202
|
class NestedSerializersTest < ActiveSupport::TestCase
|
204
|
-
Post
|
205
|
-
Comment
|
206
|
-
Author
|
207
|
-
Description
|
203
|
+
class Post < ::Model; end
|
204
|
+
class Comment < ::Model; end
|
205
|
+
class Author < ::Model; end
|
206
|
+
class Description < ::Model; end
|
208
207
|
class PostSerializer < ActiveModel::Serializer
|
209
208
|
has_many :comments
|
210
|
-
CommentSerializer
|
209
|
+
class CommentSerializer < ActiveModel::Serializer; end
|
211
210
|
belongs_to :author
|
212
|
-
AuthorSerializer
|
211
|
+
class AuthorSerializer < ActiveModel::Serializer; end
|
213
212
|
has_one :description
|
214
|
-
DescriptionSerializer
|
213
|
+
class DescriptionSerializer < ActiveModel::Serializer; end
|
215
214
|
end
|
216
215
|
|
217
216
|
def setup
|
@@ -290,6 +289,82 @@ module ActiveModel
|
|
290
289
|
assert_match(/:if should be a Symbol, String or Proc/, exception.message)
|
291
290
|
end
|
292
291
|
end
|
292
|
+
|
293
|
+
class InheritedSerializerTest < ActiveSupport::TestCase
|
294
|
+
class PostSerializer < ActiveModel::Serializer
|
295
|
+
belongs_to :author
|
296
|
+
has_many :comments
|
297
|
+
belongs_to :blog
|
298
|
+
end
|
299
|
+
|
300
|
+
class InheritedPostSerializer < PostSerializer
|
301
|
+
belongs_to :author, polymorphic: true
|
302
|
+
has_many :comments, key: :reviews
|
303
|
+
end
|
304
|
+
|
305
|
+
class AuthorSerializer < ActiveModel::Serializer
|
306
|
+
has_many :posts
|
307
|
+
has_many :roles
|
308
|
+
has_one :bio
|
309
|
+
end
|
310
|
+
|
311
|
+
class InheritedAuthorSerializer < AuthorSerializer
|
312
|
+
has_many :roles, polymorphic: true
|
313
|
+
has_one :bio, polymorphic: true
|
314
|
+
end
|
315
|
+
|
316
|
+
def setup
|
317
|
+
@author = Author.new(name: 'Steve K.')
|
318
|
+
@post = Post.new(title: 'New Post', body: 'Body')
|
319
|
+
@post_serializer = PostSerializer.new(@post)
|
320
|
+
@author_serializer = AuthorSerializer.new(@author)
|
321
|
+
@inherited_post_serializer = InheritedPostSerializer.new(@post)
|
322
|
+
@inherited_author_serializer = InheritedAuthorSerializer.new(@author)
|
323
|
+
@author_associations = @author_serializer.associations.to_a
|
324
|
+
@inherited_author_associations = @inherited_author_serializer.associations.to_a
|
325
|
+
@post_associations = @post_serializer.associations.to_a
|
326
|
+
@inherited_post_associations = @inherited_post_serializer.associations.to_a
|
327
|
+
end
|
328
|
+
|
329
|
+
test 'an author serializer must have [posts,roles,bio] associations' do
|
330
|
+
expected = [:posts, :roles, :bio].sort
|
331
|
+
result = @author_serializer.associations.map(&:name).sort
|
332
|
+
assert_equal(result, expected)
|
333
|
+
end
|
334
|
+
|
335
|
+
test 'a post serializer must have [author,comments,blog] associations' do
|
336
|
+
expected = [:author, :comments, :blog].sort
|
337
|
+
result = @post_serializer.associations.map(&:name).sort
|
338
|
+
assert_equal(result, expected)
|
339
|
+
end
|
340
|
+
|
341
|
+
test 'a serializer inheriting from another serializer can redefine has_many and has_one associations' do
|
342
|
+
expected = [:roles, :bio].sort
|
343
|
+
result = (@inherited_author_associations - @author_associations).map(&:name).sort
|
344
|
+
assert_equal(result, expected)
|
345
|
+
end
|
346
|
+
|
347
|
+
test 'a serializer inheriting from another serializer can redefine belongs_to associations' do
|
348
|
+
assert_equal [:author, :comments, :blog], @post_associations.map(&:name)
|
349
|
+
assert_equal [:author, :comments, :blog, :comments], @inherited_post_associations.map(&:name)
|
350
|
+
|
351
|
+
refute @post_associations.detect { |assoc| assoc.name == :author }.options.key?(:polymorphic)
|
352
|
+
assert_equal true, @inherited_post_associations.detect { |assoc| assoc.name == :author }.options.fetch(:polymorphic)
|
353
|
+
|
354
|
+
refute @post_associations.detect { |assoc| assoc.name == :comments }.options.key?(:key)
|
355
|
+
original_comment_assoc, new_comments_assoc = @inherited_post_associations.select { |assoc| assoc.name == :comments }
|
356
|
+
refute original_comment_assoc.options.key?(:key)
|
357
|
+
assert_equal :reviews, new_comments_assoc.options.fetch(:key)
|
358
|
+
|
359
|
+
assert_equal @post_associations.detect { |assoc| assoc.name == :blog }, @inherited_post_associations.detect { |assoc| assoc.name == :blog }
|
360
|
+
end
|
361
|
+
|
362
|
+
test 'a serializer inheriting from another serializer can have an additional association with the same name but with different key' do
|
363
|
+
expected = [:author, :comments, :blog, :reviews].sort
|
364
|
+
result = @inherited_post_serializer.associations.map { |a| a.options.fetch(:key, a.name) }.sort
|
365
|
+
assert_equal(result, expected)
|
366
|
+
end
|
367
|
+
end
|
293
368
|
end
|
294
369
|
end
|
295
370
|
end
|
@@ -81,7 +81,7 @@ module ActiveModel
|
|
81
81
|
assert_equal('custom', hash[:blog][:id])
|
82
82
|
end
|
83
83
|
|
84
|
-
PostWithVirtualAttribute
|
84
|
+
class PostWithVirtualAttribute < ::Model; end
|
85
85
|
class PostWithVirtualAttributeSerializer < ActiveModel::Serializer
|
86
86
|
attribute :name do
|
87
87
|
"#{object.first_name} #{object.last_name}"
|
@@ -28,8 +28,8 @@ module ActiveModel
|
|
28
28
|
|
29
29
|
class SerializerTest < ActiveSupport::TestCase
|
30
30
|
module ResourceNamespace
|
31
|
-
Post
|
32
|
-
Comment
|
31
|
+
class Post < ::Model; end
|
32
|
+
class Comment < ::Model; end
|
33
33
|
|
34
34
|
class PostSerializer < ActiveModel::Serializer
|
35
35
|
class CommentSerializer < ActiveModel::Serializer
|
@@ -46,7 +46,7 @@ module ActiveModel
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
Tweet
|
49
|
+
class Tweet < ::Model; end
|
50
50
|
TweetSerializer = Class.new
|
51
51
|
|
52
52
|
def setup
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module ActiveModel
|
4
|
+
class Serializer
|
5
|
+
class SerializerForWithNamespaceTest < ActiveSupport::TestCase
|
6
|
+
class Book < ::Model; end
|
7
|
+
class Page < ::Model; end
|
8
|
+
class Publisher < ::Model; end
|
9
|
+
|
10
|
+
module Api
|
11
|
+
module V3
|
12
|
+
class BookSerializer < ActiveModel::Serializer
|
13
|
+
attributes :title, :author_name
|
14
|
+
|
15
|
+
has_many :pages
|
16
|
+
belongs_to :publisher
|
17
|
+
end
|
18
|
+
|
19
|
+
class PageSerializer < ActiveModel::Serializer
|
20
|
+
attributes :number, :text
|
21
|
+
|
22
|
+
belongs_to :book
|
23
|
+
end
|
24
|
+
|
25
|
+
class PublisherSerializer < ActiveModel::Serializer
|
26
|
+
attributes :name
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
class BookSerializer < ActiveModel::Serializer
|
32
|
+
attributes :title, :author_name
|
33
|
+
end
|
34
|
+
test 'resource without a namespace' do
|
35
|
+
book = Book.new(title: 'A Post', author_name: 'hello')
|
36
|
+
|
37
|
+
# TODO: this should be able to pull up this serializer without explicitly specifying the serializer
|
38
|
+
# currently, with no options, it still uses the Api::V3 serializer
|
39
|
+
result = ActiveModelSerializers::SerializableResource.new(book, serializer: BookSerializer).serializable_hash
|
40
|
+
|
41
|
+
expected = { title: 'A Post', author_name: 'hello' }
|
42
|
+
assert_equal expected, result
|
43
|
+
end
|
44
|
+
|
45
|
+
test 'resource with namespace' do
|
46
|
+
book = Book.new(title: 'A Post', author_name: 'hi')
|
47
|
+
|
48
|
+
result = ActiveModelSerializers::SerializableResource.new(book, namespace: Api::V3).serializable_hash
|
49
|
+
|
50
|
+
expected = { title: 'A Post', author_name: 'hi', pages: nil, publisher: nil }
|
51
|
+
assert_equal expected, result
|
52
|
+
end
|
53
|
+
|
54
|
+
test 'has_many with nested serializer under the namespace' do
|
55
|
+
page = Page.new(number: 1, text: 'hello')
|
56
|
+
book = Book.new(title: 'A Post', author_name: 'hi', pages: [page])
|
57
|
+
|
58
|
+
result = ActiveModelSerializers::SerializableResource.new(book, namespace: Api::V3).serializable_hash
|
59
|
+
|
60
|
+
expected = {
|
61
|
+
title: 'A Post', author_name: 'hi',
|
62
|
+
publisher: nil,
|
63
|
+
pages: [{
|
64
|
+
number: 1, text: 'hello'
|
65
|
+
}]
|
66
|
+
}
|
67
|
+
assert_equal expected, result
|
68
|
+
end
|
69
|
+
|
70
|
+
test 'belongs_to with nested serializer under the namespace' do
|
71
|
+
publisher = Publisher.new(name: 'Disney')
|
72
|
+
book = Book.new(title: 'A Post', author_name: 'hi', publisher: publisher)
|
73
|
+
|
74
|
+
result = ActiveModelSerializers::SerializableResource.new(book, namespace: Api::V3).serializable_hash
|
75
|
+
|
76
|
+
expected = {
|
77
|
+
title: 'A Post', author_name: 'hi',
|
78
|
+
pages: nil,
|
79
|
+
publisher: {
|
80
|
+
name: 'Disney'
|
81
|
+
}
|
82
|
+
}
|
83
|
+
assert_equal expected, result
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -9,6 +9,22 @@ module SerializationTesting
|
|
9
9
|
ActiveModelSerializers::SerializableResource.new(obj).to_json
|
10
10
|
end
|
11
11
|
|
12
|
+
def with_namespace_separator(separator)
|
13
|
+
original_separator = ActiveModelSerializers.config.jsonapi_namespace_separator
|
14
|
+
ActiveModelSerializers.config.jsonapi_namespace_separator = separator
|
15
|
+
yield
|
16
|
+
ensure
|
17
|
+
ActiveModelSerializers.config.jsonapi_namespace_separator = original_separator
|
18
|
+
end
|
19
|
+
|
20
|
+
def with_prepended_lookup(lookup_proc)
|
21
|
+
original_lookup = ActiveModelSerializers.config.serializer_lookup_cahin
|
22
|
+
ActiveModelSerializers.config.serializer_lookup_chain.unshift lookup_proc
|
23
|
+
yield
|
24
|
+
ensure
|
25
|
+
ActiveModelSerializers.config.serializer_lookup_cahin = original_lookup
|
26
|
+
end
|
27
|
+
|
12
28
|
# Aliased as :with_configured_adapter to clarify that
|
13
29
|
# this method tests the configured adapter.
|
14
30
|
# When not testing configuration, it may be preferable
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_model_serializers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Klabnik
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -60,7 +60,7 @@ dependencies:
|
|
60
60
|
- - "<"
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '6'
|
63
|
-
type: :
|
63
|
+
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
@@ -74,14 +74,14 @@ dependencies:
|
|
74
74
|
name: jsonapi
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
76
76
|
requirements:
|
77
|
-
- -
|
77
|
+
- - '='
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: 0.1.1.beta2
|
80
80
|
type: :runtime
|
81
81
|
prerelease: false
|
82
82
|
version_requirements: !ruby/object:Gem::Requirement
|
83
83
|
requirements:
|
84
|
-
- -
|
84
|
+
- - '='
|
85
85
|
- !ruby/object:Gem::Version
|
86
86
|
version: 0.1.1.beta2
|
87
87
|
- !ruby/object:Gem::Dependency
|
@@ -249,6 +249,7 @@ files:
|
|
249
249
|
- ".simplecov"
|
250
250
|
- ".travis.yml"
|
251
251
|
- CHANGELOG.md
|
252
|
+
- CODE_OF_CONDUCT.md
|
252
253
|
- CONTRIBUTING.md
|
253
254
|
- Gemfile
|
254
255
|
- MIT-LICENSE
|
@@ -275,11 +276,14 @@ files:
|
|
275
276
|
- docs/general/serializers.md
|
276
277
|
- docs/how-open-source-maintained.jpg
|
277
278
|
- docs/howto/add_pagination_links.md
|
279
|
+
- docs/howto/add_relationship_links.md
|
278
280
|
- docs/howto/add_root_key.md
|
281
|
+
- docs/howto/grape_integration.md
|
279
282
|
- docs/howto/outside_controller_use.md
|
280
283
|
- docs/howto/passing_arbitrary_options.md
|
281
284
|
- docs/howto/serialize_poro.md
|
282
285
|
- docs/howto/test.md
|
286
|
+
- docs/howto/upgrade_from_0_8_to_0_10.md
|
283
287
|
- docs/integrations/ember-and-json-api.md
|
284
288
|
- docs/integrations/grape.md
|
285
289
|
- docs/jsonapi/errors.md
|
@@ -298,27 +302,27 @@ files:
|
|
298
302
|
- lib/active_model/serializer/adapter/null.rb
|
299
303
|
- lib/active_model/serializer/array_serializer.rb
|
300
304
|
- lib/active_model/serializer/association.rb
|
301
|
-
- lib/active_model/serializer/associations.rb
|
302
305
|
- lib/active_model/serializer/attribute.rb
|
303
|
-
- lib/active_model/serializer/attributes.rb
|
304
306
|
- lib/active_model/serializer/belongs_to_reflection.rb
|
305
|
-
- lib/active_model/serializer/caching.rb
|
306
307
|
- lib/active_model/serializer/collection_reflection.rb
|
307
308
|
- lib/active_model/serializer/collection_serializer.rb
|
308
|
-
- lib/active_model/serializer/
|
309
|
+
- lib/active_model/serializer/concerns/associations.rb
|
310
|
+
- lib/active_model/serializer/concerns/attributes.rb
|
311
|
+
- lib/active_model/serializer/concerns/caching.rb
|
312
|
+
- lib/active_model/serializer/concerns/configuration.rb
|
313
|
+
- lib/active_model/serializer/concerns/links.rb
|
314
|
+
- lib/active_model/serializer/concerns/meta.rb
|
315
|
+
- lib/active_model/serializer/concerns/type.rb
|
309
316
|
- lib/active_model/serializer/error_serializer.rb
|
310
317
|
- lib/active_model/serializer/errors_serializer.rb
|
311
318
|
- lib/active_model/serializer/field.rb
|
312
319
|
- lib/active_model/serializer/fieldset.rb
|
313
320
|
- lib/active_model/serializer/has_many_reflection.rb
|
314
321
|
- lib/active_model/serializer/has_one_reflection.rb
|
315
|
-
- lib/active_model/serializer/links.rb
|
316
322
|
- lib/active_model/serializer/lint.rb
|
317
|
-
- lib/active_model/serializer/meta.rb
|
318
323
|
- lib/active_model/serializer/null.rb
|
319
324
|
- lib/active_model/serializer/reflection.rb
|
320
325
|
- lib/active_model/serializer/singular_reflection.rb
|
321
|
-
- lib/active_model/serializer/type.rb
|
322
326
|
- lib/active_model/serializer/version.rb
|
323
327
|
- lib/active_model_serializers.rb
|
324
328
|
- lib/active_model_serializers/adapter.rb
|
@@ -341,6 +345,7 @@ files:
|
|
341
345
|
- lib/active_model_serializers/json_pointer.rb
|
342
346
|
- lib/active_model_serializers/key_transform.rb
|
343
347
|
- lib/active_model_serializers/logging.rb
|
348
|
+
- lib/active_model_serializers/lookup_chain.rb
|
344
349
|
- lib/active_model_serializers/model.rb
|
345
350
|
- lib/active_model_serializers/railtie.rb
|
346
351
|
- lib/active_model_serializers/register_jsonapi_renderer.rb
|
@@ -361,9 +366,12 @@ files:
|
|
361
366
|
- test/action_controller/json/include_test.rb
|
362
367
|
- test/action_controller/json_api/deserialization_test.rb
|
363
368
|
- test/action_controller/json_api/errors_test.rb
|
369
|
+
- test/action_controller/json_api/fields_test.rb
|
364
370
|
- test/action_controller/json_api/linked_test.rb
|
365
371
|
- test/action_controller/json_api/pagination_test.rb
|
366
372
|
- test/action_controller/json_api/transform_test.rb
|
373
|
+
- test/action_controller/lookup_proc_test.rb
|
374
|
+
- test/action_controller/namespace_lookup_test.rb
|
367
375
|
- test/action_controller/serialization_scope_name_test.rb
|
368
376
|
- test/action_controller/serialization_test.rb
|
369
377
|
- test/active_model_serializers/adapter_for_test.rb
|
@@ -377,6 +385,7 @@ files:
|
|
377
385
|
- test/active_model_serializers/test/schema_test.rb
|
378
386
|
- test/active_model_serializers/test/serializer_test.rb
|
379
387
|
- test/active_record_test.rb
|
388
|
+
- test/adapter/attributes_test.rb
|
380
389
|
- test/adapter/deprecation_test.rb
|
381
390
|
- test/adapter/json/belongs_to_test.rb
|
382
391
|
- test/adapter/json/collection_test.rb
|
@@ -390,13 +399,13 @@ files:
|
|
390
399
|
- test/adapter/json_api/has_many_explicit_serializer_test.rb
|
391
400
|
- test/adapter/json_api/has_many_test.rb
|
392
401
|
- test/adapter/json_api/has_one_test.rb
|
402
|
+
- test/adapter/json_api/include_data_if_sideloaded_test.rb
|
393
403
|
- test/adapter/json_api/json_api_test.rb
|
394
404
|
- test/adapter/json_api/linked_test.rb
|
395
405
|
- test/adapter/json_api/links_test.rb
|
396
406
|
- test/adapter/json_api/pagination_links_test.rb
|
397
407
|
- test/adapter/json_api/parse_test.rb
|
398
408
|
- test/adapter/json_api/relationship_test.rb
|
399
|
-
- test/adapter/json_api/relationships_test.rb
|
400
409
|
- test/adapter/json_api/resource_identifier_test.rb
|
401
410
|
- test/adapter/json_api/resource_meta_test.rb
|
402
411
|
- test/adapter/json_api/toplevel_jsonapi_test.rb
|
@@ -409,7 +418,10 @@ files:
|
|
409
418
|
- test/array_serializer_test.rb
|
410
419
|
- test/benchmark/app.rb
|
411
420
|
- test/benchmark/benchmarking_support.rb
|
421
|
+
- test/benchmark/bm_active_record.rb
|
422
|
+
- test/benchmark/bm_adapter.rb
|
412
423
|
- test/benchmark/bm_caching.rb
|
424
|
+
- test/benchmark/bm_lookup_chain.rb
|
413
425
|
- test/benchmark/bm_transform.rb
|
414
426
|
- test/benchmark/config.ru
|
415
427
|
- test/benchmark/controllers.rb
|
@@ -438,6 +450,7 @@ files:
|
|
438
450
|
- test/serializers/root_test.rb
|
439
451
|
- test/serializers/serialization_test.rb
|
440
452
|
- test/serializers/serializer_for_test.rb
|
453
|
+
- test/serializers/serializer_for_with_namespace_test.rb
|
441
454
|
- test/support/custom_schemas/active_model_serializers/test/schema_test/my/index.json
|
442
455
|
- test/support/isolated_unit.rb
|
443
456
|
- test/support/rails5_shims.rb
|
@@ -480,9 +493,12 @@ test_files:
|
|
480
493
|
- test/action_controller/json/include_test.rb
|
481
494
|
- test/action_controller/json_api/deserialization_test.rb
|
482
495
|
- test/action_controller/json_api/errors_test.rb
|
496
|
+
- test/action_controller/json_api/fields_test.rb
|
483
497
|
- test/action_controller/json_api/linked_test.rb
|
484
498
|
- test/action_controller/json_api/pagination_test.rb
|
485
499
|
- test/action_controller/json_api/transform_test.rb
|
500
|
+
- test/action_controller/lookup_proc_test.rb
|
501
|
+
- test/action_controller/namespace_lookup_test.rb
|
486
502
|
- test/action_controller/serialization_scope_name_test.rb
|
487
503
|
- test/action_controller/serialization_test.rb
|
488
504
|
- test/active_model_serializers/adapter_for_test.rb
|
@@ -496,6 +512,7 @@ test_files:
|
|
496
512
|
- test/active_model_serializers/test/schema_test.rb
|
497
513
|
- test/active_model_serializers/test/serializer_test.rb
|
498
514
|
- test/active_record_test.rb
|
515
|
+
- test/adapter/attributes_test.rb
|
499
516
|
- test/adapter/deprecation_test.rb
|
500
517
|
- test/adapter/json/belongs_to_test.rb
|
501
518
|
- test/adapter/json/collection_test.rb
|
@@ -509,13 +526,13 @@ test_files:
|
|
509
526
|
- test/adapter/json_api/has_many_explicit_serializer_test.rb
|
510
527
|
- test/adapter/json_api/has_many_test.rb
|
511
528
|
- test/adapter/json_api/has_one_test.rb
|
529
|
+
- test/adapter/json_api/include_data_if_sideloaded_test.rb
|
512
530
|
- test/adapter/json_api/json_api_test.rb
|
513
531
|
- test/adapter/json_api/linked_test.rb
|
514
532
|
- test/adapter/json_api/links_test.rb
|
515
533
|
- test/adapter/json_api/pagination_links_test.rb
|
516
534
|
- test/adapter/json_api/parse_test.rb
|
517
535
|
- test/adapter/json_api/relationship_test.rb
|
518
|
-
- test/adapter/json_api/relationships_test.rb
|
519
536
|
- test/adapter/json_api/resource_identifier_test.rb
|
520
537
|
- test/adapter/json_api/resource_meta_test.rb
|
521
538
|
- test/adapter/json_api/toplevel_jsonapi_test.rb
|
@@ -528,7 +545,10 @@ test_files:
|
|
528
545
|
- test/array_serializer_test.rb
|
529
546
|
- test/benchmark/app.rb
|
530
547
|
- test/benchmark/benchmarking_support.rb
|
548
|
+
- test/benchmark/bm_active_record.rb
|
549
|
+
- test/benchmark/bm_adapter.rb
|
531
550
|
- test/benchmark/bm_caching.rb
|
551
|
+
- test/benchmark/bm_lookup_chain.rb
|
532
552
|
- test/benchmark/bm_transform.rb
|
533
553
|
- test/benchmark/config.ru
|
534
554
|
- test/benchmark/controllers.rb
|
@@ -557,6 +577,7 @@ test_files:
|
|
557
577
|
- test/serializers/root_test.rb
|
558
578
|
- test/serializers/serialization_test.rb
|
559
579
|
- test/serializers/serializer_for_test.rb
|
580
|
+
- test/serializers/serializer_for_with_namespace_test.rb
|
560
581
|
- test/support/custom_schemas/active_model_serializers/test/schema_test/my/index.json
|
561
582
|
- test/support/isolated_unit.rb
|
562
583
|
- test/support/rails5_shims.rb
|