active_model_serializers 0.10.3 → 0.10.12

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 (224) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +154 -2
  3. data/README.md +153 -15
  4. data/lib/action_controller/serialization.rb +11 -1
  5. data/lib/active_model/serializable_resource.rb +2 -0
  6. data/lib/active_model/serializer.rb +275 -81
  7. data/lib/active_model/serializer/adapter.rb +2 -0
  8. data/lib/active_model/serializer/adapter/attributes.rb +2 -0
  9. data/lib/active_model/serializer/adapter/base.rb +2 -0
  10. data/lib/active_model/serializer/adapter/json.rb +2 -0
  11. data/lib/active_model/serializer/adapter/json_api.rb +2 -0
  12. data/lib/active_model/serializer/adapter/null.rb +2 -0
  13. data/lib/active_model/serializer/array_serializer.rb +2 -0
  14. data/lib/active_model/serializer/association.rb +53 -14
  15. data/lib/active_model/serializer/attribute.rb +2 -0
  16. data/lib/active_model/serializer/belongs_to_reflection.rb +7 -1
  17. data/lib/active_model/serializer/collection_serializer.rb +8 -5
  18. data/lib/active_model/serializer/concerns/caching.rb +36 -23
  19. data/lib/active_model/serializer/error_serializer.rb +2 -0
  20. data/lib/active_model/serializer/errors_serializer.rb +2 -0
  21. data/lib/active_model/serializer/field.rb +2 -0
  22. data/lib/active_model/serializer/fieldset.rb +3 -1
  23. data/lib/active_model/serializer/has_many_reflection.rb +6 -1
  24. data/lib/active_model/serializer/has_one_reflection.rb +3 -1
  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 +2 -0
  28. data/lib/active_model/serializer/null.rb +2 -0
  29. data/lib/active_model/serializer/reflection.rb +122 -73
  30. data/lib/active_model/serializer/version.rb +3 -1
  31. data/lib/active_model_serializers.rb +29 -11
  32. data/lib/active_model_serializers/adapter.rb +3 -1
  33. data/lib/active_model_serializers/adapter/attributes.rb +23 -0
  34. data/lib/active_model_serializers/adapter/base.rb +4 -2
  35. data/lib/active_model_serializers/adapter/json.rb +2 -0
  36. data/lib/active_model_serializers/adapter/json_api.rb +44 -26
  37. data/lib/active_model_serializers/adapter/json_api/deserialization.rb +4 -2
  38. data/lib/active_model_serializers/adapter/json_api/error.rb +2 -0
  39. data/lib/active_model_serializers/adapter/json_api/jsonapi.rb +2 -0
  40. data/lib/active_model_serializers/adapter/json_api/link.rb +2 -0
  41. data/lib/active_model_serializers/adapter/json_api/meta.rb +2 -0
  42. data/lib/active_model_serializers/adapter/json_api/pagination_links.rb +42 -21
  43. data/lib/active_model_serializers/adapter/json_api/relationship.rb +52 -9
  44. data/lib/active_model_serializers/adapter/json_api/resource_identifier.rb +35 -18
  45. data/lib/active_model_serializers/adapter/null.rb +2 -0
  46. data/lib/active_model_serializers/callbacks.rb +2 -0
  47. data/lib/active_model_serializers/deprecate.rb +2 -0
  48. data/lib/active_model_serializers/deserialization.rb +2 -0
  49. data/lib/active_model_serializers/json_pointer.rb +2 -0
  50. data/lib/active_model_serializers/logging.rb +2 -0
  51. data/lib/active_model_serializers/lookup_chain.rb +2 -0
  52. data/lib/active_model_serializers/model.rb +111 -30
  53. data/lib/active_model_serializers/model/caching.rb +25 -0
  54. data/lib/active_model_serializers/railtie.rb +4 -0
  55. data/lib/active_model_serializers/register_jsonapi_renderer.rb +2 -0
  56. data/lib/active_model_serializers/serializable_resource.rb +4 -2
  57. data/lib/active_model_serializers/serialization_context.rb +2 -0
  58. data/lib/active_model_serializers/test.rb +2 -0
  59. data/lib/active_model_serializers/test/schema.rb +4 -2
  60. data/lib/active_model_serializers/test/serializer.rb +2 -0
  61. data/lib/generators/rails/resource_override.rb +3 -1
  62. data/lib/generators/rails/serializer_generator.rb +2 -0
  63. data/lib/grape/active_model_serializers.rb +2 -0
  64. data/lib/grape/formatters/active_model_serializers.rb +2 -0
  65. data/lib/grape/helpers/active_model_serializers.rb +2 -0
  66. data/lib/tasks/rubocop.rake +55 -0
  67. metadata +74 -291
  68. data/.github/ISSUE_TEMPLATE.md +0 -29
  69. data/.github/PULL_REQUEST_TEMPLATE.md +0 -15
  70. data/.gitignore +0 -35
  71. data/.rubocop.yml +0 -102
  72. data/.simplecov +0 -110
  73. data/.travis.yml +0 -51
  74. data/CODE_OF_CONDUCT.md +0 -74
  75. data/CONTRIBUTING.md +0 -105
  76. data/Gemfile +0 -56
  77. data/Rakefile +0 -103
  78. data/active_model_serializers.gemspec +0 -62
  79. data/appveyor.yml +0 -24
  80. data/bin/bench +0 -171
  81. data/bin/bench_regression +0 -316
  82. data/bin/serve_benchmark +0 -39
  83. data/docs/ARCHITECTURE.md +0 -125
  84. data/docs/README.md +0 -42
  85. data/docs/STYLE.md +0 -58
  86. data/docs/general/adapters.md +0 -247
  87. data/docs/general/caching.md +0 -58
  88. data/docs/general/configuration_options.md +0 -169
  89. data/docs/general/deserialization.md +0 -100
  90. data/docs/general/fields.md +0 -31
  91. data/docs/general/getting_started.md +0 -133
  92. data/docs/general/instrumentation.md +0 -40
  93. data/docs/general/key_transforms.md +0 -40
  94. data/docs/general/logging.md +0 -14
  95. data/docs/general/rendering.md +0 -294
  96. data/docs/general/serializers.md +0 -461
  97. data/docs/how-open-source-maintained.jpg +0 -0
  98. data/docs/howto/add_pagination_links.md +0 -138
  99. data/docs/howto/add_relationship_links.md +0 -137
  100. data/docs/howto/add_root_key.md +0 -55
  101. data/docs/howto/grape_integration.md +0 -42
  102. data/docs/howto/outside_controller_use.md +0 -65
  103. data/docs/howto/passing_arbitrary_options.md +0 -27
  104. data/docs/howto/serialize_poro.md +0 -32
  105. data/docs/howto/test.md +0 -154
  106. data/docs/howto/upgrade_from_0_8_to_0_10.md +0 -265
  107. data/docs/integrations/ember-and-json-api.md +0 -144
  108. data/docs/integrations/grape.md +0 -19
  109. data/docs/jsonapi/errors.md +0 -56
  110. data/docs/jsonapi/schema.md +0 -151
  111. data/docs/jsonapi/schema/schema.json +0 -366
  112. data/docs/rfcs/0000-namespace.md +0 -106
  113. data/docs/rfcs/template.md +0 -15
  114. data/lib/active_model/serializer/collection_reflection.rb +0 -7
  115. data/lib/active_model/serializer/concerns/associations.rb +0 -102
  116. data/lib/active_model/serializer/concerns/attributes.rb +0 -82
  117. data/lib/active_model/serializer/concerns/configuration.rb +0 -59
  118. data/lib/active_model/serializer/concerns/links.rb +0 -35
  119. data/lib/active_model/serializer/concerns/meta.rb +0 -29
  120. data/lib/active_model/serializer/concerns/type.rb +0 -25
  121. data/lib/active_model/serializer/singular_reflection.rb +0 -7
  122. data/lib/active_model_serializers/key_transform.rb +0 -74
  123. data/test/action_controller/adapter_selector_test.rb +0 -53
  124. data/test/action_controller/explicit_serializer_test.rb +0 -135
  125. data/test/action_controller/json/include_test.rb +0 -246
  126. data/test/action_controller/json_api/deserialization_test.rb +0 -112
  127. data/test/action_controller/json_api/errors_test.rb +0 -40
  128. data/test/action_controller/json_api/fields_test.rb +0 -57
  129. data/test/action_controller/json_api/linked_test.rb +0 -202
  130. data/test/action_controller/json_api/pagination_test.rb +0 -116
  131. data/test/action_controller/json_api/transform_test.rb +0 -181
  132. data/test/action_controller/lookup_proc_test.rb +0 -49
  133. data/test/action_controller/namespace_lookup_test.rb +0 -226
  134. data/test/action_controller/serialization_scope_name_test.rb +0 -229
  135. data/test/action_controller/serialization_test.rb +0 -472
  136. data/test/active_model_serializers/adapter_for_test.rb +0 -208
  137. data/test/active_model_serializers/json_pointer_test.rb +0 -22
  138. data/test/active_model_serializers/key_transform_test.rb +0 -297
  139. data/test/active_model_serializers/logging_test.rb +0 -77
  140. data/test/active_model_serializers/model_test.rb +0 -22
  141. data/test/active_model_serializers/railtie_test_isolated.rb +0 -63
  142. data/test/active_model_serializers/register_jsonapi_renderer_test_isolated.rb +0 -143
  143. data/test/active_model_serializers/serialization_context_test_isolated.rb +0 -71
  144. data/test/active_model_serializers/test/schema_test.rb +0 -130
  145. data/test/active_model_serializers/test/serializer_test.rb +0 -62
  146. data/test/active_record_test.rb +0 -9
  147. data/test/adapter/attributes_test.rb +0 -43
  148. data/test/adapter/deprecation_test.rb +0 -100
  149. data/test/adapter/json/belongs_to_test.rb +0 -45
  150. data/test/adapter/json/collection_test.rb +0 -104
  151. data/test/adapter/json/has_many_test.rb +0 -45
  152. data/test/adapter/json/transform_test.rb +0 -93
  153. data/test/adapter/json_api/belongs_to_test.rb +0 -155
  154. data/test/adapter/json_api/collection_test.rb +0 -96
  155. data/test/adapter/json_api/errors_test.rb +0 -76
  156. data/test/adapter/json_api/fields_test.rb +0 -88
  157. data/test/adapter/json_api/has_many_embed_ids_test.rb +0 -43
  158. data/test/adapter/json_api/has_many_explicit_serializer_test.rb +0 -96
  159. data/test/adapter/json_api/has_many_test.rb +0 -165
  160. data/test/adapter/json_api/has_one_test.rb +0 -80
  161. data/test/adapter/json_api/include_data_if_sideloaded_test.rb +0 -166
  162. data/test/adapter/json_api/json_api_test.rb +0 -33
  163. data/test/adapter/json_api/linked_test.rb +0 -413
  164. data/test/adapter/json_api/links_test.rb +0 -95
  165. data/test/adapter/json_api/pagination_links_test.rb +0 -193
  166. data/test/adapter/json_api/parse_test.rb +0 -137
  167. data/test/adapter/json_api/relationship_test.rb +0 -397
  168. data/test/adapter/json_api/resource_identifier_test.rb +0 -110
  169. data/test/adapter/json_api/resource_meta_test.rb +0 -100
  170. data/test/adapter/json_api/toplevel_jsonapi_test.rb +0 -82
  171. data/test/adapter/json_api/transform_test.rb +0 -504
  172. data/test/adapter/json_api/type_test.rb +0 -61
  173. data/test/adapter/json_test.rb +0 -46
  174. data/test/adapter/null_test.rb +0 -22
  175. data/test/adapter/polymorphic_test.rb +0 -171
  176. data/test/adapter_test.rb +0 -67
  177. data/test/array_serializer_test.rb +0 -22
  178. data/test/benchmark/app.rb +0 -65
  179. data/test/benchmark/benchmarking_support.rb +0 -67
  180. data/test/benchmark/bm_active_record.rb +0 -81
  181. data/test/benchmark/bm_adapter.rb +0 -38
  182. data/test/benchmark/bm_caching.rb +0 -119
  183. data/test/benchmark/bm_lookup_chain.rb +0 -83
  184. data/test/benchmark/bm_transform.rb +0 -45
  185. data/test/benchmark/config.ru +0 -3
  186. data/test/benchmark/controllers.rb +0 -83
  187. data/test/benchmark/fixtures.rb +0 -219
  188. data/test/cache_test.rb +0 -579
  189. data/test/collection_serializer_test.rb +0 -110
  190. data/test/fixtures/active_record.rb +0 -78
  191. data/test/fixtures/poro.rb +0 -286
  192. data/test/generators/scaffold_controller_generator_test.rb +0 -24
  193. data/test/generators/serializer_generator_test.rb +0 -74
  194. data/test/grape_test.rb +0 -178
  195. data/test/lint_test.rb +0 -49
  196. data/test/logger_test.rb +0 -20
  197. data/test/poro_test.rb +0 -9
  198. data/test/serializable_resource_test.rb +0 -79
  199. data/test/serializers/association_macros_test.rb +0 -37
  200. data/test/serializers/associations_test.rb +0 -370
  201. data/test/serializers/attribute_test.rb +0 -151
  202. data/test/serializers/attributes_test.rb +0 -52
  203. data/test/serializers/caching_configuration_test_isolated.rb +0 -170
  204. data/test/serializers/configuration_test.rb +0 -32
  205. data/test/serializers/fieldset_test.rb +0 -14
  206. data/test/serializers/meta_test.rb +0 -202
  207. data/test/serializers/options_test.rb +0 -21
  208. data/test/serializers/read_attribute_for_serialization_test.rb +0 -79
  209. data/test/serializers/root_test.rb +0 -21
  210. data/test/serializers/serialization_test.rb +0 -55
  211. data/test/serializers/serializer_for_test.rb +0 -136
  212. data/test/serializers/serializer_for_with_namespace_test.rb +0 -87
  213. data/test/support/custom_schemas/active_model_serializers/test/schema_test/my/index.json +0 -6
  214. data/test/support/isolated_unit.rb +0 -82
  215. data/test/support/rails5_shims.rb +0 -53
  216. data/test/support/rails_app.rb +0 -36
  217. data/test/support/schemas/active_model_serializers/test/schema_test/my/index.json +0 -6
  218. data/test/support/schemas/active_model_serializers/test/schema_test/my/show.json +0 -6
  219. data/test/support/schemas/custom/show.json +0 -7
  220. data/test/support/schemas/hyper_schema.json +0 -93
  221. data/test/support/schemas/render_using_json_api.json +0 -43
  222. data/test/support/schemas/simple_json_pointers.json +0 -10
  223. data/test/support/serialization_testing.rb +0 -71
  224. data/test/test_helper.rb +0 -58
