Class: Aws::Templates::Utils::Contextualized::Filter::Chain
- Inherits:
-
Aws::Templates::Utils::Contextualized::Filter
- Object
- Aws::Templates::Utils::Contextualized::Filter
- Aws::Templates::Utils::Contextualized::Filter::Chain
- Defined in:
- lib/aws/templates/utils/contextualized/filters.rb
Overview
Chain filters
The filter chains all passed filters to have chained filter semantics.
Example
class Piece
include Aws::Templates::Utils::Contextualized
contextualize filter(:copy) & filter(:remove, :c) & filter(:override, a: 12, b: 15)
end
i = Piece.new
opts = Options.new(c: { e: 1 })
opts.filter(i.filter) # => { a: 12, b: 15 }
Instance Attribute Summary collapse
-
#filters ⇒ Object
readonly
Returns the value of attribute filters.
Instance Method Summary collapse
- #filter(options, memo, instance) ⇒ Object
-
#initialize(*flts) ⇒ Chain
constructor
A new instance of Chain.
Methods inherited from Aws::Templates::Utils::Contextualized::Filter
Constructor Details
#initialize(*flts) ⇒ Chain
Returns a new instance of Chain.
352 353 354 355 356 357 358 359 360 361 |
# File 'lib/aws/templates/utils/contextualized/filters.rb', line 352 def initialize(*flts) wrong_objects = flts.reject { |f| f.respond_to?(:to_proc) } unless wrong_objects.empty? raise( "The following objects are not filters: #{wrong_objects.inspect}" ) end @filters = flts end |
Instance Attribute Details
#filters ⇒ Object (readonly)
Returns the value of attribute filters.
350 351 352 |
# File 'lib/aws/templates/utils/contextualized/filters.rb', line 350 def filters @filters end |
Instance Method Details
#filter(options, memo, instance) ⇒ Object
363 364 365 |
# File 'lib/aws/templates/utils/contextualized/filters.rb', line 363 def filter(, memo, instance) filters.inject(memo) { |acc, elem| instance.instance_exec(, acc, &elem) } end |