active_model_serializers 0.10.9 → 0.10.10

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 (154) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -2
  3. data/lib/action_controller/serialization.rb +9 -1
  4. data/lib/active_model/serializer.rb +10 -2
  5. data/lib/active_model/serializer/version.rb +1 -1
  6. data/lib/active_model_serializers/adapter/attributes.rb +21 -0
  7. data/lib/active_model_serializers/adapter/json_api/resource_identifier.rb +1 -1
  8. metadata +12 -259
  9. data/.github/ISSUE_TEMPLATE.md +0 -29
  10. data/.github/PULL_REQUEST_TEMPLATE.md +0 -15
  11. data/.gitignore +0 -35
  12. data/.rubocop.yml +0 -109
  13. data/.simplecov +0 -110
  14. data/.travis.yml +0 -63
  15. data/CODE_OF_CONDUCT.md +0 -74
  16. data/CONTRIBUTING.md +0 -105
  17. data/Gemfile +0 -74
  18. data/Rakefile +0 -76
  19. data/active_model_serializers.gemspec +0 -64
  20. data/appveyor.yml +0 -28
  21. data/bin/bench +0 -171
  22. data/bin/bench_regression +0 -316
  23. data/bin/rubocop +0 -38
  24. data/bin/serve_benchmark +0 -39
  25. data/docs/README.md +0 -41
  26. data/docs/STYLE.md +0 -58
  27. data/docs/general/adapters.md +0 -269
  28. data/docs/general/caching.md +0 -58
  29. data/docs/general/configuration_options.md +0 -185
  30. data/docs/general/deserialization.md +0 -100
  31. data/docs/general/fields.md +0 -31
  32. data/docs/general/getting_started.md +0 -133
  33. data/docs/general/instrumentation.md +0 -40
  34. data/docs/general/key_transforms.md +0 -40
  35. data/docs/general/logging.md +0 -21
  36. data/docs/general/rendering.md +0 -293
  37. data/docs/general/serializers.md +0 -495
  38. data/docs/how-open-source-maintained.jpg +0 -0
  39. data/docs/howto/add_pagination_links.md +0 -138
  40. data/docs/howto/add_relationship_links.md +0 -140
  41. data/docs/howto/add_root_key.md +0 -62
  42. data/docs/howto/grape_integration.md +0 -42
  43. data/docs/howto/outside_controller_use.md +0 -66
  44. data/docs/howto/passing_arbitrary_options.md +0 -27
  45. data/docs/howto/serialize_poro.md +0 -73
  46. data/docs/howto/test.md +0 -154
  47. data/docs/howto/upgrade_from_0_8_to_0_10.md +0 -265
  48. data/docs/integrations/ember-and-json-api.md +0 -147
  49. data/docs/integrations/grape.md +0 -19
  50. data/docs/jsonapi/errors.md +0 -56
  51. data/docs/jsonapi/schema.md +0 -151
  52. data/docs/jsonapi/schema/schema.json +0 -366
  53. data/docs/rfcs/0000-namespace.md +0 -106
  54. data/docs/rfcs/template.md +0 -15
  55. data/test/action_controller/adapter_selector_test.rb +0 -64
  56. data/test/action_controller/explicit_serializer_test.rb +0 -137
  57. data/test/action_controller/json/include_test.rb +0 -248
  58. data/test/action_controller/json_api/deserialization_test.rb +0 -114
  59. data/test/action_controller/json_api/errors_test.rb +0 -42
  60. data/test/action_controller/json_api/fields_test.rb +0 -68
  61. data/test/action_controller/json_api/linked_test.rb +0 -204
  62. data/test/action_controller/json_api/pagination_test.rb +0 -126
  63. data/test/action_controller/json_api/transform_test.rb +0 -191
  64. data/test/action_controller/lookup_proc_test.rb +0 -51
  65. data/test/action_controller/namespace_lookup_test.rb +0 -234
  66. data/test/action_controller/serialization_scope_name_test.rb +0 -237
  67. data/test/action_controller/serialization_test.rb +0 -480
  68. data/test/active_model_serializers/adapter_for_test.rb +0 -210
  69. data/test/active_model_serializers/json_pointer_test.rb +0 -24
  70. data/test/active_model_serializers/logging_test.rb +0 -79
  71. data/test/active_model_serializers/model_test.rb +0 -144
  72. data/test/active_model_serializers/railtie_test_isolated.rb +0 -70
  73. data/test/active_model_serializers/register_jsonapi_renderer_test_isolated.rb +0 -163
  74. data/test/active_model_serializers/serialization_context_test_isolated.rb +0 -73
  75. data/test/active_model_serializers/test/schema_test.rb +0 -133
  76. data/test/active_model_serializers/test/serializer_test.rb +0 -64
  77. data/test/active_record_test.rb +0 -11
  78. data/test/adapter/attributes_test.rb +0 -42
  79. data/test/adapter/deprecation_test.rb +0 -102
  80. data/test/adapter/json/belongs_to_test.rb +0 -47
  81. data/test/adapter/json/collection_test.rb +0 -106
  82. data/test/adapter/json/has_many_test.rb +0 -55
  83. data/test/adapter/json/transform_test.rb +0 -95
  84. data/test/adapter/json_api/belongs_to_test.rb +0 -157
  85. data/test/adapter/json_api/collection_test.rb +0 -98
  86. data/test/adapter/json_api/errors_test.rb +0 -78
  87. data/test/adapter/json_api/fields_test.rb +0 -98
  88. data/test/adapter/json_api/has_many_explicit_serializer_test.rb +0 -98
  89. data/test/adapter/json_api/has_many_test.rb +0 -175
  90. data/test/adapter/json_api/has_one_test.rb +0 -82
  91. data/test/adapter/json_api/include_data_if_sideloaded_test.rb +0 -215
  92. data/test/adapter/json_api/json_api_test.rb +0 -35
  93. data/test/adapter/json_api/linked_test.rb +0 -415
  94. data/test/adapter/json_api/links_test.rb +0 -112
  95. data/test/adapter/json_api/pagination_links_test.rb +0 -208
  96. data/test/adapter/json_api/parse_test.rb +0 -139
  97. data/test/adapter/json_api/relationship_test.rb +0 -399
  98. data/test/adapter/json_api/resource_meta_test.rb +0 -102
  99. data/test/adapter/json_api/toplevel_jsonapi_test.rb +0 -84
  100. data/test/adapter/json_api/transform_test.rb +0 -514
  101. data/test/adapter/json_api/type_test.rb +0 -195
  102. data/test/adapter/json_test.rb +0 -48
  103. data/test/adapter/null_test.rb +0 -24
  104. data/test/adapter/polymorphic_test.rb +0 -220
  105. data/test/adapter_test.rb +0 -69
  106. data/test/array_serializer_test.rb +0 -24
  107. data/test/benchmark/app.rb +0 -67
  108. data/test/benchmark/benchmarking_support.rb +0 -69
  109. data/test/benchmark/bm_active_record.rb +0 -83
  110. data/test/benchmark/bm_adapter.rb +0 -40
  111. data/test/benchmark/bm_caching.rb +0 -121
  112. data/test/benchmark/bm_lookup_chain.rb +0 -85
  113. data/test/benchmark/bm_transform.rb +0 -47
  114. data/test/benchmark/config.ru +0 -3
  115. data/test/benchmark/controllers.rb +0 -85
  116. data/test/benchmark/fixtures.rb +0 -221
  117. data/test/cache_test.rb +0 -717
  118. data/test/collection_serializer_test.rb +0 -129
  119. data/test/fixtures/active_record.rb +0 -115
  120. data/test/fixtures/poro.rb +0 -227
  121. data/test/generators/scaffold_controller_generator_test.rb +0 -26
  122. data/test/generators/serializer_generator_test.rb +0 -77
  123. data/test/grape_test.rb +0 -198
  124. data/test/lint_test.rb +0 -51
  125. data/test/logger_test.rb +0 -22
  126. data/test/poro_test.rb +0 -11
  127. data/test/serializable_resource_test.rb +0 -81
  128. data/test/serializers/association_macros_test.rb +0 -39
  129. data/test/serializers/associations_test.rb +0 -520
  130. data/test/serializers/attribute_test.rb +0 -155
  131. data/test/serializers/attributes_test.rb +0 -54
  132. data/test/serializers/caching_configuration_test_isolated.rb +0 -172
  133. data/test/serializers/configuration_test.rb +0 -34
  134. data/test/serializers/fieldset_test.rb +0 -16
  135. data/test/serializers/meta_test.rb +0 -204
  136. data/test/serializers/options_test.rb +0 -34
  137. data/test/serializers/read_attribute_for_serialization_test.rb +0 -81
  138. data/test/serializers/reflection_test.rb +0 -481
  139. data/test/serializers/root_test.rb +0 -23
  140. data/test/serializers/serialization_test.rb +0 -57
  141. data/test/serializers/serializer_for_test.rb +0 -138
  142. data/test/serializers/serializer_for_with_namespace_test.rb +0 -90
  143. data/test/support/custom_schemas/active_model_serializers/test/schema_test/my/index.json +0 -6
  144. data/test/support/isolated_unit.rb +0 -86
  145. data/test/support/rails5_shims.rb +0 -55
  146. data/test/support/rails_app.rb +0 -40
  147. data/test/support/schemas/active_model_serializers/test/schema_test/my/index.json +0 -6
  148. data/test/support/schemas/active_model_serializers/test/schema_test/my/show.json +0 -6
  149. data/test/support/schemas/custom/show.json +0 -7
  150. data/test/support/schemas/hyper_schema.json +0 -93
  151. data/test/support/schemas/render_using_json_api.json +0 -43
  152. data/test/support/schemas/simple_json_pointers.json +0 -10
  153. data/test/support/serialization_testing.rb +0 -81
  154. data/test/test_helper.rb +0 -72
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'support/isolated_unit'
4
- module ActiveModelSerializers
5
- RailsApplication = TestHelpers::Generation.make_basic_app do |app|
6
- app.configure do
7
- config.secret_key_base = 'abc123'
8
- config.active_support.test_order = :random
9
- config.action_controller.perform_caching = true
10
- config.action_controller.cache_store = :memory_store
11
-
12
- config.filter_parameters += [:password]
13
- end
14
-
15
- app.routes.default_url_options = { host: 'example.com' }
16
- end
17
- end
18
-
19
- Routes = ActionDispatch::Routing::RouteSet.new
20
- Routes.draw do
21
- get ':controller(/:action(/:id))'
22
- get ':controller(/:action)'
23
- end
24
- ActionController::Base.send :include, Routes.url_helpers
25
- ActionController::TestCase.class_eval do
26
- def setup
27
- @routes = Routes
28
- end
29
- end
30
-
31
- # ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
32
- # ActiveRecord::Migrator.migrations_paths << File.expand_path('../../db/migrate', __FILE__)
33
- #
34
- # Load fixtures from the engine
35
- # if ActiveSupport::TestCase.respond_to?(:fixture_path=)
36
- # ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
37
- # ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
38
- # ActiveSupport::TestCase.file_fixture_path = ActiveSupport::TestCase.fixture_path + "/files"
39
- # ActiveSupport::TestCase.fixtures :all
40
- # end
@@ -1,6 +0,0 @@
1
- {
2
- "properties": {
3
- "name" : { "type" : "string" },
4
- "description" : { "type" : "string" }
5
- }
6
- }
@@ -1,6 +0,0 @@
1
- {
2
- "properties": {
3
- "name" : { "type" : "integer" },
4
- "description" : { "type" : "boolean" }
5
- }
6
- }
@@ -1,7 +0,0 @@
1
- {
2
- "id": "file://custom/show.json#",
3
- "properties": {
4
- "name" : { "type" : "string" },
5
- "description" : { "type" : "string" }
6
- }
7
- }
@@ -1,93 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-04/hyper-schema",
3
- "title": "Profile",
4
- "description": "Profile schema",
5
- "stability": "prototype",
6
- "strictProperties": true,
7
- "type": [
8
- "object"
9
- ],
10
- "definitions": {
11
- "name": {
12
- "description": "unique name of profile",
13
- "readOnly": true,
14
- "type": [
15
- "string"
16
- ]
17
- },
18
- "description": {
19
- "description": "description of profile",
20
- "readOnly": true,
21
- "type": [
22
- "string"
23
- ]
24
- },
25
- "identity": {
26
- "anyOf": [
27
- {
28
- "$ref": "/schemata/profile#/definitions/name"
29
- }
30
- ]
31
- }
32
- },
33
- "links": [
34
- {
35
- "description": "Create a new profile.",
36
- "href": "/profiles",
37
- "method": "POST",
38
- "rel": "create",
39
- "schema": {
40
- "properties": {
41
- },
42
- "type": [
43
- "object"
44
- ]
45
- },
46
- "title": "Create"
47
- },
48
- {
49
- "description": "Delete an existing profile.",
50
- "href": "/profiles/{(%2Fschemata%2Fprofile%23%2Fdefinitions%2Fidentity)}",
51
- "method": "DELETE",
52
- "rel": "destroy",
53
- "title": "Delete"
54
- },
55
- {
56
- "description": "Info for existing profile.",
57
- "href": "/profiles/{(%2Fschemata%2Fprofile%23%2Fdefinitions%2Fidentity)}",
58
- "method": "GET",
59
- "rel": "self",
60
- "title": "Info"
61
- },
62
- {
63
- "description": "List existing profiles.",
64
- "href": "/profiles",
65
- "method": "GET",
66
- "rel": "instances",
67
- "title": "List"
68
- },
69
- {
70
- "description": "Update an existing profile.",
71
- "href": "/profiles/{(%2Fschemata%2Fprofile%23%2Fdefinitions%2Fidentity)}",
72
- "method": "PATCH",
73
- "rel": "update",
74
- "schema": {
75
- "properties": {
76
- },
77
- "type": [
78
- "object"
79
- ]
80
- },
81
- "title": "Update"
82
- }
83
- ],
84
- "properties": {
85
- "name": {
86
- "$ref": "/schemata/profile#/definitions/name"
87
- },
88
- "description": {
89
- "$ref": "/schemata/profile#/definitions/description"
90
- }
91
- },
92
- "id": "/schemata/profile"
93
- }
@@ -1,43 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-04/schema#",
3
- "id": "",
4
- "type": "object",
5
- "properties": {
6
- "data": {
7
- "id": "/data",
8
- "type": "object",
9
- "properties": {
10
- "id": {
11
- "id": "/data/id",
12
- "type": "string"
13
- },
14
- "type": {
15
- "id": "/data/type",
16
- "type": "string"
17
- },
18
- "attributes": {
19
- "id": "/data/attributes",
20
- "type": "object",
21
- "properties": {
22
- "name": {
23
- "id": "/data/attributes/name",
24
- "type": "string"
25
- },
26
- "description": {
27
- "id": "/data/attributes/description",
28
- "type": "string"
29
- }
30
- }
31
- }
32
- },
33
- "required": [
34
- "id",
35
- "type",
36
- "attributes"
37
- ]
38
- }
39
- },
40
- "required": [
41
- "data"
42
- ]
43
- }
@@ -1,10 +0,0 @@
1
- {
2
- "properties": {
3
- "name": {
4
- "$ref": "file://custom/show.json#/properties/name"
5
- },
6
- "description": {
7
- "$ref": "file://custom/show.json#/properties/description"
8
- }
9
- }
10
- }
@@ -1,81 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SerializationTesting
4
- def config
5
- ActiveModelSerializers.config
6
- end
7
-
8
- private
9
-
10
- def generate_cached_serializer(obj)
11
- ActiveModelSerializers::SerializableResource.new(obj).to_json
12
- end
13
-
14
- def with_namespace_separator(separator)
15
- original_separator = ActiveModelSerializers.config.jsonapi_namespace_separator
16
- ActiveModelSerializers.config.jsonapi_namespace_separator = separator
17
- yield
18
- ensure
19
- ActiveModelSerializers.config.jsonapi_namespace_separator = original_separator
20
- end
21
-
22
- def with_prepended_lookup(lookup_proc)
23
- original_lookup = ActiveModelSerializers.config.serializer_lookup_cahin
24
- ActiveModelSerializers.config.serializer_lookup_chain.unshift lookup_proc
25
- yield
26
- ensure
27
- ActiveModelSerializers.config.serializer_lookup_cahin = original_lookup
28
- end
29
-
30
- # Aliased as :with_configured_adapter to clarify that
31
- # this method tests the configured adapter.
32
- # When not testing configuration, it may be preferable
33
- # to pass in the +adapter+ option to <tt>ActiveModelSerializers::SerializableResource</tt>.
34
- # e.g ActiveModelSerializers::SerializableResource.new(resource, adapter: :json_api)
35
- def with_adapter(adapter)
36
- old_adapter = ActiveModelSerializers.config.adapter
37
- ActiveModelSerializers.config.adapter = adapter
38
- yield
39
- ensure
40
- ActiveModelSerializers.config.adapter = old_adapter
41
- end
42
- alias with_configured_adapter with_adapter
43
-
44
- def with_config(hash)
45
- old_config = config.dup
46
- ActiveModelSerializers.config.update(hash)
47
- yield
48
- ensure
49
- ActiveModelSerializers.config.replace(old_config)
50
- end
51
-
52
- def with_jsonapi_inflection(inflection)
53
- original_inflection = ActiveModelSerializers.config.jsonapi_resource_type
54
- ActiveModelSerializers.config.jsonapi_resource_type = inflection
55
- yield
56
- ensure
57
- ActiveModelSerializers.config.jsonapi_resource_type = original_inflection
58
- end
59
-
60
- def with_serializer_lookup_disabled
61
- original_serializer_lookup = ActiveModelSerializers.config.serializer_lookup_enabled
62
- ActiveModelSerializers.config.serializer_lookup_enabled = false
63
- yield
64
- ensure
65
- ActiveModelSerializers.config.serializer_lookup_enabled = original_serializer_lookup
66
- end
67
-
68
- def serializable(resource, options = {})
69
- ActiveModelSerializers::SerializableResource.new(resource, options)
70
- end
71
- end
72
-
73
- module Minitest
74
- class Test
75
- def before_setup
76
- ActionController::Base.cache_store.clear
77
- end
78
-
79
- include SerializationTesting
80
- end
81
- end
@@ -1,72 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Configure Rails Environment
4
- ENV['RAILS_ENV'] = 'test'
5
- require 'bundler/setup'
6
-
7
- begin
8
- require 'simplecov'
9
- AppCoverage.start
10
- rescue LoadError
11
- STDERR.puts 'Running without SimpleCov'
12
- end
13
-
14
- require 'pry'
15
- require 'timecop'
16
- require 'rails'
17
- require 'action_controller'
18
- require 'action_controller/test_case'
19
- require 'action_controller/railtie'
20
- require 'active_model_serializers'
21
- # For now, we only restrict the options to serializable_hash/as_json/to_json
22
- # in tests, to ensure developers don't add any unsupported options.
23
- # There's no known benefit, at this time, to having the filtering run in
24
- # production when the excluded options would simply not be used.
25
- #
26
- # However, for documentation purposes, the constant
27
- # ActiveModel::Serializer::SERIALIZABLE_HASH_VALID_KEYS is defined
28
- # in the Serializer.
29
- ActiveModelSerializers::Adapter::Base.class_eval do
30
- alias_method :original_serialization_options, :serialization_options
31
-
32
- def serialization_options(options)
33
- original_serialization_options(options)
34
- .slice(*ActiveModel::Serializer::SERIALIZABLE_HASH_VALID_KEYS)
35
- end
36
- end
37
- require 'fileutils'
38
- FileUtils.mkdir_p(File.expand_path('../../tmp/cache', __FILE__))
39
-
40
- gem 'minitest'
41
- require 'minitest'
42
- require 'minitest/autorun'
43
- Minitest.backtrace_filter = Minitest::BacktraceFilter.new
44
-
45
- module TestHelper
46
- module_function
47
-
48
- def silence_warnings
49
- original_verbose = $VERBOSE
50
- $VERBOSE = nil
51
- yield
52
- ensure
53
- $VERBOSE = original_verbose
54
- end
55
- end
56
-
57
- require 'support/rails_app'
58
-
59
- # require "rails/test_help"
60
-
61
- require 'support/serialization_testing'
62
-
63
- require 'support/rails5_shims'
64
-
65
- require 'fixtures/active_record'
66
-
67
- require 'fixtures/poro'
68
-
69
- ActiveSupport.on_load(:action_controller) do
70
- $action_controller_logger = ActiveModelSerializers.logger
71
- ActiveModelSerializers.logger = Logger.new(IO::NULL)
72
- end