@@ -1,53 +0,0 @@
1
- module Rails5Shims
2
- module ControllerTests
3
- # https://github.com/rails/rails/blob/b217354/actionpack/lib/action_controller/test_case.rb
4
- REQUEST_KWARGS = [:params, :headers, :session, :flash, :method, :body, :xhr].freeze
5
-
6
- def get(path, *args)
7
- fold_kwargs!(args)
8
- super
9
- end
10
-
11
- def post(path, *args)
12
- fold_kwargs!(args)
13
- super
14
- end
15
-
16
- def patch(path, *args)
17
- fold_kwargs!(args)
18
- super
19
- end
20
-
21
- def put(path, *args)
22
- fold_kwargs!(args)
23
- super
24
- end
25
-
26
- # Fold kwargs from test request into args
27
- # Band-aid for DEPRECATION WARNING
28
- def fold_kwargs!(args)
29
- hash = args && args[0]
30
- return unless hash.respond_to?(:key)
31
- Rails5Shims::ControllerTests::REQUEST_KWARGS.each do |kwarg|
32
- next unless hash.key?(kwarg)
33
- value = hash.delete(kwarg)
34
- if value.is_a? String
35
- args.insert(0, value)
36
- else
37
- hash.merge! value
38
- end
39
- end
40
- end
41
-
42
- # Uncomment for debugging where the kwargs warnings come from
43
- # def non_kwarg_request_warning
44
- # super.tap do
45
- # STDOUT.puts caller[2..3]
46
- # end
47
- # end
48
- end
49
- end
50
- if Rails::VERSION::MAJOR < 5
51
- ActionController::TestCase.send :include, Rails5Shims::ControllerTests
52
- ActionDispatch::IntegrationTest.send :include, Rails5Shims::ControllerTests
53
- end
@@ -1,36 +0,0 @@
1
- require 'support/isolated_unit'
2
- module ActiveModelSerializers
3
- RailsApplication = TestHelpers::Generation.make_basic_app do |app|
4
- app.configure do
5
- config.secret_key_base = 'abc123'
6
- config.active_support.test_order = :random
7
- config.action_controller.perform_caching = true
8
- config.action_controller.cache_store = :memory_store
9
- end
10
-
11
- app.routes.default_url_options = { host: 'example.com' }
12
- end
13
- end
14
-
15
- Routes = ActionDispatch::Routing::RouteSet.new
16
- Routes.draw do
17
- get ':controller(/:action(/:id))'
18
- get ':controller(/:action)'
19
- end
20
- ActionController::Base.send :include, Routes.url_helpers
21
- ActionController::TestCase.class_eval do
22
- def setup
23
- @routes = Routes
24
- end
25
- end
26
-
27
- # ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
28
- # ActiveRecord::Migrator.migrations_paths << File.expand_path('../../db/migrate', __FILE__)
29
- #
30
- # Load fixtures from the engine
31
- # if ActiveSupport::TestCase.respond_to?(:fixture_path=)
32
- # ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
33
- # ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
34
- # ActiveSupport::TestCase.file_fixture_path = ActiveSupport::TestCase.fixture_path + "/files"
35
- # ActiveSupport::TestCase.fixtures :all
36
- # 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,71 +0,0 @@
1
- module SerializationTesting
2
- def config
3
- ActiveModelSerializers.config
4
- end
5
-
6
- private
7
-
8
- def generate_cached_serializer(obj)
9
- ActiveModelSerializers::SerializableResource.new(obj).to_json
10
- end
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
-
28
- # Aliased as :with_configured_adapter to clarify that
29
- # this method tests the configured adapter.
30
- # When not testing configuration, it may be preferable
31
- # to pass in the +adapter+ option to <tt>ActiveModelSerializers::SerializableResource</tt>.
32
- # e.g ActiveModelSerializers::SerializableResource.new(resource, adapter: :json_api)
33
- def with_adapter(adapter)
34
- old_adapter = ActiveModelSerializers.config.adapter
35
- ActiveModelSerializers.config.adapter = adapter
36
- yield
37
- ensure
38
- ActiveModelSerializers.config.adapter = old_adapter
39
- end
40
- alias with_configured_adapter with_adapter
41
-
42
- def with_config(hash)
43
- old_config = config.dup
44
- ActiveModelSerializers.config.update(hash)
45
- yield
46
- ensure
47
- ActiveModelSerializers.config.replace(old_config)
48
- end
49
-
50
- def with_serializer_lookup_disabled
51
- original_serializer_lookup = ActiveModelSerializers.config.serializer_lookup_enabled
52
- ActiveModelSerializers.config.serializer_lookup_enabled = false
53
- yield
54
- ensure
55
- ActiveModelSerializers.config.serializer_lookup_enabled = original_serializer_lookup
56
- end
57
-
58
- def serializable(resource, options = {})
59
- ActiveModelSerializers::SerializableResource.new(resource, options)
60
- end
61
- end
62
-
63
- module Minitest
64
- class Test
65
- def before_setup
66
- ActionController::Base.cache_store.clear
67
- end
68
-
69
- include SerializationTesting
70
- end
71
- end
data/test/test_helper.rb DELETED
@@ -1,58 +0,0 @@
1
- # Configure Rails Environment
2
- ENV['RAILS_ENV'] = 'test'
3
- require 'bundler/setup'
4
-
5
- begin
6
- require 'simplecov'
7
- AppCoverage.start
8
- rescue LoadError
9
- STDERR.puts 'Running without SimpleCov'
10
- end
11
-
12
- require 'pry'
13
- require 'timecop'
14
- require 'rails'
15
- require 'action_controller'
16
- require 'action_controller/test_case'
17
- require 'action_controller/railtie'
18
- require 'active_model_serializers'
19
- # For now, we only restrict the options to serializable_hash/as_json/to_json
20
- # in tests, to ensure developers don't add any unsupported options.
21
- # There's no known benefit, at this time, to having the filtering run in
22
- # production when the excluded options would simply not be used.
23
- #
24
- # However, for documentation purposes, the constant
25
- # ActiveModel::Serializer::SERIALIZABLE_HASH_VALID_KEYS is defined
26
- # in the Serializer.
27
- ActiveModelSerializers::Adapter::Base.class_eval do
28
- alias_method :original_serialization_options, :serialization_options
29
-
30
- def serialization_options(options)
31
- original_serialization_options(options)
32
- .slice(*ActiveModel::Serializer::SERIALIZABLE_HASH_VALID_KEYS)
33
- end
34
- end
35
- require 'fileutils'
36
- FileUtils.mkdir_p(File.expand_path('../../tmp/cache', __FILE__))
37
-
38
- gem 'minitest'
39
- require 'minitest'
40
- require 'minitest/autorun'
41
- Minitest.backtrace_filter = Minitest::BacktraceFilter.new
42
-
43
- require 'support/rails_app'
44
-
45
- # require "rails/test_help"
46
-
47
- require 'support/serialization_testing'
48
-
49
- require 'support/rails5_shims'
50
-
51
- require 'fixtures/active_record'
52
-
53
- require 'fixtures/poro'
54
-
55
- ActiveSupport.on_load(:action_controller) do
56
- $action_controller_logger = ActiveModelSerializers.logger
57
- ActiveModelSerializers.logger = Logger.new(IO::NULL)
58
- end