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.namespace_stackable[:contract_key_map]
  handler = DeclaredParamsHandler.new(include_missing:, evaluate_given:, stringify:, contract_key_map: contract_key_map)
  declared_params = include_parent_namespaces ? inheritable_setting.route[:declared_params] : (inheritable_setting.namespace_stackable[:declared_params].last || [])
  renamed_params = inheritable_setting.route[:renamed_params] || {}
  route_params = options.dig(:route_options, :params) || {} # options = endpoint's option

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