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/filter/chain.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.
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/aws/templates/utils/contextualized/filter/chain.rb', line 30 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.flat_map { |f| _as_flattened_filters(f) } end |
Instance Attribute Details
#filters ⇒ Object (readonly)
Returns the value of attribute filters.
28 29 30 |
# File 'lib/aws/templates/utils/contextualized/filter/chain.rb', line 28 def filters @filters end |
Instance Method Details
#filter(options, memo, instance) ⇒ Object
41 42 43 |
# File 'lib/aws/templates/utils/contextualized/filter/chain.rb', line 41 def filter(, memo, instance) filters.inject(memo) { |acc, elem| instance.instance_exec(, acc, &elem) } end |