swagger-dsl 1.5.0 → 2.0.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ecb702f7ccc67a100818688d3485e5412f9d332af2bfa1b58b8f58c741504694
4
- data.tar.gz: 6ace6ed015f84d78cacbc7718045153e3d26f7fd578fa477177ee6a6f54b3474
3
+ metadata.gz: 2fdb0f1e88082ae965e4b6075a7dd8ef91efb750208b7f11fa5522a6be1f7144
4
+ data.tar.gz: 3bf9c27d7202419ce13b5fce8296edf1fbbdcbc7c391a15bc7aecd580a358a61
5
5
  SHA512:
6
- metadata.gz: 75a3957270bbe0bdc800f376438112f1dd3056ffee525c34672beb12b63a0441eee10badbaddb924e15358c0907ea96006ea23be278bff9a758c5c7d2f035dc8
7
- data.tar.gz: face316a38563b9b8f6e8f06cbe5c2ef0f7ef6bb59a5bc3c5d4802aedade9817284369ee992ed60149cee16aea8cf7f384201e508e0a8c5e8bba64c22883f46b
6
+ metadata.gz: 84423580c60508efe85948381313f60b075b892869c730b6e1e86bf4418914edcdf08314910c25634ee86117262c106293c7613a0059a2e6b1d8ff29801cc6c8
7
+ data.tar.gz: 413775b11c9556ce0366b0d61acd21aa63a445fbd6fc80e00cf6723527a93762ab80a45259734d84e5119a1f91e24337f4678ca021b9e6ab479b7bea06f5f6d4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 2.0.1
4
+
5
+ - fix(brake): nested class naming
6
+
7
+ ## 2.0.0
8
+
9
+ - fix(brake): adjust to OAS3 spec
10
+
3
11
  ## 1.4.0
4
12
 
5
13
  - add: lazy_define_paths for Rails eager_load
@@ -18,7 +18,7 @@ module Swagger
18
18
  private
19
19
 
20
20
  def serializer_name(name)
21
- name.to_s.sub(/(?:Serializer)?$/, "Serializer")
21
+ name.to_s.gsub(/-/, '::').sub(/(?:Serializer)?$/, "Serializer")
22
22
  end
23
23
  end
24
24
  end
@@ -13,7 +13,7 @@ module Swagger
13
13
  )
14
14
  @inject_key = inject_key
15
15
  @default_dsl = default_dsl
16
- @dsl_options ||= { reference_name: ->(name) { name.sub(/Serializer$/, "") } }
16
+ @dsl_options ||= { reference_name: ->(name) { name.sub(/Serializer$/, "").gsub(/::/, '-') } }
17
17
  @eager = eager
18
18
  @default_required = default_required
19
19
  @lazy_define_paths = lazy_define_paths
@@ -5,7 +5,7 @@ module Jimmy
5
5
  class SchemaCreation
6
6
  module Referencing
7
7
  def component(id)
8
- name = "#/components/#{id}"
8
+ name = "#/components/schemas/#{id}"
9
9
  reference_name = Swagger::DSL.current.config.dsl_options[:reference_name]
10
10
  reference_name ? reference_name.call(name) : name
11
11
  end
@@ -16,7 +16,6 @@ module Swagger
16
16
 
17
17
  def initialize(operation_id, format: :json, &block)
18
18
  self["operationId"] = operation_id
19
- self["requestBody"] = { "content" => {}, "required" => true }
20
19
  self["responses"] = {}
21
20
  self["parameters"] = []
22
21
  self["tags"] = []
@@ -42,20 +41,24 @@ module Swagger
42
41
 
43
42
  def body(format: @format, dsl: nil, &block)
44
43
  formats(format).each do |f|
44
+ self["requestBody"] ||= { "required" => true }
45
+ self["requestBody"]["content"] ||= {}
45
46
  self["requestBody"]["content"][f] = { "schema" => Swagger::DSL::JsonSchema.by(dsl).dsl(&block) }
46
47
  end
47
48
  end
48
49
 
49
50
  def body_description(body_description = nil)
51
+ self["requestBody"] ||= { "required" => true }
50
52
  self["requestBody"]["description"] = body_description
51
53
  end
52
54
 
53
55
  def body_optional(optional = true)
56
+ self["requestBody"] ||= {}
54
57
  self["requestBody"]["required"] = optional
55
58
  end
56
59
 
57
60
  def render(code = 200, format: @format, dsl: nil, &block)
58
- self["responses"][code] ||= { "content" => {} }
61
+ self["responses"][code] ||= { "content" => {}, "description" => "#{code}" }
59
62
  formats(format).each do |f|
60
63
  self["responses"][code]["content"][f] = { "schema" => Swagger::DSL::JsonSchema.by(dsl).dsl(&block) }
61
64
  end
