libclimate-ruby 0.3.1 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/libclimate/climate.rb +53 -1
- data/lib/libclimate/version.rb +2 -2
- data/test/unit/tc_abort.rb +87 -0
- data/test/unit/tc_minimal.rb +1 -1
- data/test/unit/tc_test_aliases.rb +0 -0
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d55c53e5b2ddc3f8726d800b40b4d3b314abf8c5
|
4
|
+
data.tar.gz: 8846d76a971949a876c3ef83c6c022d41e6435d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56e9b36042061363132ed2a8464c965947b472a484a4fb3831e482b7ae64bc9de4833713cd624fbea76744eff4001840334fe4b3735806526e6dc22cc76c451d
|
7
|
+
data.tar.gz: 5ea0e2a5fa012615cb101d77047ac2c373e3fa96e395e7b45000f58f00cec22ce0ddc695095c15ada8774daedfc61d61211adb0256464dde0d2b3aac959480ec
|
data/lib/libclimate/climate.rb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
# Purpose: Definition of the ::LibCLImate::Climate class
|
6
6
|
#
|
7
7
|
# Created: 13th July 2015
|
8
|
-
# Updated:
|
8
|
+
# Updated: 14th June 2016
|
9
9
|
#
|
10
10
|
# Home: http://github.com/synesissoftware/libCLImate.Ruby
|
11
11
|
#
|
@@ -217,6 +217,14 @@ class Climate
|
|
217
217
|
attr_accessor :version
|
218
218
|
|
219
219
|
# Executes the prepared Climate instance
|
220
|
+
#
|
221
|
+
# == Signature
|
222
|
+
#
|
223
|
+
# * *Parameters*:
|
224
|
+
# - +argv+:: The array of arguments; defaults to <tt>ARGV</tt>
|
225
|
+
#
|
226
|
+
# * *Returns*:
|
227
|
+
#
|
220
228
|
def run argv = ARGV
|
221
229
|
|
222
230
|
raise ArgumentError, "argv may not be nil" if argv.nil?
|
@@ -318,6 +326,7 @@ class Climate
|
|
318
326
|
|
319
327
|
selector = :handled
|
320
328
|
else
|
329
|
+
|
321
330
|
ex = al.extras
|
322
331
|
|
323
332
|
case ex
|
@@ -365,6 +374,49 @@ class Climate
|
|
365
374
|
|
366
375
|
results
|
367
376
|
end
|
377
|
+
|
378
|
+
# Calls abort() with the given message prefixed by the program_name
|
379
|
+
#
|
380
|
+
# === Signature
|
381
|
+
#
|
382
|
+
# * *Parameters*:
|
383
|
+
# - +message+:: The message string
|
384
|
+
# - +options+:: An option hash, containing any of the following options
|
385
|
+
#
|
386
|
+
# * *Options*:
|
387
|
+
# - +:stream+:: {optional} The output stream to use. Defaults to the value of the attribute +stderr+.
|
388
|
+
# - +:program_name+:: {optional} Uses the given value rather than the +program_name+ attribute; does not prefix if the empty string
|
389
|
+
# - +:exit+:: {optional} The exit code. Defaults to 1. Does not exit if +nil+ specified.
|
390
|
+
#
|
391
|
+
# * *Return*:
|
392
|
+
# The combined message string, if <tt>exit()</tt> not called.
|
393
|
+
def abort message, options={}
|
394
|
+
|
395
|
+
prog_name = options[:program_name]
|
396
|
+
prog_name ||= program_name
|
397
|
+
prog_name ||= ''
|
398
|
+
|
399
|
+
stream = options[:stream]
|
400
|
+
stream ||= stderr
|
401
|
+
stream ||= $stderr
|
402
|
+
|
403
|
+
exit_code = options.has_key?(:exit) ? options[:exit] : 1
|
404
|
+
|
405
|
+
if prog_name.empty?
|
406
|
+
|
407
|
+
msg = message
|
408
|
+
else
|
409
|
+
|
410
|
+
msg = "#{prog_name}: #{message}"
|
411
|
+
end
|
412
|
+
|
413
|
+
|
414
|
+
stream.puts msg
|
415
|
+
|
416
|
+
exit(exit_code) if exit_code
|
417
|
+
|
418
|
+
msg
|
419
|
+
end
|
368
420
|
end # class Climate
|
369
421
|
|
370
422
|
end # module LibCLImate
|
data/lib/libclimate/version.rb
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
# Purpose: Version for libclimate.Ruby library
|
5
5
|
#
|
6
6
|
# Created: 13th July 2015
|
7
|
-
# Updated:
|
7
|
+
# Updated: 14th June 2016
|
8
8
|
#
|
9
9
|
# Home: http://github.com/synesissoftware/libCLImate.Ruby
|
10
10
|
#
|
@@ -40,7 +40,7 @@
|
|
40
40
|
module LibCLImate
|
41
41
|
|
42
42
|
# Current version of the libCLImate.Ruby library
|
43
|
-
VERSION = '0.
|
43
|
+
VERSION = '0.4.1'
|
44
44
|
|
45
45
|
private
|
46
46
|
VERSION_PARTS_ = VERSION.split(/[.]/).collect { |n| n.to_i } # :nodoc:
|
@@ -0,0 +1,87 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
#
|
3
|
+
# test abort
|
4
|
+
|
5
|
+
$:.unshift File.join(File.dirname(__FILE__), '../..', 'lib')
|
6
|
+
|
7
|
+
|
8
|
+
require 'libclimate'
|
9
|
+
|
10
|
+
require 'xqsr3/extensions/test/unit'
|
11
|
+
|
12
|
+
require 'test/unit'
|
13
|
+
|
14
|
+
require 'stringio'
|
15
|
+
|
16
|
+
class Test_Climate_abort < Test::Unit::TestCase
|
17
|
+
|
18
|
+
def test_abort_normal
|
19
|
+
|
20
|
+
strout = StringIO.new
|
21
|
+
strerr = StringIO.new
|
22
|
+
|
23
|
+
climate = LibCLImate::Climate.new do |climate|
|
24
|
+
|
25
|
+
climate.program_name = 'myprog'
|
26
|
+
climate.stdout = strout
|
27
|
+
climate.stderr = strerr
|
28
|
+
end
|
29
|
+
|
30
|
+
s = climate.abort 'something happened', exit: nil
|
31
|
+
|
32
|
+
lines_err = strerr.string.split /\n/
|
33
|
+
|
34
|
+
assert_equal 'myprog: something happened', s
|
35
|
+
|
36
|
+
assert_equal 1, lines_err.size
|
37
|
+
assert_equal 'myprog: something happened', lines_err[0]
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_abort_no_program_name
|
41
|
+
|
42
|
+
strout = StringIO.new
|
43
|
+
strerr = StringIO.new
|
44
|
+
|
45
|
+
climate = LibCLImate::Climate.new do |climate|
|
46
|
+
|
47
|
+
climate.program_name = 'myprog'
|
48
|
+
climate.stdout = strout
|
49
|
+
climate.stderr = strerr
|
50
|
+
end
|
51
|
+
|
52
|
+
s = climate.abort 'something happened', exit: nil, program_name: ''
|
53
|
+
|
54
|
+
lines_err = strerr.string.split /\n/
|
55
|
+
|
56
|
+
assert_equal 'something happened', s
|
57
|
+
|
58
|
+
assert_equal 1, lines_err.size
|
59
|
+
assert_equal 'something happened', lines_err[0]
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_abort_custom_program_name
|
63
|
+
|
64
|
+
strout = StringIO.new
|
65
|
+
strerr = StringIO.new
|
66
|
+
|
67
|
+
climate = LibCLImate::Climate.new do |climate|
|
68
|
+
|
69
|
+
climate.program_name = 'myprog'
|
70
|
+
climate.stdout = strout
|
71
|
+
climate.stderr = strerr
|
72
|
+
end
|
73
|
+
|
74
|
+
s = climate.abort 'something happened', exit: nil, program_name: 'my-prog'
|
75
|
+
|
76
|
+
lines_err = strerr.string.split /\n/
|
77
|
+
|
78
|
+
assert_equal 'my-prog: something happened', s
|
79
|
+
|
80
|
+
assert_equal 1, lines_err.size
|
81
|
+
assert_equal 'my-prog: something happened', lines_err[0]
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
# ############################## end of file ############################# #
|
86
|
+
|
87
|
+
|
data/test/unit/tc_minimal.rb
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libclimate-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Wilson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: clasp-ruby
|
@@ -57,17 +57,18 @@ executables: []
|
|
57
57
|
extensions: []
|
58
58
|
extra_rdoc_files: []
|
59
59
|
files:
|
60
|
-
- LICENSE
|
61
|
-
- README.md
|
62
|
-
- lib/libclimate.rb
|
63
60
|
- lib/libclimate/climate.rb
|
64
61
|
- lib/libclimate/libclimate.rb
|
65
62
|
- lib/libclimate/version.rb
|
63
|
+
- lib/libclimate.rb
|
66
64
|
- test/scratch/blankzeroes.rb
|
65
|
+
- test/unit/tc_abort.rb
|
67
66
|
- test/unit/tc_minimal.rb
|
68
67
|
- test/unit/tc_test_aliases.rb
|
69
68
|
- test/unit/tc_with_blocks.rb
|
70
69
|
- test/unit/ts_all.rb
|
70
|
+
- README.md
|
71
|
+
- LICENSE
|
71
72
|
homepage: http://www.libclimate.org/
|
72
73
|
licenses:
|
73
74
|
- Modified BSD
|
@@ -88,8 +89,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
89
|
version: '0'
|
89
90
|
requirements: []
|
90
91
|
rubyforge_project:
|
91
|
-
rubygems_version: 2.
|
92
|
+
rubygems_version: 2.0.14.1
|
92
93
|
signing_key:
|
93
94
|
specification_version: 4
|
94
95
|
summary: libCLImate.Ruby
|
95
96
|
test_files: []
|
97
|
+
has_rdoc:
|