altaire-gateway 1.0.0 → 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
  SHA256:
3
- metadata.gz: 3f342b3eea8fb5c4c3ea5940dce72e0d484ad1696215fe6932b5a37805f9a014
4
- data.tar.gz: 5fd0187c4c3d59bf7aa1d826cbafc057e4fa281c114e3c20efd42b3ce1ef14e8
3
+ metadata.gz: 8057e361b93ec728fcf74140e16f68c40c9905cacaaa4b5f8d7608a6349499ae
4
+ data.tar.gz: 984146c79f613f5e0f2c41c316744cf224a3721421d15c2c3540fb49fd53b17a
5
5
  SHA512:
6
- metadata.gz: 6ae6dc269b397f21279f54ce949e0af3aeaa939bca8bb5c0897494c1b3de77734dd94347e6f398e1592e337ad8bb4030405652daabbfbb52b7b21d8ab01db79a
7
- data.tar.gz: 784c8c5b28dea04160c53d1d1bcd7c6a6e41e472aaee48f6d55addf055de82c5cbc61fc49f90da67852b093497f7fc7de18db6228f9ed12338495fce4eadc12f
6
+ metadata.gz: 3ad8702e7da1645fa38b53fdd06899c5c43bb90912d5aae41ce3067ce4d5c45f7840225c880ddb3d5f517e4670d8de2d19eb734f0c7c346be17af742edd5698f
7
+ data.tar.gz: 975959b8e977005eb2180e2dc2e2b4bf7a75b7c13e828c3998b002b48dd20565e9d1deb70785be2b776bf55d2d1fcaec82cc95ade0c406dc5cac629e535a2f2a
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = "altaire-gateway"
6
- spec.version = "1.0.0"
6
+ spec.version = "1.1.0"
7
7
  spec.authors = ["Nathan Baum"]
8
8
  spec.email = ["n@p12a.org.uk"]
9
9
 
@@ -9,21 +9,23 @@ module Altaire
9
9
  @requests = {}
10
10
  NATS.subscribe "meta.cancel" do |msg|
11
11
  @requests[msg.to_i].raise(Interrupt, "Cancelled by gateway")
12
+ rescue Exception
12
13
  end
13
14
  block.(self)
14
15
  end
15
16
  end
16
17
 
17
- def self.provide (subject, &block)
18
+ def self.provide (subject, interruptable: false, &block)
18
19
  NATS.subscribe subject do |msg, reply|
19
20
  msg = JSON.parse(msg)
20
- @requests[msg["id"]] = Thread.new do
21
+ thread = Thread.new do
21
22
  NATS.publish reply, { result: block.(msg) }.to_json
22
23
  rescue => e
23
24
  NATS.publish reply, { error: e.message }.to_json
24
25
  ensure
25
26
  @requests.delete(msg["id"])
26
27
  end
28
+ @requests[msg["id"]] = thread if interruptable
27
29
  end
28
30
  end
29
31
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: altaire-gateway
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Baum