Skip to content

Commit

Permalink
Merge pull request #21 from telebugs/delete-middleware
Browse files Browse the repository at this point in the history
Make it possible to delete middleware
  • Loading branch information
kyrylo committed Jun 17, 2024
2 parents 4feb2e9 + 9c174c2 commit c469f82
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lib/telebugs/middleware_stack.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ def use(new_middleware)
@middlewares = (@middlewares << new_middleware).sort_by(&:weight).reverse
end

def delete(middleware_class)
@middlewares.delete_if { |middleware| middleware.instance_of?(middleware_class) }
end

def call(report)
@middlewares.each do |middleware|
middleware.call(report)
Expand Down
10 changes: 10 additions & 0 deletions test/test_middleware_stack.rb
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,14 @@ def test_weight
stack.middlewares.map(&:class)
)
end

def test_delete
stack = Telebugs::MiddlewareStack.new
stack.use TestFilteringMiddleware.new
stack.use TestStartLineMiddleware.new

stack.delete TestFilteringMiddleware

assert_equal [TestStartLineMiddleware], stack.middlewares.map(&:class)
end
end

0 comments on commit c469f82

Please sign in to comment.