swagger-serializer 0.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.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.prettierrc +3 -0
  4. data/.rspec +4 -0
  5. data/.rubocop.yml +25 -0
  6. data/.rubocop_airbnb.yml +2 -0
  7. data/.travis.yml +7 -0
  8. data/CHANGELOG.md +0 -0
  9. data/Gemfile +6 -0
  10. data/LICENSE +20 -0
  11. data/README.md +162 -0
  12. data/Rakefile +9 -0
  13. data/bin/console +10 -0
  14. data/bin/fmt +9 -0
  15. data/bin/setup +8 -0
  16. data/lib/swagger/schema/component.rb +17 -0
  17. data/lib/swagger/schema/content.rb +25 -0
  18. data/lib/swagger/schema/handle_servers.rb +20 -0
  19. data/lib/swagger/schema/header.rb +7 -0
  20. data/lib/swagger/schema/headers.rb +37 -0
  21. data/lib/swagger/schema/media_type/deserializer.rb +12 -0
  22. data/lib/swagger/schema/media_type/validator.rb +18 -0
  23. data/lib/swagger/schema/media_type.rb +30 -0
  24. data/lib/swagger/schema/operation.rb +35 -0
  25. data/lib/swagger/schema/parameter.rb +15 -0
  26. data/lib/swagger/schema/parameter_base.rb +31 -0
  27. data/lib/swagger/schema/parameters/deserializer.rb +33 -0
  28. data/lib/swagger/schema/parameters/validator.rb +18 -0
  29. data/lib/swagger/schema/parameters.rb +73 -0
  30. data/lib/swagger/schema/path_item.rb +33 -0
  31. data/lib/swagger/schema/request_body.rb +21 -0
  32. data/lib/swagger/schema/response.rb +31 -0
  33. data/lib/swagger/schema/responses.rb +16 -0
  34. data/lib/swagger/schema/schema_accessor.rb +23 -0
  35. data/lib/swagger/schema/server.rb +25 -0
  36. data/lib/swagger/schema/util.rb +23 -0
  37. data/lib/swagger/schema.rb +44 -0
  38. data/lib/swagger/serializer/model.rb +7 -0
  39. data/lib/swagger/serializer/rails_controller.rb +18 -0
  40. data/lib/swagger/serializer/store.rb +27 -0
  41. data/lib/swagger/serializer/version.rb +5 -0
  42. data/lib/swagger/serializer.rb +36 -0
  43. data/swagger-serializer.gemspec +44 -0
  44. metadata +255 -0
