Class: Meta::RouteDSL::ParametersBuilder
- Inherits:
-
Object
- Object
- Meta::RouteDSL::ParametersBuilder
- Defined in:
- lib/meta/route_dsl/parameters_builder.rb
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(route_full_path:, route_method:, &block) ⇒ ParametersBuilder
constructor
A new instance of ParametersBuilder.
- #param(name, options = {}) ⇒ Object
Constructor Details
#initialize(route_full_path:, route_method:, &block) ⇒ ParametersBuilder
Returns a new instance of ParametersBuilder.
9 10 11 12 13 14 15 |
# File 'lib/meta/route_dsl/parameters_builder.rb', line 9 def initialize(route_full_path:, route_method:, &block) @route_full_path = route_full_path || '' @route_method = route_method = {} instance_exec &block if block_given? end |
Instance Method Details
#build ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/meta/route_dsl/parameters_builder.rb', line 30 def build # 补充未声明的 path 参数 (path_param_names - .keys).each do |name| [name] = { in: 'path', schema: JsonSchema::BaseSchema.new(required: true) } end Parameters.new() end |
#param(name, options = {}) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/meta/route_dsl/parameters_builder.rb', line 17 def param(name, = {}) # 修正 path 参数的选项 = .dup if path_param_names.include?(name) # path 参数 = Utils::KeywordArgs::Checker.fix!(, in: 'path', required: true) else = Utils::KeywordArgs::Checker.merge_defaults!(, in: 'query') end in_op = .delete(:in) [name] = { in: in_op, schema: JsonSchema::BaseSchema.new() } end |