Class: Pundit::ExpectedAttributeValues::Filter
- Inherits:
-
Object
- Object
- Pundit::ExpectedAttributeValues::Filter
- Defined in:
- lib/pundit/expected_attribute_values/filter.rb
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(params, constraints, invalid: ExpectedAttributeValues.invalid_behavior, policy: nil) ⇒ Filter
constructor
A new instance of Filter.
Constructor Details
#initialize(params, constraints, invalid: ExpectedAttributeValues.invalid_behavior, policy: nil) ⇒ Filter
Returns a new instance of Filter.
10 11 12 13 14 15 |
# File 'lib/pundit/expected_attribute_values/filter.rb', line 10 def initialize(params, constraints, invalid: ExpectedAttributeValues.invalid_behavior, policy: nil) @params = params @constraints = constraints @invalid = invalid @policy = policy end |
Class Method Details
.call(params, constraints, invalid: ExpectedAttributeValues.invalid_behavior, policy: nil) ⇒ Object
6 7 8 |
# File 'lib/pundit/expected_attribute_values/filter.rb', line 6 def self.call(params, constraints, invalid: ExpectedAttributeValues.invalid_behavior, policy: nil) new(params, constraints, invalid: invalid, policy: policy).call end |
Instance Method Details
#call ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/pundit/expected_attribute_values/filter.rb', line 17 def call return @params if @constraints.empty? result = @params.to_unsafe_h.dup @constraints.each do |attribute, source| key = find_key(result, attribute) next unless key next unless result.key?(key) expected = expected_values_for(attribute, source) filter_attribute!(result, key, expected) end build_parameters(result) end |