babl 0.2.1 → 0.3.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/babl.gemspec +1 -1
  3. data/lib/babl.rb +18 -2
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ef8873db4e771ecb8a0ab02a25d20359ed99899b
4
- data.tar.gz: a2f0e6476980336b234e2fc149c399fc548954ea
3
+ metadata.gz: dad0780e3615faf400bb040e77a053f95d7370ea
4
+ data.tar.gz: 332493673f1010d1958eea612c533b84bf0ec406
5
5
  SHA512:
6
- metadata.gz: e9d5fa22f98ad093032c23acca16d8cee3f9cbec7a1b974bf9afcb1fe228cacdc7b54727eda3d1e42e956aad6cdb51b4855a3aa08beed6ffca82990202fe1d16
7
- data.tar.gz: a188c8b6df32991672050e91c7d5a77c0ae0ccca6601a2668536c82c7b221b5edde337afb3f1f8de47406d40f49791a68110578879405a63ed98348dbcd91c8c
6
+ metadata.gz: 5432db3afa5357ff9cbc8bc8d22aeb0333e998c92910ac926e0ce283c5f08e982bcaa3213ac30b80c63b7d0434483c9b6fde949c3948ec57392d3d777b9b564b
7
+ data.tar.gz: 3cd23dcbd28df573c1e6c10c515d8897f4bb0962b740584682211808581b1f7e5c1aabfffa0c8428be599a284909e43d4ab7a50b02499ae87f31938aa71fd20b
data/babl.gemspec CHANGED
@@ -5,7 +5,7 @@ require 'babl'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "babl"
8
- spec.version = "0.2.1"
8
+ spec.version = "0.3.0"
9
9
  spec.authors = ["Lars Kluge"]
10
10
  spec.email = ["l@larskluge.com"]
11
11
 
data/lib/babl.rb CHANGED
@@ -3,6 +3,16 @@ require 'base64'
3
3
 
4
4
 
5
5
  module Babl
6
+ class ModuleError < StandardError
7
+ attr_reader :stdout, :stderr, :exitcode
8
+
9
+ def initialize opts = {}
10
+ @stdout = opts[:stdout]
11
+ @stderr = opts[:stderr]
12
+ @exitcode = opts[:exitcode]
13
+ end
14
+ end
15
+
6
16
  def self.bin_path
7
17
  system = `which babl-rpc`.strip
8
18
  if system.empty?
@@ -24,7 +34,7 @@ module Babl
24
34
  @client ||= Quartz::Client.new(bin_path: bin_path)
25
35
  end
26
36
 
27
- def self.module name, opts = {}
37
+ def self.module! name, opts = {}
28
38
  params = {'Name' => name}
29
39
  if opts[:in]
30
40
  params['Stdin'] = Base64.encode64(opts[:in]).strip
@@ -33,6 +43,12 @@ module Babl
33
43
  params['Env'] = opts[:env].inject({}) { |h, (k,v)| h[k.to_s] = v; h }
34
44
  end
35
45
  res = client[:babl].call('Module', params)
36
- Base64.decode64(res["Stdout"])
46
+ stdout = Base64.decode64(res["Stdout"]).strip
47
+ exitcode = res['Exitcode']
48
+ if exitcode != 0
49
+ stderr = Base64.decode64(res["Stderr"]).strip
50
+ raise ModuleError.new(stdout: stdout, stderr: stderr, exitcode: exitcode), "Module execution failed with exitcode #{exitcode}"
51
+ end
52
+ stdout
37
53
  end
38
54
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: babl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lars Kluge