fluffle 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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