Module: RailsApiDoc::Controller::Request::DSL

Defined in:
lib/rails_api_doc/controller/request/dsl.rb

Instance Method Summary collapse

Instance Method Details

#parameter(*arguments, &block) ⇒ Object

Use parameter in controller to define REQUEST parameter. Adds it to repository: RailsApiDoc::Controller::Request::Repository Params can be defined in several ways:

  1. parameter :name, type: :string

  2. parameter {

dose_form_attributes: { model: 'Rxnorm::RxDoseForm' },
input_method_attributes: { model: 'TreatmentInfo::InputMethod' },
input_condition_attributes: { model: 'Drugs::InputCondition' },
input_duration_attributes: { model: 'Drugs::InputDuration' }

}, type: :object do

parameter :id
parameter :name

end

  1. parameter :name, :code, type: :string

Raises:

  • (ArgumentError)


26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/rails_api_doc/controller/request/dsl.rb', line 26

def parameter(*arguments, &block)
  options = arguments.extract_options!

  raise ArgumentError, 'Parameter already defined.' if repo.key?(name)

  validate_options(options, block_given?)

  arguments.each do |param|
    # 2)
    if param.is_a?(Hash)
      param.each do |param_name, additional_options|
        _options = options.merge(additional_options)

        define_parameter(param_name, _options, &block)
      end
    else # 1), 3)
      define_parameter(param, options, &block)
    end
  end
end