silent 0.1.0 → 0.2.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
  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