Class: Plugin::FilterManager
- Inherits:
-
Object
- Object
- Plugin::FilterManager
- Defined in:
- lib/plugin/filter_manager.rb
Instance Method Summary collapse
- #apply(name, context, result) ⇒ Object
-
#initialize ⇒ FilterManager
constructor
A new instance of FilterManager.
- #register(name, &blk) ⇒ Object
Constructor Details
#initialize ⇒ FilterManager
Returns a new instance of FilterManager.
5 6 7 |
# File 'lib/plugin/filter_manager.rb', line 5 def initialize @map = {} end |
Instance Method Details
#apply(name, context, result) ⇒ Object
15 16 17 18 19 20 |
# File 'lib/plugin/filter_manager.rb', line 15 def apply(name, context, result) if filters = @map[name] filters.each { |blk| result = blk.call(context, result) } end result end |
#register(name, &blk) ⇒ Object
9 10 11 12 13 |
# File 'lib/plugin/filter_manager.rb', line 9 def register(name, &blk) raise ArgumentError unless blk && blk.arity == 2 filters = @map[name] ||= [] filters << blk end |