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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/lib/silent.rb +17 -0
  3. data/tests/tests.rb +84 -0
  4. metadata +103 -0
@@ -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
@@ -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
@@ -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