silent 0.1.0 → 0.2.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
  SHA1:
3
- metadata.gz: ec283edc025445022958699eb52de78fda2eb844
4
- data.tar.gz: 5b1bef3adac53e0feb40f29816d97aea1e938242
3
+ metadata.gz: e930cfee8ca64402d7d5127ad71feff05d418c86
4
+ data.tar.gz: f3461834cc86ded7f20e107049cced2b246bb5b8
5
5
  SHA512:
6
- metadata.gz: d2eeca5f6836299a8de690638d268ee77e5f271442469a3d501bcf6e92bc6a44e2c3305dd5d606d6c6d6b1d1112ff2c058a66c63ee7a900a4fedd377066f7b54
7
- data.tar.gz: 8c756f5b254700f9390566951597e006ab7192b856a49a1ddf38f04047af3ecd078c19fd3f96b6d1ad35d2a41eda9ff4e41ae99f39841141b1bff2e09b598f0a
6
+ metadata.gz: c369eb945367a6f7625e120b309cec42f8128cecef6a90d33440f28a18e91bc8fa8c9f775cd5850b5071c5d907cd2b7fef7dab72f42da69e30183209407ceb63
7
+ data.tar.gz: 91bec32e064078f3b744dbcc4d0d66264a6a5b5d61a0721d5c7a2a5b6cb72eb20dd26dcba99b57467d32c104cbbed75764fe91c1744c335c3151a34f1007da01
Binary file
Binary file
@@ -1,17 +1,20 @@
1
1
  # -*- coding: UTF-8 -*-
2
2
 
3
- # Silently execute a block. Arguments should be :stdout and/or :stderr, and a
4
- # block should be given.
3
+ # Silently execute a block.
4
+ # @param what [Symbol] output to silent. This must be either +:stdout+ or
5
+ # +:stderr:+. More than can be given.
6
+ # @yield []
7
+ # @return block's returned value
5
8
  def silent(*what)
6
9
  return unless block_given?
7
10
 
8
- _stdout, $stdout = $stdout, StringIO.new if what.include?(:stdout)
9
- _stderr, $stderr = $stderr, StringIO.new if what.include?(:stderr)
11
+ begin
12
+ _stdout, $stdout = $stdout, StringIO.new if what.include?(:stdout)
13
+ _stderr, $stderr = $stderr, StringIO.new if what.include?(:stderr)
10
14
 
11
- res = yield
12
-
13
- $stdout = _stdout if what.include?(:stdout)
14
- $stderr = _stderr if what.include?(:stderr)
15
-
16
- res
15
+ yield
16
+ ensure
17
+ $stdout = _stdout if what.include?(:stdout)
18
+ $stderr = _stderr if what.include?(:stderr)
19
+ end
17
20
  end
@@ -7,13 +7,13 @@ Coveralls.wear!
7
7
  require 'test/unit'
8
8
  require 'simplecov'
9
9
 
10
- test_dir = File.expand_path( File.dirname(__FILE__) )
11
-
12
10
  SimpleCov.formatter = Coveralls::SimpleCov::Formatter
13
11
  SimpleCov.start { add_filter '/tests/' }
14
12
 
15
13
  require 'silent'
16
14
 
15
+ class MyException < Exception; end
16
+
17
17
  class SilentTests < Test::Unit::TestCase
18
18
  def setup
19
19
  @_stdout, $stdout = $stdout, StringIO.new
@@ -78,6 +78,19 @@ class SilentTests < Test::Unit::TestCase
78
78
  assert_equal(s, $stderr.read)
79
79
  assert_equal('', $stdout.read)
80
80
  end
81
+
82
+ def test_silent_raise
83
+ assert_raise(MyException) do
84
+ silent(:stdout, :stderr) do
85
+ raise MyException.new
86
+ end
87
+ end
88
+
89
+ print "foo"
90
+
91
+ $stdout.seek(0)
92
+ assert_equal("foo", $stdout.read)
93
+ end
81
94
  end
82
95
 
83
96
 
