Module: Grape::DSL::Declared

Included in:
InsideRoute
Defined in:
lib/grape/dsl/declared.rb

Defined Under Namespace

Classes: MethodNotYetAvailable

Instance Method Summary collapse

Instance Method Details

#declared(passed_params, include_parent_namespaces: true, include_missing: true, evaluate_given: false, stringify: false) ⇒ Object

A filtering method that will return a hash consisting only of keys that have been declared by a params statement against the current/target endpoint or parent namespaces. options. :include_parent_namespaces defaults to true, hence must be set to false if you want only to return params declared against the current/target endpoint.

Parameters:

  • params (Hash)

    The initial hash to filter. Usually this will just be params

  • options (Hash)

    Can pass :include_missing, :stringify and :include_parent_namespaces

Raises:



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/grape/dsl/declared.rb', line 22

def declared(passed_params, include_parent_namespaces: true, include_missing: true, evaluate_given: false, stringify: false)
  raise MethodNotYetAvailable unless before_filter_passed

  contract_key_map = inheritable_setting.contract_key_maps
  handler = DeclaredParamsHandler.new(include_missing:, evaluate_given:, stringify:, contract_key_map:)
  declared_params = include_parent_namespaces ? inheritable_setting.route_declared_params : (inheritable_setting.declared_params.last || [])
  renamed_params = inheritable_setting.route_renamed_params
  route_params = config.params

  handler.call(passed_params, declared_params, route_params, renamed_params)
end