silent 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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