@@ -5,8 +5,8 @@ module Swagger
5
5
  class DSL < Hash
6
6
  module Serializer
7
7
  def swagger(dsl: nil, &block)
8
- name = self.name.sub(/Serializer$/, "")
9
- Swagger::DSL.current["components"][name] =
8
+ name = self.name.sub(/Serializer$/, "").gsub(/::/, '-')
9
+ Swagger::DSL.current["components"]["schemas"][name] =
10
10
  Swagger::DSL::JsonSchema.by(dsl).dsl(&block).merge(Swagger::DSL.current.config.inject_key => name)
11
11
  end
12
12
 
@@ -1,5 +1,5 @@
1
1
  module Swagger
2
2
  class DSL < Hash
3
- VERSION = "1.5.0".freeze
3
+ VERSION = "2.0.1".freeze
4
4
  end
5
5
  end
data/lib/swagger/dsl.rb CHANGED
@@ -20,9 +20,10 @@ module Swagger
20
20
  def initialize(schema = nil, config: Config.new)
21
21
  merge!(schema || {})
22
22
  self["openapi"] ||= "3.0.0"
23
- self["info"] ||= {}
23
+ self["info"] ||= { "title" => "OpenAPI schema", "version" => "0.0.0" }
24
24
  self["paths"] ||= {}
25
- self["components"] = Components[self["components"] || {}]
25
+ self["components"] ||= {}
26
+ self["components"]["schemas"] = Components[self["components"]["schemas"] || {}]
26
27
  @config = config
27
28
  @define_paths_procs = []
28
29
  end
data/swagger-dsl.gemspec CHANGED
@@ -28,10 +28,10 @@ Gem::Specification.new do |spec|
28
28
  spec.require_paths = %w[lib]
29
29
 
30
30
  spec.add_dependency "jimmy", "~> 0.5"
31
- spec.add_dependency "json-schema-subset-dsl", "~> 1.2"
31
+ spec.add_dependency "json-schema-subset-dsl", "~> 2.0"
32
32
  spec.add_dependency "hana", "~> 1.3"
33
33
  spec.add_dependency "json_refs", "~> 0.1"
34
- spec.add_dependency "activesupport", "~> 6.0"
34
+ spec.add_dependency "activesupport", ">= 4.0.2"
35
35
  spec.add_development_dependency "bundler", "~> 2.0"
36
36
  spec.add_development_dependency "rake", "~> 13.0"
37
37
  spec.add_development_dependency "rspec", "~> 3.9"
@@ -42,4 +42,6 @@ Gem::Specification.new do |spec|
42
42
  spec.add_development_dependency "rubocop-config-prettier", "~> 0.1"
43
43
  spec.add_development_dependency "yard", "~> 0.9"
44
44
  spec.add_development_dependency "pry-byebug", "~> 3.7"
45
+ spec.add_development_dependency "json_spec", "~> 1"
46
+ spec.add_development_dependency "openapi3_parser", "~> 0.9.1"
45
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swagger-dsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Narazaka
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-09 00:00:00.000000000 Z
11
+ date: 2022-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jimmy
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.2'
33
+ version: '2.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.2'
40
+ version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: hana
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -70,16 +70,16 @@ dependencies:
70
70
  name: activesupport
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '6.0'
75
+ version: 4.0.2
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '6.0'
82
+ version: 4.0.2
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -220,7 +220,35 @@ dependencies:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
222
  version: '3.7'
223
- description:
223
+ - !ruby/object:Gem::Dependency
224
+ name: json_spec
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: '1'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: '1'
237
+ - !ruby/object:Gem::Dependency
238
+ name: openapi3_parser
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: 0.9.1
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: 0.9.1
251
+ description:
224
252
  email:
225
253
  - info@narazaka.net
226
254
  executables: []
@@ -264,8 +292,8 @@ metadata:
264
292
  homepage_uri: https://github.com/Narazaka/swagger-dsl
265
293
  source_code_uri: https://github.com/Narazaka/swagger-dsl.git
266
294
  changelog_uri: https://github.com/Narazaka/swagger-dsl/blob/master/CHANGELOG.md
267
- documentation_uri: https://www.rubydoc.info/gems/swagger-dsl/1.5.0
268
- post_install_message:
295
+ documentation_uri: https://www.rubydoc.info/gems/swagger-dsl/2.0.1
296
+ post_install_message:
269
297
  rdoc_options: []
270
298
  require_paths:
271
299
  - lib
@@ -280,8 +308,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
280
308
  - !ruby/object:Gem::Version
281
309
  version: '0'
282
310
  requirements: []
283
- rubygems_version: 3.0.3
284
- signing_key:
311
+ rubygems_version: 3.1.4
312
+ signing_key:
285
313
  specification_version: 4
286
314
  summary: Swagger (OpenAPI 3) DSL
287
315
  test_files: []