metadata CHANGED
@@ -1,69 +1,91 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: silent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Baptiste Fontaine
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain: []
11
- date: 2014-04-24 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDaDCCAlCgAwIBAgIBATANBgkqhkiG9w0BAQUFADA9MRAwDgYDVQQDDAdiYXRp
14
+ Zm9uMRUwEwYKCZImiZPyLGQBGRYFeWFob28xEjAQBgoJkiaJk/IsZAEZFgJmcjAe
15
+ Fw0xNDA4MjQxMTM5NTJaFw0xNTA4MjQxMTM5NTJaMD0xEDAOBgNVBAMMB2JhdGlm
16
+ b24xFTATBgoJkiaJk/IsZAEZFgV5YWhvbzESMBAGCgmSJomT8ixkARkWAmZyMIIB
17
+ IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn3uOgWl+FwXIjDdCay28i6cK
18
+ FxHWhHoS/mH9pkXzSGVctEKP2fulie6MkIvrLCP5M6TpByeaBjcJjZPadrou1FIc
19
+ Yc/O14jYjaKTqfMxpzgNfGzDdBgBo0QZ9rcHjORetdIZdUSDaZjPtI1aGS6eBMsh
20
+ W2X6GxL4UQ1kH0Lyg7iPYAH5RHnD3+G+S28iOPFfRLFzm4fwJp1k7URiiSyOHTDp
21
+ B0ZehKKrW/ibCaRMYp2VoCamcim4de1VA6CTOaYSShueqThE18n1HM6aprihziyM
22
+ 04yIpo80/unO6JxlsUFdBjsb5d7oJSqPJ6/OfcFnyXa/VRm+Ed9d6PTwZvL7YwID
23
+ AQABo3MwcTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUWyH3xMx1
24
+ 8I5NLncgNEC0ZlDRKegwGwYDVR0RBBQwEoEQYmF0aWZvbkB5YWhvby5mcjAbBgNV
25
+ HRIEFDASgRBiYXRpZm9uQHlhaG9vLmZyMA0GCSqGSIb3DQEBBQUAA4IBAQAaTVya
26
+ CGgojxBwUoadCCIsFheGsXvSFhikkXYNXy0VxEYr8BaTfGwzYh9c9T5N+Y5Mu5MW
27
+ WegqwIwRhIu6Rg7huqJ7TK50pVDF0yrZcsxvWjOfd3clblBHjKGQx5Mbu7LVNGKE
28
+ +QNdTAwYVTAA8wXHpxk200cHb9xz4e9ANpb4lonGuPz8jKmb/A7Z1M5QD6zStG8l
29
+ sTlVAhA/LZiC9gL9LtW8Iq7o7xRFhxNPKWHu6JVThH9i16eli+JignOJbGna7C40
30
+ QnOQb8zHyNL+gq2m/mnZGrSehx+6AujokjOfHbmivYMfDATOQQx0eIBI18IhacZm
31
+ 42WxhhIV2bwDtd77
32
+ -----END CERTIFICATE-----
33
+ date: 2015-08-09 00:00:00.000000000 Z
12
34
  dependencies:
13
35
  - !ruby/object:Gem::Dependency
14
36
  name: simplecov
15
37
  requirement: !ruby/object:Gem::Requirement
16
38
  requirements:
17
- - - ~>
39
+ - - "~>"
18
40
  - !ruby/object:Gem::Version
19
41
  version: '0.8'
20
42
  type: :development
21
43
  prerelease: false
22
44
  version_requirements: !ruby/object:Gem::Requirement
23
45
  requirements:
24
- - - ~>
46
+ - - "~>"
25
47
  - !ruby/object:Gem::Version
26
48
  version: '0.8'
27
49
  - !ruby/object:Gem::Dependency
28
50
  name: rake
29
51
  requirement: !ruby/object:Gem::Requirement
30
52
  requirements:
31
- - - ~>
53
+ - - "~>"
32
54
  - !ruby/object:Gem::Version
33
55
  version: '10.3'
34
56
  type: :development
35
57
  prerelease: false
36
58
  version_requirements: !ruby/object:Gem::Requirement
37
59
  requirements:
38
- - - ~>
60
+ - - "~>"
39
61
  - !ruby/object:Gem::Version
40
62
  version: '10.3'
41
63
  - !ruby/object:Gem::Dependency
42
64
  name: test-unit
43
65
  requirement: !ruby/object:Gem::Requirement
44
66
  requirements:
45
- - - ~>
67
+ - - "~>"
46
68
  - !ruby/object:Gem::Version
47
69
  version: '2.5'
48
70
  type: :development
49
71
  prerelease: false
50
72
  version_requirements: !ruby/object:Gem::Requirement
51
73
  requirements:
52
- - - ~>
74
+ - - "~>"
53
75
  - !ruby/object:Gem::Version
54
76
  version: '2.5'
55
77
  - !ruby/object:Gem::Dependency
56
78
  name: coveralls
57
79
  requirement: !ruby/object:Gem::Requirement
58
80
  requirements:
59
- - - ~>
81
+ - - "~>"
60
82
  - !ruby/object:Gem::Version
61
83
  version: '0.7'
62
84
  type: :development
63
85
  prerelease: false
64
86
  version_requirements: !ruby/object:Gem::Requirement
65
87
  requirements:
66
- - - ~>
88
+ - - "~>"
67
89
  - !ruby/object:Gem::Version
68
90
  version: '0.7'
69
91
  description: |
@@ -85,17 +107,17 @@ require_paths:
85
107
  - lib
86
108
  required_ruby_version: !ruby/object:Gem::Requirement
87
109
  requirements:
88
- - - '>='
110
+ - - ">="
89
111
  - !ruby/object:Gem::Version
90
112
  version: '0'
91
113
  required_rubygems_version: !ruby/object:Gem::Requirement
92
114
  requirements:
93
- - - '>='
115
+ - - ">="
94
116
  - !ruby/object:Gem::Version
95
117
  version: '0'
96
118
  requirements: []
97
119
  rubyforge_project:
98
- rubygems_version: 2.2.1
120
+ rubygems_version: 2.4.6
99
121
  signing_key:
100
122
  specification_version: 4
101
123
  summary: Silently execute a piece of code
Binary file