Class: Vault::Pipeline
- Inherits:
-
Object
- Object
- Vault::Pipeline
- Defined in:
- lib/vault-tools/pipeline.rb
Overview
Pipes and Filters implementations
Individual filters do work with ::call(object)
Compose a Pipeline with the ::use method
Example:
Pricer = Class.new(Pipeline)
class AppTierPricer < Pricer use PlanScoper, Quantizer, AppGrouper use UserGrouper end
Direct Known Subclasses
Class Method Summary collapse
Class Method Details
.filters ⇒ Object
22 23 24 |
# File 'lib/vault-tools/pipeline.rb', line 22 def self.filters @filters end |
.process(thing) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/vault-tools/pipeline.rb', line 26 def self.process(thing) return thing unless filters filters.each do |filter| thing = filter.call(thing) yield thing, filter if block_given? end thing end |
.use(*args) ⇒ Object
17 18 19 20 |
# File 'lib/vault-tools/pipeline.rb', line 17 def self.use(*args) @filters ||= [] @filters.push *args end |