silent 0.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 +7 -0
- data/lib/silent.rb +17 -0
- data/tests/tests.rb +84 -0
- metadata +103 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ec283edc025445022958699eb52de78fda2eb844
|
4
|
+
data.tar.gz: 5b1bef3adac53e0feb40f29816d97aea1e938242
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d2eeca5f6836299a8de690638d268ee77e5f271442469a3d501bcf6e92bc6a44e2c3305dd5d606d6c6d6b1d1112ff2c058a66c63ee7a900a4fedd377066f7b54
|
7
|
+
data.tar.gz: 8c756f5b254700f9390566951597e006ab7192b856a49a1ddf38f04047af3ecd078c19fd3f96b6d1ad35d2a41eda9ff4e41ae99f39841141b1bff2e09b598f0a
|
data/lib/silent.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# -*- coding: UTF-8 -*-
|
2
|
+
|
3
|
+
# Silently execute a block. Arguments should be :stdout and/or :stderr, and a
|
4
|
+
# block should be given.
|
5
|
+
def silent(*what)
|
6
|
+
return unless block_given?
|
7
|
+
|
8
|
+
_stdout, $stdout = $stdout, StringIO.new if what.include?(:stdout)
|
9
|
+
_stderr, $stderr = $stderr, StringIO.new if what.include?(:stderr)
|
10
|
+
|
11
|
+
res = yield
|
12
|
+
|
13
|
+
$stdout = _stdout if what.include?(:stdout)
|
14
|
+
$stderr = _stderr if what.include?(:stderr)
|
15
|
+
|
16
|
+
res
|
17
|
+
end
|
data/tests/tests.rb
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# -*- coding: UTF-8 -*-
|
3
|
+
|
4
|
+
require 'coveralls'
|
5
|
+
Coveralls.wear!
|
6
|
+
|
7
|
+
require 'test/unit'
|
8
|
+
require 'simplecov'
|
9
|
+
|
10
|
+
test_dir = File.expand_path( File.dirname(__FILE__) )
|
11
|
+
|
12
|
+
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
13
|
+
SimpleCov.start { add_filter '/tests/' }
|
14
|
+
|
15
|
+
require 'silent'
|
16
|
+
|
17
|
+
class SilentTests < Test::Unit::TestCase
|
18
|
+
def setup
|
19
|
+
@_stdout, $stdout = $stdout, StringIO.new
|
20
|
+
@_stderr, $stderr = $stderr, StringIO.new
|
21
|
+
end
|
22
|
+
|
23
|
+
def teardown
|
24
|
+
$stdout = @_stdout
|
25
|
+
$stderr = @_stderr
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_no_block
|
29
|
+
assert_nil(silent)
|
30
|
+
assert_nil(silent(:stdout))
|
31
|
+
assert_nil(silent(:stderr))
|
32
|
+
assert_nil(silent(:stdout, :stderr))
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_returned_value
|
36
|
+
n = rand
|
37
|
+
res = silent { n }
|
38
|
+
assert_equal(n, res)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_silent_stderr_no_stdout
|
42
|
+
s = 'bar'
|
43
|
+
silent(:stderr) do
|
44
|
+
$stderr.write('foo')
|
45
|
+
print s
|
46
|
+
end
|
47
|
+
|
48
|
+
$stderr.seek(0)
|
49
|
+
$stdout.seek(0)
|
50
|
+
|
51
|
+
assert_equal('', $stderr.read)
|
52
|
+
assert_equal(s, $stdout.read)
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_silent_stderr_and_stdout
|
56
|
+
silent(:stderr, :stdout) do
|
57
|
+
$stderr.write('bar')
|
58
|
+
print 'foo'
|
59
|
+
end
|
60
|
+
|
61
|
+
$stderr.seek(0)
|
62
|
+
$stdout.seek(0)
|
63
|
+
|
64
|
+
assert_equal('', $stderr.read)
|
65
|
+
assert_equal('', $stdout.read)
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_silent_stdout_no_stderr
|
69
|
+
s = 'bar'
|
70
|
+
silent(:stdout) do
|
71
|
+
print 'foo'
|
72
|
+
$stderr.write(s)
|
73
|
+
end
|
74
|
+
|
75
|
+
$stderr.seek(0)
|
76
|
+
$stdout.seek(0)
|
77
|
+
|
78
|
+
assert_equal(s, $stderr.read)
|
79
|
+
assert_equal('', $stdout.read)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
|
84
|
+
exit Test::Unit::AutoRunner.run
|
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: silent
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Baptiste Fontaine
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-04-24 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: simplecov
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.8'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.8'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: test-unit
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.5'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.5'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: coveralls
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.7'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.7'
|
69
|
+
description: |
|
70
|
+
Temporary disable stdout/stderr while you execute a piece of code
|
71
|
+
email: batifon@yahoo.fr
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- lib/silent.rb
|
77
|
+
- tests/tests.rb
|
78
|
+
homepage: https://github.com/bfontaine/silent
|
79
|
+
licenses:
|
80
|
+
- MIT
|
81
|
+
metadata: {}
|
82
|
+
post_install_message:
|
83
|
+
rdoc_options: []
|
84
|
+
require_paths:
|
85
|
+
- lib
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
requirements: []
|
97
|
+
rubyforge_project:
|
98
|
+
rubygems_version: 2.2.1
|
99
|
+
signing_key:
|
100
|
+
specification_version: 4
|
101
|
+
summary: Silently execute a piece of code
|
102
|
+
test_files:
|
103
|
+
- tests/tests.rb
|