swagger-serializer 0.5.2 → 0.6.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/ruby.yml +0 -0
- data/.gitignore +0 -0
- data/.prettierrc +0 -0
- data/.rspec +0 -0
- data/.rubocop.yml +0 -0
- data/.rubocop_airbnb.yml +0 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile +0 -0
- data/LICENSE +0 -0
- data/README.md +44 -3
- data/Rakefile +0 -0
- data/bin/console +0 -0
- data/bin/fmt +0 -0
- data/bin/setup +0 -0
- data/lib/swagger/schema/component.rb +0 -0
- data/lib/swagger/schema/content.rb +0 -0
- data/lib/swagger/schema/handle_servers.rb +0 -0
- data/lib/swagger/schema/header.rb +0 -0
- data/lib/swagger/schema/headers.rb +0 -0
- data/lib/swagger/schema/media_type/deserializer.rb +0 -0
- data/lib/swagger/schema/media_type/validator.rb +0 -0
- data/lib/swagger/schema/media_type.rb +0 -0
- data/lib/swagger/schema/operation.rb +0 -0
- data/lib/swagger/schema/parameter.rb +0 -0
- data/lib/swagger/schema/parameter_base.rb +0 -0
- data/lib/swagger/schema/parameters/deserializer.rb +0 -0
- data/lib/swagger/schema/parameters/validator.rb +0 -0
- data/lib/swagger/schema/parameters.rb +0 -0
- data/lib/swagger/schema/path_item.rb +0 -0
- data/lib/swagger/schema/request_body.rb +0 -0
- data/lib/swagger/schema/response.rb +0 -0
- data/lib/swagger/schema/responses.rb +0 -0
- data/lib/swagger/schema/schema_accessor.rb +0 -0
- data/lib/swagger/schema/server.rb +0 -0
- data/lib/swagger/schema/util.rb +0 -0
- data/lib/swagger/schema.rb +0 -0
- data/lib/swagger/serializer/model.rb +1 -1
- data/lib/swagger/serializer/rails_controller.rb +3 -3
- data/lib/swagger/serializer/store.rb +10 -8
- data/lib/swagger/serializer/version.rb +1 -1
- data/lib/swagger/serializer.rb +0 -0
- data/swagger-serializer.gemspec +0 -0
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 760497bfcf59acd2efe9eee552e575d03d7e44ceab60fcee05e145bd0d502c6c
|
4
|
+
data.tar.gz: 73359aa85e506537e7924bb3a7d6e9d9a9973667561886f59b2a71e5c6f6273b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4dfed538f9c7b71651a8bd024b115d407c77ce97a82a0cc1d2d5fca51f01b57faaf9c3c6567f3e881fcd1903c41acb486a48b08685688563ca28e17cc9cc08cc
|
7
|
+
data.tar.gz: 5a10fc7abff49e5a9846baa72289f8fb968ea3b1dfc88b5c3d65f1682f303f43f7b9ba5ef005db3b12b3ed561d4b84b379d18576feab80e5108e0449163cc439
|
data/.github/workflows/ruby.yml
CHANGED
File without changes
|
data/.gitignore
CHANGED
File without changes
|
data/.prettierrc
CHANGED
File without changes
|
data/.rspec
CHANGED
File without changes
|
data/.rubocop.yml
CHANGED
File without changes
|
data/.rubocop_airbnb.yml
CHANGED
File without changes
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
File without changes
|
data/LICENSE
CHANGED
File without changes
|
data/README.md
CHANGED
@@ -48,6 +48,7 @@ Use it in controllers.
|
|
48
48
|
# app/controllers/application_controller.rb
|
49
49
|
class ApplicationController < ActionController::Base
|
50
50
|
include Swagger::Serializer::RailsController
|
51
|
+
extend Swagger::DSL::RailsController
|
51
52
|
|
52
53
|
def render_ok(data)
|
53
54
|
render_as_schema 200, :json, data
|
@@ -67,21 +68,19 @@ class UsersController < ApplicationController
|
|
67
68
|
array! { cref! UserSerializer }
|
68
69
|
end
|
69
70
|
end
|
70
|
-
|
71
71
|
def index
|
72
72
|
render_ok User.all
|
73
73
|
end
|
74
74
|
|
75
75
|
swagger :show do
|
76
76
|
params do
|
77
|
-
path :id, schema: :integer
|
77
|
+
path :id, schema: :integer
|
78
78
|
end
|
79
79
|
|
80
80
|
render 200 do
|
81
81
|
cref! UserSerializer
|
82
82
|
end
|
83
83
|
end
|
84
|
-
|
85
84
|
def show
|
86
85
|
render_ok User.find(schema_params[:id])
|
87
86
|
end
|
@@ -104,12 +103,53 @@ class UsersController < ApplicationController
|
|
104
103
|
end
|
105
104
|
def create
|
106
105
|
@user = User.new(schema_params[:user])
|
106
|
+
|
107
107
|
if @user.save
|
108
108
|
render_ok @user
|
109
109
|
else
|
110
110
|
render_bad @user.errors
|
111
111
|
end
|
112
112
|
end
|
113
|
+
|
114
|
+
swagger :update do
|
115
|
+
params do
|
116
|
+
path :id, schema: :string
|
117
|
+
end
|
118
|
+
|
119
|
+
body format: [:form, :json] do
|
120
|
+
user :object do
|
121
|
+
name :string
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
render 200 do
|
126
|
+
cref! UserSerializer
|
127
|
+
end
|
128
|
+
render 400 do
|
129
|
+
additionalProperties! do
|
130
|
+
array! { string! }
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
def update
|
135
|
+
@user = User.find(schema_params[:id])
|
136
|
+
|
137
|
+
if @user.update(schema_params[:user])
|
138
|
+
render_ok @user
|
139
|
+
else
|
140
|
+
render_bad @user.errors
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
swagger :destroy do
|
145
|
+
params do
|
146
|
+
path :id, schema: :string
|
147
|
+
end
|
148
|
+
end
|
149
|
+
def destroy
|
150
|
+
@user.destroy!
|
151
|
+
head :no_content
|
152
|
+
end
|
113
153
|
end
|
114
154
|
```
|
115
155
|
|
@@ -119,6 +159,7 @@ Would you want to customize serialization?
|
|
119
159
|
# app/serializers/base_serializer.rb
|
120
160
|
class BaseSerializer
|
121
161
|
include Swagger::Serializer
|
162
|
+
extend Swagger::DSL::Serializer
|
122
163
|
end
|
123
164
|
```
|
124
165
|
|
data/Rakefile
CHANGED
File without changes
|
data/bin/console
CHANGED
File without changes
|
data/bin/fmt
CHANGED
File without changes
|
data/bin/setup
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/swagger/schema/util.rb
CHANGED
File without changes
|
data/lib/swagger/schema.rb
CHANGED
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Swagger::Serializer::Model
|
2
2
|
def serialize(name = self.class.name)
|
3
3
|
serializer =
|
4
|
-
Swagger::Schema.current.component(name).serializer(Swagger::Serializer::Store.current.
|
4
|
+
Swagger::Schema.current.component(name).serializer(Swagger::Serializer::Store.current.serialize_options)
|
5
5
|
serializer.serialize(self)
|
6
6
|
end
|
7
7
|
end
|
@@ -9,7 +9,7 @@ module Swagger::Serializer::RailsController
|
|
9
9
|
|
10
10
|
def render_serializer(code, format)
|
11
11
|
response_obj = swagger_operation.responses[code]
|
12
|
-
response_obj.content.send(format).serializer(Swagger::Serializer::Store.current.
|
12
|
+
response_obj.content.send(format).serializer(Swagger::Serializer::Store.current.serialize_options)
|
13
13
|
end
|
14
14
|
|
15
15
|
def swagger_operation
|
@@ -37,7 +37,7 @@ module Swagger::Serializer::RailsController
|
|
37
37
|
|
38
38
|
def parameter_deserializer
|
39
39
|
@parameter_deserializer ||=
|
40
|
-
swagger_operation.parameters.deserializer(Swagger::Serializer::Store.current.
|
40
|
+
swagger_operation.parameters.deserializer(Swagger::Serializer::Store.current.deserialize_options)
|
41
41
|
end
|
42
42
|
|
43
43
|
def body_params
|
@@ -48,7 +48,7 @@ module Swagger::Serializer::RailsController
|
|
48
48
|
@body_deserializer ||=
|
49
49
|
if request.content_type
|
50
50
|
swagger_operation.request_body.content[request.content_type]&.deserializer(
|
51
|
-
Swagger::Serializer::Store.current.
|
51
|
+
Swagger::Serializer::Store.current.deserialize_options,
|
52
52
|
)
|
53
53
|
end
|
54
54
|
end
|
@@ -7,16 +7,18 @@ module Swagger
|
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
-
attr_reader :
|
10
|
+
attr_reader :serialize_options, :deserialize_options
|
11
11
|
|
12
|
-
def initialize(
|
13
|
-
@
|
14
|
-
@
|
15
|
-
|
16
|
-
|
12
|
+
def initialize(serialize_options: nil, deserialize_options: nil)
|
13
|
+
@serialize_options = serialize_options || {}
|
14
|
+
@deserialize_options = deserialize_options || {}
|
15
|
+
|
16
|
+
@serialize_options[:inject_key] ||= "title"
|
17
|
+
@deserialize_options[:inject_key] ||= "title"
|
17
18
|
|
18
|
-
|
19
|
-
@
|
19
|
+
injectors = Injectors.new(cache: @options[:cache])
|
20
|
+
@serialize_options[:injectors] ||= injectors
|
21
|
+
@deserialize_options[:injectors] ||= injectors
|
20
22
|
end
|
21
23
|
|
22
24
|
class Injectors
|
data/lib/swagger/serializer.rb
CHANGED
File without changes
|
data/swagger-serializer.gemspec
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swagger-serializer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Narazaka
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json-schema-serializer
|
@@ -234,7 +234,7 @@ metadata:
|
|
234
234
|
homepage_uri: https://github.com/Narazaka/swagger-serializer
|
235
235
|
source_code_uri: https://github.com/Narazaka/swagger-serializer.git
|
236
236
|
changelog_uri: https://github.com/Narazaka/swagger-serializer/blob/master/CHANGELOG.md
|
237
|
-
documentation_uri: https://www.rubydoc.info/gems/swagger-serializer/0.
|
237
|
+
documentation_uri: https://www.rubydoc.info/gems/swagger-serializer/0.6.0
|
238
238
|
post_install_message:
|
239
239
|
rdoc_options: []
|
240
240
|
require_paths:
|
@@ -250,7 +250,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
250
250
|
- !ruby/object:Gem::Version
|
251
251
|
version: '0'
|
252
252
|
requirements: []
|
253
|
-
|
253
|
+
rubyforge_project:
|
254
|
+
rubygems_version: 2.7.6
|
254
255
|
signing_key:
|
255
256
|
specification_version: 4
|
256
257
|
summary: Swagger (OpenAPI 3) schema based Serializer
|