Method: Sidekiq::Middleware::Chain#insert_after

Defined in:
lib/sidekiq/middleware/chain.rb

#insert_after(oldklass, newklass, *args) ⇒ Object

Inserts newklass after oldklass in the chain. Useful if one middleware must run after another middleware.



141
142
143
144
145
146
# File 'lib/sidekiq/middleware/chain.rb', line 141

def insert_after(oldklass, newklass, *args)
  i = entries.index { |entry| entry.klass == newklass }
  new_entry = i.nil? ? Entry.new(@config, newklass, *args) : entries.delete_at(i)
  i = entries.index { |entry| entry.klass == oldklass } || entries.count - 1
  entries.insert(i + 1, new_entry)
end