swagger-dsl 1.5.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: []