swagger-dsl 1.1.0 → 1.2.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/CHANGELOG.md +6 -2
- data/lib/swagger/dsl/config.rb +3 -2
- data/lib/swagger/dsl/operation.rb +3 -2
- data/lib/swagger/dsl/parameter.rb +13 -2
- data/lib/swagger/dsl/parameters.rb +3 -3
- data/lib/swagger/dsl/parameters_in_type.rb +3 -2
- data/lib/swagger/dsl/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b131abdb9e40b72e5958ab7c2a7e34b42cf21e162ef01726feab2585b1e6e450
|
4
|
+
data.tar.gz: dec48a00848fc65cf08fa11ebb4369cfa9793491ea10884bc472eb848ddeee06
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ab34c7b9ca4de4d1dd3eb8bcabfdfb06a6090d6c3cace125abe1d67511bc00c876303bce1f2825a70e5573b737477f8c849e8d4539478c3bcfe5187e0f34a10
|
7
|
+
data.tar.gz: da64cb44e3c4bee8ee6f4249be6393c86b181729fc2cf48e245279f94c883df775a9234f90ede60c35862e3051296b86ffdf8d376084aab398c68a8e85156f23
|
data/CHANGELOG.md
CHANGED
data/lib/swagger/dsl/config.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
module Swagger
|
2
2
|
class DSL
|
3
3
|
class Config
|
4
|
-
attr_accessor :inject_key, :default_dsl, :dsl_options, :eager
|
4
|
+
attr_accessor :inject_key, :default_dsl, :dsl_options, :eager, :default_required
|
5
5
|
|
6
|
-
def initialize(inject_key: "title", default_dsl: nil, dsl_options: nil, eager: false)
|
6
|
+
def initialize(inject_key: "title", default_dsl: nil, dsl_options: nil, eager: false, default_required: true)
|
7
7
|
@inject_key = inject_key
|
8
8
|
@default_dsl = default_dsl
|
9
9
|
@dsl_options ||= { reference_name: ->(name) { name.sub(/Serializer$/, "") } }
|
10
10
|
@eager = eager
|
11
|
+
@default_required = default_required
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require_relative "./json_schema"
|
2
2
|
require_relative "./parameters"
|
3
|
+
require_relative "../dsl"
|
3
4
|
|
4
5
|
module Swagger
|
5
6
|
class DSL
|
@@ -22,8 +23,8 @@ module Swagger
|
|
22
23
|
instance_eval(&block)
|
23
24
|
end
|
24
25
|
|
25
|
-
def params(&block)
|
26
|
-
self["parameters"] = Parameters.new(&block)
|
26
|
+
def params(default_required: Swagger::DSL.current.config.default_required, &block)
|
27
|
+
self["parameters"] = Parameters.new(default_required: default_required, &block)
|
27
28
|
end
|
28
29
|
|
29
30
|
def body(format: @format, dsl: nil, &block)
|
@@ -3,11 +3,14 @@ require_relative "./json_schema"
|
|
3
3
|
module Swagger
|
4
4
|
class DSL
|
5
5
|
class Parameter < Hash
|
6
|
-
def initialize(*args, &block)
|
6
|
+
def initialize(options, *args, &block)
|
7
|
+
@default_required = options[:default_required]
|
8
|
+
self["required"] = true if @default_required
|
7
9
|
unless args.empty?
|
8
10
|
self["name"] = args.first
|
9
11
|
args[1..-1].each { |arg| merge!(arg.map { |k, v| [k.to_s, v] }.to_h) }
|
10
12
|
canonical_schema!
|
13
|
+
delete("required") unless self["required"]
|
11
14
|
end
|
12
15
|
instance_eval(&block) if block_given?
|
13
16
|
end
|
@@ -17,10 +20,18 @@ module Swagger
|
|
17
20
|
canonical_schema!
|
18
21
|
end
|
19
22
|
|
20
|
-
%w[description
|
23
|
+
%w[description deprecated allowEmptyValue style explode allowReserved example examples].each do |name|
|
21
24
|
define_method(name) { |value| self[name] = value }
|
22
25
|
end
|
23
26
|
|
27
|
+
def required(value)
|
28
|
+
if value
|
29
|
+
self["required"] = true
|
30
|
+
else
|
31
|
+
delete("required")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
24
35
|
private
|
25
36
|
|
26
37
|
def canonical_schema!
|
@@ -3,14 +3,14 @@ require_relative "./parameters_in_type"
|
|
3
3
|
module Swagger
|
4
4
|
class DSL
|
5
5
|
class Parameters < Array
|
6
|
-
def initialize(
|
7
|
-
@
|
6
|
+
def initialize(default_required:, &block)
|
7
|
+
@default_required = default_required
|
8
8
|
instance_eval(&block)
|
9
9
|
end
|
10
10
|
|
11
11
|
%i[path query header cookie].each do |in_type|
|
12
12
|
define_method(in_type) do |*args, &block|
|
13
|
-
args.empty? ? ParametersInType.new(self, in_type, &block) : self << Parameter.new(*args, in: in_type, &block)
|
13
|
+
args.empty? ? ParametersInType.new(self, in_type, { default_required: @default_required }, &block) : self << Parameter.new({ default_required: @default_required }, *args, in: in_type, &block)
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
@@ -3,9 +3,10 @@ require_relative "./parameter"
|
|
3
3
|
module Swagger
|
4
4
|
class DSL < Hash
|
5
5
|
class ParametersInType
|
6
|
-
def initialize(parent, type, &block)
|
6
|
+
def initialize(parent, type, parameter_options, &block)
|
7
7
|
@parent = parent
|
8
8
|
@type = type
|
9
|
+
@parameter_options = parameter_options
|
9
10
|
instance_eval(&block)
|
10
11
|
end
|
11
12
|
|
@@ -14,7 +15,7 @@ module Swagger
|
|
14
15
|
end
|
15
16
|
|
16
17
|
def method_missing(name, *args, &block)
|
17
|
-
@parent << Parameter.new(name, *args, in: @type, &block)
|
18
|
+
@parent << Parameter.new(@parameter_options, name, *args, in: @type, &block)
|
18
19
|
end
|
19
20
|
end
|
20
21
|
end
|
data/lib/swagger/dsl/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swagger-dsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Narazaka
|
@@ -264,7 +264,7 @@ metadata:
|
|
264
264
|
homepage_uri: https://github.com/Narazaka/swagger-dsl
|
265
265
|
source_code_uri: https://github.com/Narazaka/swagger-dsl.git
|
266
266
|
changelog_uri: https://github.com/Narazaka/swagger-dsl/blob/master/CHANGELOG.md
|
267
|
-
documentation_uri: https://www.rubydoc.info/gems/swagger-dsl/1.
|
267
|
+
documentation_uri: https://www.rubydoc.info/gems/swagger-dsl/1.2.0
|
268
268
|
post_install_message:
|
269
269
|
rdoc_options: []
|
270
270
|
require_paths:
|