Class: Grape::Validations::AttributesIterator

Inherits:
Object
  • Object
show all
Defined in:
lib/grape/validations/attributes_iterator.rb

Instance Method Summary collapse

Constructor Details

#initialize(attrs, scope) ⇒ AttributesIterator

attrs and scope are static per validator; only params varies per request, so an instance can be built once and reused (it keeps no request-derived state). Reused instances are shared across threads, so each must stay free of mutable instance state.



10
11
12
13
# File 'lib/grape/validations/attributes_iterator.rb', line 10

def initialize(attrs, scope)
  @attrs = attrs
  @scope = scope
end

Instance Method Details

#each(params) ⇒ Object



15
16
17
18
19
# File 'lib/grape/validations/attributes_iterator.rb', line 15

def each(params, &)
  original_params = @scope.params(params)
  # because we need recursion for nested arrays
  do_each(Array.wrap(original_params), original_params, &)
end