ibsciss-middleware 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 45a7f568a5dd19fa3ed4060972af8eab369d6cc7
4
- data.tar.gz: 9324a50e02d47da8f6a4232db2d0f373dda717f5
3
+ metadata.gz: 86fc76bf275b9613ba8eaf6234356f6e897e8fa2
4
+ data.tar.gz: 40a061815db18be1438ce941abd3d8df47d80c96
5
5
  SHA512:
6
- metadata.gz: cc1c0601887f79ce0580705cf7031124315cc25109703765f1b92e66147c8c2ef79b2ee9ffca951ff7bb4ef739bebdf8d21f3ec226fab2630852fa073be45204
7
- data.tar.gz: ad2c8c9a03d3da09664e879322906b405423e0fdb8cd801da3fab30c0cfba90ea0529aeeea330a5c1bb4ff28d4922b20f0b61249ab1c7ab57d6d5c161a9dcd94
6
+ metadata.gz: 20bdeb80623bfad270d6a44d5d7d7c95dc00af9ce262728649ea88b90ae0bb6a1dae6c2cecef187363631fecc8718300e8b5ee6c54d445ffe2b603f0b7d30e57
7
+ data.tar.gz: 7cfefa01cc28a9765bb715af5f1513acc8c839c47d241204ebcee26d4be57372b07c3fa74ba8ac4100e0a17218c4d507ab52070af24710ddde7f81c15d98abe2
data/README.md CHANGED
@@ -204,7 +204,7 @@ end.call()
204
204
  The call method takes an optional parameter which is the state to pass into the
205
205
  initial middleware.
206
206
 
207
- You can optionally set a name, that will be displayed in inspect and for logging purpose, for the current middleware:
207
+ You can optionally set a name, that will be displayed in inspect and for logging purpose:
208
208
 
