From 51bb6504737b126fcfb9c4845a806244fad3493b Mon Sep 17 00:00:00 2001 From: lilobase Date: Mon, 3 Jul 2017 15:10:10 +0200 Subject: [PATCH] fix(replace): replace the same middleware with different configuration is now working & bump version & update doc --- CHANGELOG.md | 7 +++++++ README.md | 12 ++++++------ lib/middleware/builder.rb | 17 ++++++----------- middleware.gemspec | 2 +- 4 files changed, 20 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71d7e52..7541ebc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.4.2 + - Update documentation + - Fix bug https://github.com/Ibsciss/ruby-middleware/issues/8 + +## 0.4.1 + - Simplify the inspect method + ## 0.4.0 - Add a name displayed in the logger & inspect methods - Add a logger middleware diff --git a/README.md b/README.md index fa044aa..4bc1840 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ $ gem install ibsciss-middleware Or, in your Gemfile: ``` -gem 'ibsciss-middleware', '~> 0.3' +gem 'ibsciss-middleware', '~> 0.4.2' ``` Then, you can add it to your project: @@ -169,8 +169,8 @@ lambdas: ```ruby Middleware::Builder.new { |b| - b.use lambda { |env| env + 3 } - b.use lambda { |env| env * 2 } + b.use -> (env) { env + 3 } + b.use -> (env) { env * 2 } }.call(1) #return 8 ``` @@ -188,7 +188,7 @@ for building a stack of middlewares: ```ruby stack = Middleware::Builder.new do |d| d.use Trace - d.use lambda { |env| puts "LAMBDA!" } + d.use ->(env) { puts "LAMBDA!" } end ``` @@ -241,7 +241,7 @@ stack.insert_after(0, SomeOtherMiddleware) #### Insert after each ```ruby -logger = lambda { |env| p env } +logger = -> (env) { p env } # Insert the middleware (can be also a middleware object) after each existing middleware stack.insert_after_each logger @@ -250,7 +250,7 @@ stack.insert_after_each logger #### Insert before each ```ruby -logger = lambda { |env| p env } +logger = -> (env) { p env } # Insert the middleware (can be also a middleware object) before each existing middleware stack.insert_before_each logger diff --git a/lib/middleware/builder.rb b/lib/middleware/builder.rb index 71b1a67..3f02cd3 100644 --- a/lib/middleware/builder.rb +++ b/lib/middleware/builder.rb @@ -84,8 +84,7 @@ def use(middleware, *args, &block) self end - # Inserts a middleware at the given index or directly before the - # given middleware object. + # Inserts a middleware at the given index or directly before the given middleware object. def insert(index, middleware, *args, &block) index = self.index(index) unless index.is_a?(Integer) fail "no such middleware to insert before: #{index.inspect}" unless index @@ -115,16 +114,12 @@ def insert_after_each(middleware, *args, &block) end end - # Replaces the given middleware object or index with the new - # middleware. + # Replaces the given middleware object or index with the new middleware. def replace(index, middleware, *args, &block) - if index.is_a?(Integer) - delete(index) - insert(index, middleware, *args, &block) - else - insert_before(index, middleware, *args, &block) - delete(index) - end + index = self.index index unless index.is_a? Integer + + delete(index) + insert(index, middleware, *args, &block) end # Deletes the given middleware object or index diff --git a/middleware.gemspec b/middleware.gemspec index 4658be5..1135101 100644 --- a/middleware.gemspec +++ b/middleware.gemspec @@ -19,5 +19,5 @@ Gem::Specification.new do |gem| gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") gem.name = 'ibsciss-middleware' gem.require_paths = ['lib'] - gem.version = '0.4.0' + gem.version = '0.4.2' end