Module: Grape::DSL::Validations::ClassMethods

Defined in:
lib/grape/dsl/validations.rb

Instance Method Summary collapse

Instance Method Details

#document_attribute(names, opts) ⇒ Object


45
46
47
48
49
50
51
52
53
54
55
# File 'lib/grape/dsl/validations.rb', line 45

def document_attribute(names, opts)
  setting = description_field(:params)
  setting ||= description_field(:params, {})
  Array(names).each do |name|
    full_name = name[:full_name].to_s
    setting[full_name] ||= {}
    setting[full_name].merge!(opts)

    namespace_stackable(:params, full_name => opts)
  end
end

#params { ... } ⇒ Object

Opens a root-level ParamsScope, defining parameter coercions and validations for the endpoint.

Yields:

  • instance context of the new scope


41
42
43
# File 'lib/grape/dsl/validations.rb', line 41

def params(&block)
  Grape::Validations::ParamsScope.new(api: self, type: Hash, &block)
end

#reset_validations!Object

Clears all defined parameters and validations. The main purpose of it is to clean up settings, so next endpoint won't interfere with previous one.

params do
  # params for the endpoint below this block
end
post '/current' do
  # whatever
end

# somewhere between them the reset_validations! method gets called

params do
  # params for the endpoint below this block
end
post '/next' do
  # whatever
end

31
32
33
34
35
36
# File 'lib/grape/dsl/validations.rb', line 31

def reset_validations!
  unset_namespace_stackable :declared_params
  unset_namespace_stackable :validations
  unset_namespace_stackable :params
  unset_description_field :params
end