aboutsummaryrefslogtreecommitdiffstats
path: root/lib/apidoc/controller_dsl/parameters.rb
blob: c3d285fc53af162433333620ba2c440c3e1ddca8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
module Apidoc
  module ControllerDsl
    module Parameters
      def requires(name, example, description)
        _apidoc_current_endpoint.parameters << Parameter.new(name, example, description, required: true)
      end

      def optional(name, example, description)
        _apidoc_current_endpoint.parameters << Parameter.new(name, example, description, required: false)
      end

      def param_group(name, &blk)
        if block_given?
          _apidoc_param_groups[name] = blk
        else
          blk = _apidoc_param_groups[name]
          if blk
            blk.call
          else
            raise DslError, "Parameters group #{name} is not defined."
          end
        end
      end
    end
  end
end