altaire-gateway 1.0.0 → 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
  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