Class: Soda::Middleware::Chain
- Inherits:
-
Object
- Object
- Soda::Middleware::Chain
- Includes:
- Enumerable
- Defined in:
- lib/soda/middleware/chain.rb
Defined Under Namespace
Classes: Entry
Instance Method Summary collapse
- #add(klass, *args) ⇒ Object
- #each ⇒ Object
-
#initialize ⇒ Chain
constructor
A new instance of Chain.
- #insert_at(index, klass, *args) ⇒ Object
- #remove(klass) ⇒ Object
- #use(*args) ⇒ Object
Constructor Details
#initialize ⇒ Chain
Returns a new instance of Chain.
12 13 14 |
# File 'lib/soda/middleware/chain.rb', line 12 def initialize @entries = [] end |
Instance Method Details
#add(klass, *args) ⇒ Object
20 21 22 23 |
# File 'lib/soda/middleware/chain.rb', line 20 def add(klass, *args) remove(klass) entries << Entry.new(klass, args) end |
#each ⇒ Object
16 17 18 |
# File 'lib/soda/middleware/chain.rb', line 16 def each entries.each(&:block) end |
#insert_at(index, klass, *args) ⇒ Object
29 30 31 |
# File 'lib/soda/middleware/chain.rb', line 29 def insert_at(index, klass, *args) entries.insert(index, Entry.new(klass, args)) end |
#remove(klass) ⇒ Object
25 26 27 |
# File 'lib/soda/middleware/chain.rb', line 25 def remove(klass) entries.delete_if { |entry| entry.klass == klass } end |
#use(*args) ⇒ Object
33 34 35 36 37 |
# File 'lib/soda/middleware/chain.rb', line 33 def use(*args) traverse(entries.dup, args) do yield end end |