Skip to content

Commit

Permalink
fix(replace): replace the same middleware with different configuratio…
Browse files Browse the repository at this point in the history
…n is now working & bump version & update doc
  • Loading branch information
lilobase committed Jul 3, 2017
1 parent 8c787fb commit 51bb650
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 18 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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
```

Expand All @@ -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
```

Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
17 changes: 6 additions & 11 deletions lib/middleware/builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion middleware.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 51bb650

Please sign in to comment.