@@ -0,0 +1,73 @@
1
+ require "json/schema/serializer"
2
+ require_relative "./util"
3
+ require_relative "./parameter"
4
+ require_relative "./parameters/deserializer"
5
+ require_relative "./parameters/validator"
6
+
7
+ module Swagger
8
+ class Schema
9
+ class Parameters < Array
10
+ def [](index)
11
+ parameter = super(index)
12
+ Parameter.new(parameter) if parameter
13
+ end
14
+
15
+ def by_name(name)
16
+ name_str = name.to_s
17
+ parameter = find { |param| Util.try_hash(param, :name).to_s == name_str }
18
+ Parameter.new(parameter) if parameter
19
+ end
20
+
21
+ def query
22
+ select_by("query")
23
+ end
24
+
25
+ def header
26
+ select_by("header")
27
+ end
28
+
29
+ def path
30
+ select_by("path")
31
+ end
32
+
33
+ def cookie
34
+ select_by("cookie")
35
+ end
36
+
37
+ def select_by(in_place)
38
+ in_place_str = in_place.to_s
39
+ Parameters.new(select { |param| Util.try_hash(param, :in).to_s == in_place_str })
40
+ end
41
+
42
+ def to_json_schema
43
+ properties = {}
44
+ required = []
45
+ each do |param|
46
+ parameter = Parameter.new(param)
47
+ name = parameter.name.to_s
48
+ properties[name] = parameter.to_json_schema
49
+ required << name if parameter.required || parameter.path?
50
+ if Util.try_hash(properties[name], :type).to_s == "string" && !parameter.allowEmptyValue &&
51
+ Util.try_hash(properties[name], :minLength).nil?
52
+ properties[name]["minLength"] = 1
53
+ end
54
+ end
55
+ schema = { "type" => "object", "properties" => properties }
56
+ schema["required"] = required unless required.empty?
57
+ schema
58
+ end
59
+
60
+ def serializer(options = {})
61
+ JSON::Schema::Serializer.new(to_json_schema, options)
62
+ end
63
+
64
+ def deserializer
65
+ Deserializer.new(self)
66
+ end
67
+
68
+ def validator
69
+ Validator.new(self)
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,33 @@
1
+ require_relative "./util"
2
+ require_relative "./operation"
3
+ require_relative "./schema_accessor"
4
+ require_relative "./parameters"
5
+ require_relative "./handle_servers"
6
+
7
+ module Swagger
8
+ class Schema
9
+ class PathItem
10
+ extend SchemaAccessor
11
+ include HandleServers
12
+
13
+ METHODS = %i[get put post delete options head patch trace].freeze
14
+
15
+ def initialize(schema)
16
+ @schema = schema
17
+ end
18
+
19
+ define_schema_accessor :summary, :description
20
+
21
+ def parameters
22
+ Parameters.new(Util.try_hash(@schema, :parameters) || [])
23
+ end
24
+
25
+ METHODS.each do |method|
26
+ define_method(method) do
27
+ operation = Util.try_hash(@schema, method)
28
+ Operation.new(operation, self) if operation
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,21 @@
1
+ require_relative "./util"
2
+ require_relative "./schema_accessor"
3
+ require_relative "./content"
4
+
5
+ module Swagger
6
+ class Schema
7
+ class RequestBody
8
+ extend SchemaAccessor
9
+
10
+ def initialize(schema)
11
+ @schema = schema
12
+ end
13
+
14
+ define_schema_accessor :description, :required
15
+
16
+ def content
17
+ Content.new(Util.try_hash(@schema, :content))
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,31 @@
1
+ require_relative "./util"
2
+ require_relative "./schema_accessor"
3
+ require_relative "./content"
4
+ require_relative "./headers"
5
+
6
+ module Swagger
7
+ class Schema
8
+ class Response
9
+ extend SchemaAccessor
10
+
11
+ def initialize(schema)
12
+ @schema = schema
13
+ end
14
+
15
+ define_schema_accessor :description, :required
16
+
17
+ def headers
18
+ Headers.new(Util.try_hash(@schema, :headers) || [])
19
+ end
20
+
21
+ def content
22
+ Content.new(Util.try_hash(@schema, :content))
23
+ end
24
+
25
+ def links
26
+ # TODO
27
+ Util.try_hash(@schema, :links)
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,16 @@
1
+ require_relative "./util"
2
+ require_relative "./response"
3
+
4
+ module Swagger
5
+ class Schema
6
+ class Responses
7
+ def initialize(schema)
8
+ @schema = schema
9
+ end
10
+
11
+ def [](code)
12
+ Response.new(Util.try_hash_with_integer(@schema, code))
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,23 @@
1
+ require_relative "./util"
2
+ require "snake_camel/methods"
3
+
4
+ module Swagger
5
+ class Schema
6
+ module SchemaAccessor
7
+ private
8
+
9
+ def define_schema_accessor(*camel_names)
10
+ camel_names.flatten.each do |name|
11
+ define_method(name) { Util.try_hash(@schema, name) }
12
+
13
+ alias_case name
14
+ end
15
+ end
16
+
17
+ def alias_case(camel)
18
+ snake = SnakeCamel::Methods.snakecase(camel.to_s)
19
+ alias_method snake, camel unless snake == camel
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ require_relative "./util"
2
+ require_relative "./schema_accessor"
3
+
4
+ module Swagger
5
+ class Schema
6
+ class Server
7
+ extend SchemaAccessor
8
+
9
+ def initialize(schema)
10
+ @schema = schema
11
+ end
12
+
13
+ define_schema_accessor :url, :description, :variables
14
+
15
+ def complete_url(url_variables = {})
16
+ use_url = url
17
+ (variables || {}).each do |name, options|
18
+ variable = Util.try_hash(url_variables, name) || Util.try_hash(options, :default)
19
+ use_url.gsub!("{#{name}}", variable.to_s)
20
+ end
21
+ use_url
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,23 @@
1
+ module Swagger
2
+ class Schema
3
+ class Util
4
+ class << self
5
+ def try_hash(obj, name)
6
+ if obj.respond_to?(:"[]")
7
+ obj[name] || obj[name.is_a?(Symbol) ? name.to_s : name.to_sym]
8
+ elsif obj.respond_to?(name)
9
+ obj.send(name)
10
+ end
11
+ end
12
+
13
+ def try_hash_with_integer(obj, name)
14
+ if obj.respond_to?(:"[]")
15
+ obj[name.to_i] || obj[name.to_s] || obj[name.to_s.to_sym]
16
+ elsif obj.respond_to?(name)
17
+ obj.send(name)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,44 @@
1
+ require_relative "./schema/component"
2
+ require_relative "./schema/path_item"
3
+ require_relative "./schema/server"
4
+ require_relative "./schema/schema_accessor"
5
+ require_relative "./schema/handle_servers"
6
+ require_relative "./schema/util"
7
+
8
+ module Swagger
9
+ class Schema
10
+ extend SchemaAccessor
11
+ include HandleServers
12
+
13
+ attr_reader :schema
14
+ attr_reader :lazy_schema
15
+
16
+ class << self
17
+ attr_accessor :current
18
+
19
+ def load_file(filepath)
20
+ new(YAML.load_file(filepath)) # rubocop:disable Airbnb/UnsafeYamlMarshal
21
+ end
22
+
23
+ def load_file_to_current(file_path)
24
+ @current = load_file(file_path)
25
+ end
26
+ end
27
+
28
+ def initialize(schema)
29
+ @schema = schema
30
+ end
31
+
32
+ define_schema_accessor :paths, :components
33
+
34
+ def path(path)
35
+ path_item = Util.try_hash(paths, path)
36
+ PathItem.new(path_item) if path_item
37
+ end
38
+
39
+ def component(name)
40
+ component = Util.try_hash(components, name)
41
+ Component.new(component) if component
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,7 @@
1
+ module Swagger::Serializer::Model
2
+ def serialize(name = self.class.name)
3
+ serializer =
4
+ Swagger::Schema.current.component(name).serializer(Swagger::Serializer::Store.current.serializer_options)
5
+ serializer.serialize(self)
6
+ end
7
+ end
@@ -0,0 +1,18 @@
1
+ module Swagger::Serializer::RailsController
2
+ private
3
+
4
+ def render_as_schema(code, format, data)
5
+ route = swagger_schema_route_from_request
6
+ operation = Swagger::Schema.current.path(route[:path]).send(route[:method])
7
+ response_obj = operation.responses[code]
8
+ serializer = response_obj.content.send(format).serializer(Swagger::Serializer::Store.current.serializer_options)
9
+ render format => serializer.serialize(data)
10
+ end
11
+
12
+ def swagger_schema_route_from_request
13
+ Rails.application.routes.router.recognize(request) do |route|
14
+ path = route.path.spec.to_s.sub("(.:format)", "").gsub(/:(\w+)/, "{\\1}")
15
+ return { path: path, method: request.method.underscore }
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,27 @@
1
+ module Swagger
2
+ module Serializer
3
+ class Store
4
+ class << self
5
+ def current
6
+ @current ||= new
7
+ end
8
+ end
9
+
10
+ attr_reader :serializers
11
+ attr_accessor :inject_key
12
+
13
+ def initialize(serializers = {}, inject_key = "title")
14
+ @serializers = serializers
15
+ @inject_key = inject_key
16
+ end
17
+
18
+ def serializer_options
19
+ { inject_key: inject_key, injectors: @serializers }
20
+ end
21
+
22
+ def <<(klass)
23
+ @serializers[klass.name.sub(/Serializer$/, "")] = klass
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,5 @@
1
+ module Swagger
2
+ module Serializer
3
+ VERSION = "0.1.0".freeze
4
+ end
5
+ end
@@ -0,0 +1,36 @@
1
+ require_relative "./serializer/version"
2
+ require_relative "./serializer/rails_controller"
3
+ require_relative "./serializer/model"
4
+ require_relative "./serializer/store"
5
+ require_relative "./schema"
6
+ require "yaml"
7
+
8
+ module Swagger
9
+ module Serializer
10
+ def self.included(klass)
11
+ Store.current << klass
12
+
13
+ def klass.inherited(klass)
14
+ Store.current << klass
15
+ end
16
+ end
17
+
18
+ def initialize(model)
19
+ @model = model
20
+ end
21
+
22
+ def respond_to_missing?(name, include_private)
23
+ if name == :"[]"
24
+ false
25
+ elsif @model.respond_to?(name)
26
+ true
27
+ else
28
+ false
29
+ end
30
+ end
31
+
32
+ def method_missing(name, *args)
33
+ @model.public_send(name, *args)
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,44 @@
1
+ lib = File.expand_path("../lib", __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require "swagger/serializer/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "swagger-serializer"
7
+ spec.version = Swagger::Serializer::VERSION
8
+ spec.authors = %w[Narazaka]
9
+ spec.email = %w[info@narazaka.net]
10
+
11
+ spec.summary = "Swagger (OpenAPI 3) schema based Serializer"
12
+ spec.homepage = "https://github.com/Narazaka/swagger-serializer"
13
+
14
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
15
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
16
+ if spec.respond_to?(:metadata)
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = "https://github.com/Narazaka/swagger-serializer.git"
19
+ spec.metadata["changelog_uri"] = "https://github.com/Narazaka/swagger-serializer/blob/master/CHANGELOG.md"
20
+ end
21
+
22
+ # Specify which files should be added to the gem when it is released.
23
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
+ spec.files =
25
+ Dir.chdir(File.expand_path("..", __FILE__)) do
26
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
27
+ end
28
+ spec.bindir = "exe"
29
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
+ spec.require_paths = %w[lib]
31
+
32
+ spec.add_dependency "json-schema-serializer", "~> 1.2"
33
+ spec.add_dependency "snake_camel", "~> 1.1"
34
+ spec.add_development_dependency "bundler", "~> 2"
35
+ spec.add_development_dependency "rake", "~> 10.5"
36
+ spec.add_development_dependency "rspec", "~> 3.9"
37
+ spec.add_development_dependency "rspec-power_assert", "~> 1.1"
38
+ spec.add_development_dependency "rubocop", "~> 0.76"
39
+ spec.add_development_dependency "rubocop-airbnb", "~> 3"
40
+ spec.add_development_dependency "prettier", ">= 0.16"
41
+ spec.add_development_dependency "rubocop-config-prettier", "~> 0.1"
42
+ spec.add_development_dependency "pry-byebug", "~> 3.7"
43
+ spec.add_development_dependency "yard", "~> 0.9"
44
+ end
metadata ADDED
@@ -0,0 +1,255 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: swagger-serializer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Narazaka
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-11-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json-schema-serializer
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: snake_camel
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.5'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.5'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.9'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.9'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-power_assert
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.1'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.76'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.76'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop-airbnb
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '3'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '3'
125
+ - !ruby/object:Gem::Dependency
126
+ name: prettier
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0.16'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0.16'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop-config-prettier
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '0.1'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '0.1'
153
+ - !ruby/object:Gem::Dependency
154
+ name: pry-byebug
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '3.7'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '3.7'
167
+ - !ruby/object:Gem::Dependency
168
+ name: yard
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '0.9'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '0.9'
181
+ description:
182
+ email:
183
+ - info@narazaka.net
184
+ executables: []
185
+ extensions: []
186
+ extra_rdoc_files: []
187
+ files:
188
+ - ".gitignore"
189
+ - ".prettierrc"
190
+ - ".rspec"
191
+ - ".rubocop.yml"
192
+ - ".rubocop_airbnb.yml"
193
+ - ".travis.yml"
194
+ - CHANGELOG.md
195
+ - Gemfile
196
+ - LICENSE
197
+ - README.md
198
+ - Rakefile
199
+ - bin/console
200
+ - bin/fmt
201
+ - bin/setup
202
+ - lib/swagger/schema.rb
203
+ - lib/swagger/schema/component.rb
204
+ - lib/swagger/schema/content.rb
205
+ - lib/swagger/schema/handle_servers.rb
206
+ - lib/swagger/schema/header.rb
207
+ - lib/swagger/schema/headers.rb
208
+ - lib/swagger/schema/media_type.rb
209
+ - lib/swagger/schema/media_type/deserializer.rb
210
+ - lib/swagger/schema/media_type/validator.rb
211
+ - lib/swagger/schema/operation.rb
212
+ - lib/swagger/schema/parameter.rb
213
+ - lib/swagger/schema/parameter_base.rb
214
+ - lib/swagger/schema/parameters.rb
215
+ - lib/swagger/schema/parameters/deserializer.rb
216
+ - lib/swagger/schema/parameters/validator.rb
217
+ - lib/swagger/schema/path_item.rb
218
+ - lib/swagger/schema/request_body.rb
219
+ - lib/swagger/schema/response.rb
220
+ - lib/swagger/schema/responses.rb
221
+ - lib/swagger/schema/schema_accessor.rb
222
+ - lib/swagger/schema/server.rb
223
+ - lib/swagger/schema/util.rb
224
+ - lib/swagger/serializer.rb
225
+ - lib/swagger/serializer/model.rb
226
+ - lib/swagger/serializer/rails_controller.rb
227
+ - lib/swagger/serializer/store.rb
228
+ - lib/swagger/serializer/version.rb
229
+ - swagger-serializer.gemspec
230
+ homepage: https://github.com/Narazaka/swagger-serializer
231
+ licenses: []
232
+ metadata:
233
+ homepage_uri: https://github.com/Narazaka/swagger-serializer
234
+ source_code_uri: https://github.com/Narazaka/swagger-serializer.git
235
+ changelog_uri: https://github.com/Narazaka/swagger-serializer/blob/master/CHANGELOG.md
236
+ post_install_message:
237
+ rdoc_options: []
238
+ require_paths:
239
+ - lib
240
+ required_ruby_version: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - ">="
243
+ - !ruby/object:Gem::Version
244
+ version: '0'
245
+ required_rubygems_version: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - ">="
248
+ - !ruby/object:Gem::Version
249
+ version: '0'
250
+ requirements: []
251
+ rubygems_version: 3.0.3
252
+ signing_key:
253
+ specification_version: 4
254
+ summary: Swagger (OpenAPI 3) schema based Serializer
255
+ test_files: []