209
209
  ```ruby
210
210
  Middleware::Builder.new(name: 'MyPersonalMiddleware')
@@ -1,3 +1,5 @@
1
+ require_relative 'logger'
2
+
1
3
  module Middleware
2
4
  # This provides a DSL for building up a stack of middlewares.
3
5
  #
@@ -40,8 +42,8 @@ module Middleware
40
42
  # like {#use} and such.
41
43
  def initialize(opts = nil, &block)
42
44
  opts ||= {}
43
- @runner_class = opts[:runner_class] || Runner
44
- @middleware_name = opts[:name] || 'Middleware'
45
+ @runner_class = opts.fetch(:runner_class, Runner)
46
+ @middleware_name = opts.fetch(:name, 'Middleware')
45
47
 
46
48
  if block_given?
47
49
  if block.arity == 1
@@ -137,10 +139,9 @@ module Middleware
137
139
  end
138
140
 
139
141
  def inspect
140
- name+'[' + stack.reduce([]) do |carry, middleware|
142
+ name+'[' + stack.map do |middleware|
141
143
  name = middleware[0].is_a?(Proc) ? 'Proc' : middleware[0].name
142
-
143
- carry << "#{name}(#{middleware[1].join(', ')})"
144
+ "#{name}(#{middleware[1].join(', ')})"
144
145
  end.join(', ') + ']'
145
146
  end
146
147
 
@@ -173,7 +174,7 @@ module Middleware
173
174
  end
174
175
 
175
176
  # you shouldn't use this method
176
- #
177
+ # used for insert_before|after_each
177
178
  # @return [Array]
178
179
  attr_writer :stack
179
180
 
@@ -19,5 +19,5 @@ Gem::Specification.new do |gem|
19
19
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
20
  gem.name = 'ibsciss-middleware'
21
21
  gem.require_paths = ['lib']
22
- gem.version = '0.4.0'
22
+ gem.version = '0.4.1'
23
23
  end
@@ -37,36 +37,36 @@ describe Middleware::Builder do
37
37
 
38
38
  app.call(data)
39
39
 
40
- expect(data[:data]).to be_truthy
40
+ expect(data[:data]).to eq true
41
41
  end
42
42
  end
43
43
  end
44
44
 
45
45
  context 'basic `use`' do
46
- it 'should add items to the stack and make them callable' do
46
+ it 'adds items to the stack and make them callable' do
47
47
  data = {}
48
48
  proc = proc { |env| env[:data] = true }
49
49
 
50
50
  instance.use proc
51
51
  instance.call(data)
52
52
 
53
- expect(data[:data]).to be_truthy
53
+ expect(data[:data]).to eq true
54
54
  end
55
55
 
56
- it 'should be able to add multiple items' do
56
+ it 'is able to add multiple items' do
57
57
  data = {}
58
- proc1 = proc { |env| env.tap { |obj| obj[:one] = true } }
59
- proc2 = proc { |env| env.tap { |obj| obj[:two] = true } }
58
+ proc1 = ->(env) { env.tap { |obj| obj[:one] = :value_1 } }
59
+ proc2 = ->(env) { env.tap { |obj| obj[:two] = :value_2 } }
60
60
 
61
61
  instance.use proc1
62
62
  instance.use proc2
63
63
  instance.call(data)
64
64
 
65
- expect(data[:one]).to be_truthy
66
- expect(data[:two]).to be_truthy
65
+ expect(data[:one]).to eq :value_1
66
+ expect(data[:two]).to eq :value_2
67
67
  end
68
68
 
69
- it 'should be able to add another builder' do
69
+ it 'can be compose with another builder' do
70
70
  data = {}
71
71
  proc1 = proc { |env| env[:one] = true }
72
72
 
@@ -80,17 +80,17 @@ describe Middleware::Builder do
80
80
 
81
81
  # Call the 2nd and verify results
82
82
  two.call(data)
83
- expect(data[:one]).to be_truthy
83
+ expect(data[:one]).to eq true
84
84
  end
85
85
 
86
- it 'should default the env to `nil` if not given' do
86
+ it 'has the env to `nil` if not given' do
87
87
  result = false
88
88
  proc = proc { |env| result = env.nil? }
89
89
 
90
90
  instance.use proc
91
91
  instance.call
92
92
 
93
- expect(result).to be_truthy
93
+ expect(result).to eq true
94
94
  end
95
95
  end
96
96
 
@@ -103,7 +103,7 @@ describe Middleware::Builder do
103
103
  expect(data[:data]).to eq [2, 1]
104
104
  end
105
105
 
106
- it 'can insert next to a previous object' do
106
+ it 'can insert after a previous object' do
107
107
  proc2 = appender_proc(2)
108
108
  instance.use appender_proc(1)
109
109
  instance.use proc2
@@ -113,7 +113,7 @@ describe Middleware::Builder do
113
113
  expect(data[:data]).to eq [1, 3, 2]
114
114
  end
115
115
 
116
- it 'can insert before' do
116
+ it 'can insert before a previous object' do
117
117
  instance.use appender_proc(1)
118
118
  instance.insert_before 0, appender_proc(2)
119
119
  instance.call(data)
@@ -121,7 +121,7 @@ describe Middleware::Builder do
121
121
  expect(data[:data]).to eq [2, 1]
122
122
  end
123
123
 
124
- it 'raises an exception if attempting to insert before an invalid object' do
124
+ it 'raises an exception if attempting to insert before an invalid index' do
125
125
  expect { instance.insert 'object', appender_proc(1) }
126
126
  .to raise_error(RuntimeError)
127
127
  end
@@ -216,18 +216,18 @@ describe Middleware::Builder do
216
216
  expect(instance.inspect).to eq 'Middleware[Proc(), Proc(2), Echo(Hi, how are you?)]'
217
217
  end
218
218
 
219
- it 'displays his name in the inspect' do
219
+ it 'can have a name' do
220
+ expect(described_class.new(name: 'Name').name).to eq 'Name'
221
+ end
222
+
223
+ it 'displays the name in the inspect' do
220
224
  middleware = described_class.new(name: 'Dumb') { |b|
221
225
  b.use appender_proc(1)
222
226
  }
223
227
  expect(middleware.inspect).to eq 'Dumb[Proc()]'
224
228
  end
225
229
 
226
- it "can have a name" do
227
- expect(described_class.new(name: 'Name').name).to eq 'Name'
228
- end
229
-
230
- it "can have a Logger" do
230
+ it 'makes use of a Logger' do
231
231
  mocked_logger = instance_double(Logger)
232
232
  expect(mocked_logger).to receive(:add).exactly(4).times
233
233
 
@@ -1,12 +1,12 @@
1
1
  require 'middleware'
2
2
 
3
3
  describe Middleware::Runner do
4
- it 'should work with an empty stack' do
4
+ it 'works with an empty stack' do
5
5
  instance = described_class.new([])
6
6
  expect { instance.call({}) }.to_not raise_error
7
7
  end
8
8
 
9
- it 'should call classes in the proper order' do
9
+ it 'calls classes in the same order as given' do
10
10
  a = Class.new do
11
11
  def initialize(app)
12
12
  @app = app
@@ -37,7 +37,7 @@ describe Middleware::Runner do
37
37
  expect(env[:result]).to eq %w(A B B A)
38
38
  end
39
39
 
40
- it 'should call lambdas in the proper order' do
40
+ it 'calls lambdas in the proper order' do
41
41
  data = []
42
42
  a = ->(_env) { data << 'A' }
43
43
  b = ->(_env) { data << 'B' }
@@ -48,7 +48,7 @@ describe Middleware::Runner do
48
48
  expect(data).to eq %w(A B)
49
49
  end
50
50
 
51
- it 'should let lambdas to change the given argument' do
51
+ it 'lets lambdas to change the given argument' do
52
52
  a = ->(env) { env + 1 }
53
53
  b = ->(env) { env + 2 }
54
54
 
@@ -104,11 +104,11 @@ describe Middleware::Runner do
104
104
  expect(env[:result]).to eq 42
105
105
  end
106
106
 
107
- it 'should raise an error if an invalid middleware is given' do
107
+ it 'raises an error if an invalid middleware is given' do
108
108
  expect { described_class.new([27]) }.to raise_error(/Invalid middleware/)
109
109
  end
110
110
 
111
- it "should not call middlewares which aren't called" do
111
+ it "not calls middlewares which aren't called" do
112
112
  # A does not call B, so B should never execute
113
113
  data = []
114
114
  a = Class.new do
@@ -131,7 +131,7 @@ describe Middleware::Runner do
131
131
  end
132
132
 
133
133
  describe 'exceptions' do
134
- it 'should propagate the exception up the middleware chain' do
134
+ it 'propagates the exception up the middleware chain' do
135
135
  # This tests a few important properties:
136
136
  # * Exceptions propagate multiple middlewares
137
137
  # - C raises an exception, which raises through B to A.
@@ -174,7 +174,7 @@ describe Middleware::Runner do
174
174
  expect(data).to eq %w(a b e)
175
175
  end
176
176
 
177
- it 'should stop propagation if rescued' do
177
+ it 'stops propagation if rescued' do
178
178
  # This test mainly tests that if there is a sequence A, B, C, and
179
179
  # an exception is raised in C, that if B rescues this, then the chain
180
180
  # continues fine backwards.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ibsciss-middleware
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mitchell Hashimoto
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-10 00:00:00.000000000 Z
12
+ date: 2015-11-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake