class Apipie::Generator::Swagger::ParamDescription::Builder
Public Class Methods
new(param_description, in_schema:, controller_method:)
click to toggle source
@param [Apipie::ParamDescription] param_description @param [TrueClass, FalseClass] in_schema @param [Apipie::MethodDescription] controller_method
# File lib/apipie/generator/swagger/param_description/builder.rb, line 5 def initialize(param_description, in_schema:, controller_method:) @param_description = param_description @in_schema = in_schema @controller_method = controller_method end
Public Instance Methods
to_swagger()
click to toggle source
@return [Hash]
# File lib/apipie/generator/swagger/param_description/builder.rb, line 47 def to_swagger definition = {} definition.merge!(@name.to_hash) if @name.present? definition.merge!(@type.to_hash) if @type.present? definition.merge!(@in.to_hash) if @in.present? definition.merge!(for_default) definition.merge!(for_required) definition.merge!(@description.to_hash) if @description.present? warn_optional_without_default_value(definition) definition end
with_description(language:)
click to toggle source
@param [String] language
# File lib/apipie/generator/swagger/param_description/builder.rb, line 20 def with_description(language:) @description = Apipie::Generator::Swagger::ParamDescription::Description. new(@param_description, language: language) self end
with_in(http_method:, default_in_value: nil)
click to toggle source
# File lib/apipie/generator/swagger/param_description/builder.rb, line 35 def with_in(http_method:, default_in_value: nil) @in = Apipie::Generator::Swagger::ParamDescription::In.new( @param_description, in_schema: @in_schema, default_in_value: default_in_value, http_method: http_method ) self end
with_name(prefix: nil)
click to toggle source
@param [String, nil] prefix
# File lib/apipie/generator/swagger/param_description/builder.rb, line 12 def with_name(prefix: nil) @name = Apipie::Generator::Swagger::ParamDescription::Name. new(@param_description, prefixed_by: prefix) self end
with_type(with_null:)
click to toggle source
@param [TrueClass, FalseClass] with_null
# File lib/apipie/generator/swagger/param_description/builder.rb, line 28 def with_type(with_null:) @type = Apipie::Generator::Swagger::ParamDescription::Type. new(@param_description, with_null: with_null, controller_method: @controller_method) self end
Private Instance Methods
for_default()
click to toggle source
# File lib/apipie/generator/swagger/param_description/builder.rb, line 73 def for_default return {} if @param_description.options[:default_value].blank? { default: @param_description.options[:default_value], } end
for_required()
click to toggle source
# File lib/apipie/generator/swagger/param_description/builder.rb, line 65 def for_required return {} if !required? { required: true } end
required?()
click to toggle source
# File lib/apipie/generator/swagger/param_description/builder.rb, line 81 def required? required_from_path? || (!@in_schema && @param_description.required) end
required_from_path?()
click to toggle source
# File lib/apipie/generator/swagger/param_description/builder.rb, line 85 def required_from_path? @param_description.options[:added_from_path] == true end
warn_optional_without_default_value(definition)
click to toggle source
# File lib/apipie/generator/swagger/param_description/builder.rb, line 89 def warn_optional_without_default_value(definition) if !required? && !definition.key?(:default) method_id = if @param_description.is_a?(Apipie::ResponseDescriptionAdapter::PropDesc) @controller_method else Apipie::Generator::Swagger::MethodDescription::Decorator.new(@controller_method).ruby_name end Apipie::Generator::Swagger::Warning.for_code( Apipie::Generator::Swagger::Warning::OPTIONAL_WITHOUT_DEFAULT_VALUE_CODE, method_id, { parameter: @param_description.name } ).warn_through_writer end end