media_types-serialization 0.8.0 → 1.1.0
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/.github/workflows/ci.yml +16 -3
- data/.prettierrc +1 -0
- data/CHANGELOG.md +42 -0
- data/CODE_OF_CONDUCT.md +74 -74
- data/Gemfile.lock +74 -83
- data/README.md +691 -179
- data/lib/media_types/problem.rb +64 -0
- data/lib/media_types/serialization.rb +497 -173
- data/lib/media_types/serialization/base.rb +115 -91
- data/lib/media_types/serialization/error.rb +186 -0
- data/lib/media_types/serialization/fake_validator.rb +52 -0
- data/lib/media_types/serialization/serialization_dsl.rb +117 -0
- data/lib/media_types/serialization/serialization_registration.rb +245 -0
- data/lib/media_types/serialization/serializers/api_viewer.rb +133 -0
- data/lib/media_types/serialization/serializers/common_css.rb +168 -0
- data/lib/media_types/serialization/serializers/endpoint_description_serializer.rb +80 -0
- data/lib/media_types/serialization/serializers/fallback_not_acceptable_serializer.rb +85 -0
- data/lib/media_types/serialization/serializers/fallback_unsupported_media_type_serializer.rb +58 -0
- data/lib/media_types/serialization/serializers/input_validation_error_serializer.rb +89 -0
- data/lib/media_types/serialization/serializers/problem_serializer.rb +100 -0
- data/lib/media_types/serialization/utils/accept_header.rb +77 -0
- data/lib/media_types/serialization/utils/accept_language_header.rb +82 -0
- data/lib/media_types/serialization/utils/header_list.rb +89 -0
- data/lib/media_types/serialization/version.rb +1 -1
- data/media_types-serialization.gemspec +48 -50
- metadata +48 -79
- data/.travis.yml +0 -17
- data/lib/generators/media_types/serialization/api_viewer/api_viewer_generator.rb +0 -25
- data/lib/generators/media_types/serialization/api_viewer/templates/api_viewer.html.erb +0 -98
- data/lib/generators/media_types/serialization/api_viewer/templates/initializer.rb +0 -33
- data/lib/generators/media_types/serialization/api_viewer/templates/template_controller.rb +0 -23
- data/lib/media_types/serialization/media_type/register.rb +0 -4
- data/lib/media_types/serialization/migrations_command.rb +0 -38
- data/lib/media_types/serialization/migrations_support.rb +0 -50
- data/lib/media_types/serialization/mime_type_support.rb +0 -64
- data/lib/media_types/serialization/no_content_type_given.rb +0 -11
- data/lib/media_types/serialization/no_media_type_serializers.rb +0 -11
- data/lib/media_types/serialization/no_serializer_for_content_type.rb +0 -15
- data/lib/media_types/serialization/renderer.rb +0 -41
- data/lib/media_types/serialization/renderer/register.rb +0 -4
- data/lib/media_types/serialization/wrapper.rb +0 -13
- data/lib/media_types/serialization/wrapper/html_wrapper.rb +0 -45
- data/lib/media_types/serialization/wrapper/media_collection_wrapper.rb +0 -59
- data/lib/media_types/serialization/wrapper/media_index_wrapper.rb +0 -59
- data/lib/media_types/serialization/wrapper/media_object_wrapper.rb +0 -55
- data/lib/media_types/serialization/wrapper_support.rb +0 -38
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'active_support/concern'
|
2
|
-
|
3
|
-
require 'media_types/views'
|
4
|
-
require 'media_types/serialization/wrapper'
|
5
|
-
|
6
|
-
module MediaTypes
|
7
|
-
module Serialization
|
8
|
-
module WrapperSupport
|
9
|
-
extend ActiveSupport::Concern
|
10
|
-
|
11
|
-
AUTO_WRAPPER_MAPPING = {
|
12
|
-
::MediaTypes::INDEX_VIEW => ::MediaTypes::Serialization::Wrapper::MediaIndexWrapper,
|
13
|
-
::MediaTypes::COLLECTION_VIEW => ::MediaTypes::Serialization::Wrapper::MediaCollectionWrapper,
|
14
|
-
::MediaTypes::CREATE_VIEW => ::MediaTypes::Serialization::Wrapper::MediaObjectWrapper,
|
15
|
-
nil => ::MediaTypes::Serialization::Wrapper::MediaObjectWrapper
|
16
|
-
}.freeze
|
17
|
-
|
18
|
-
DEFAULT_WRAPPER = ::MediaTypes::Serialization::Wrapper::MediaObjectWrapper
|
19
|
-
|
20
|
-
class_methods do
|
21
|
-
def wrap(serializer, view: nil)
|
22
|
-
wrapper = AUTO_WRAPPER_MAPPING.fetch(String(view)) { DEFAULT_WRAPPER }
|
23
|
-
wrapper.new(serializer)
|
24
|
-
end
|
25
|
-
|
26
|
-
def root_key(view:)
|
27
|
-
chomped = name.demodulize.chomp(::MediaTypes::Serialization.common_suffix || 'Serializer')
|
28
|
-
base = (chomped.presence || parent.name.demodulize).underscore
|
29
|
-
collection_view?(view) ? base.pluralize : base.singularize
|
30
|
-
end
|
31
|
-
|
32
|
-
def collection_view?(view)
|
33
|
-
view == ::MediaTypes::INDEX_VIEW || view == ::MediaTypes::COLLECTION_VIEW
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|