Method: Sidekiq::Middleware::Chain#insert_before

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

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

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



132
133
134
135
136
137
# File 'lib/sidekiq/middleware/chain.rb', line 132

def insert_before(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 } || 0
  entries.insert(i, new_entry)
end