Class: Soda::Middleware::Chain

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/soda/middleware/chain.rb

Defined Under Namespace

Classes: Entry

Instance Method Summary collapse

Constructor Details

#initializeChain

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

#eachObject



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