fluffle 1.0.1 → 1.1.0

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: '038ddf285b4ce9d146162683b41abd91a89f9295'
4
- data.tar.gz: cc7c21fe760f9f7337a3b05ecc41896964f9aa86
3
+ metadata.gz: 2a0518b49d51b17da8d5170bbf82b58b5c3e0cfe
4
+ data.tar.gz: 24ea1dbec121cb256217b0867c52f8bdca88005d
5
5
  SHA512:
6
- metadata.gz: fe9589b93d03cb89f2de6aa09577fafc954fadd305c7de68637493ae5d8191a2f021369a84a1ffed4bba6bcce4885e593f4b72f635e516bfd5c2d8fc3123f8a3
7
- data.tar.gz: '01391ea97e789e91d373762f483d4c10592fdfab8da4aa51a46985b950db8c708bf5127f43abd6f1fc242bfb8a5e802fa1608d06871d95ddbb185f68b14489f4'
6
+ metadata.gz: 41e1b82f5a05bca4f6e45ad386b275dc558a45b7fb6822233e0c11cde1191b1cb1566131229525b65ce0dac41875998429a15852e2f5c21222bfa811688cd8dc
7
+ data.tar.gz: 6e0ae1f32a4aa835f49ee9406755502012a8f50bfb6d3a56cd12d0458bf14dca9e282883daf12d87f2d51d5698541ba96e90a7aca1ffd18819cfdc510477a74d
@@ -4,6 +4,12 @@ module Fluffle
4
4
  def call(method:, params:, id:, meta:)
5
5
  raise RuntimeError, '#call is not implemented on abstract Base handler class'
6
6
  end
7
+
8
+ # This is called *after* the server has published the response message
9
+ # to the client's queue.
10
+ # def after_response(request:)
11
+ # ...
12
+ # end
7
13
  end
8
14
  end
9
15
  end
@@ -163,6 +163,14 @@ module Fluffle
163
163
  @exchange.publish Oj.dump(response), routing_key: reply_to,
164
164
  correlation_id: response['id']
165
165
  end
166
+
167
+ if handler.respond_to? :after_response
168
+ begin
169
+ handler.after_response request: request
170
+ rescue => err
171
+ log_error(err) if Fluffle.logger.error?
172
+ end
173
+ end
166
174
  end
167
175
 
168
176
  # handler - Instance of a `Handler` that may receive `#call`
@@ -1,3 +1,3 @@
1
1
  module Fluffle
2
- VERSION = '1.0.1'
2
+ VERSION = '1.1.0'
3
3
  end
@@ -128,5 +128,23 @@ describe Fluffle::Server do
128
128
  expect(meta['handler_duration']).to be >= 0.01
129
129
  end
130
130
  end
131
+
132
+ it "calls the handler's #after_response method if defined" do
133
+ @params = ['foo']
134
+
135
+ result = 'bar'
136
+ handler = double 'Handler'
137
+ expect(handler).to receive(:call).ordered.and_return(result)
138
+
139
+ expect(handler).to receive(:after_response).ordered do |opts|
140
+ expect(opts[:request]).to include({
141
+ 'params' => @params,
142
+ })
143
+ end
144
+
145
+ make_request handler: handler
146
+
147
+ expect_response payload: { 'result' => result }
148
+ end
131
149
  end
132
150
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluffle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dirk Gadsden
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-25 00:00:00.000000000 Z
11
+ date: 2016-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bunny