fedux_org-stdlib 0.11.4 → 0.11.5

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: 49ef9ed590375efab23c372feaec75922411f9e7
4
- data.tar.gz: 3267002f81373359476c6c72dd9e8b6fdcdfec09
3
+ metadata.gz: bc427727280e467a41cb572e2f9bcb7a6cc6bacd
4
+ data.tar.gz: 8f4fe1b5a4dfec824b8d3522bc8ee3e741a8a034
5
5
  SHA512:
6
- metadata.gz: e8b409c83b298647718d396aebe4315d38b5f17c0b41bf5da1ae4df547fd31e0437a8b743fa9293a058daf8cf1a0e973b9fa257404165686fa3e284fa7155196
7
- data.tar.gz: b2ba950feffadd2eb7eae91537d8089f0fe983c4881905ad440a1c08345bcc4e327519bf64acf8ea9abcc34982c821b1d217faa0a75e00c12876a97b7c484a7c
6
+ metadata.gz: a5979eb7ca3a7adfb24bc104127ddad9337ee9d47374d10744b4b17feb7b9d3fd4d2dc1abba807d30587d54c40370442960df7e0ec50adb1c656f17ad3edc219
7
+ data.tar.gz: 30004823eb995f781e8c547f2a4d62cc7d0e656b6c6ab897b99be338b1a87ef589c30814f029ddffcdd89befd35cec95c1005d565bbb829b68ee6ac6abde41a9
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fedux_org-stdlib (0.11.3)
4
+ fedux_org-stdlib (0.11.4)
5
5
  activesupport
6
6
 
7
7
  PATH
@@ -0,0 +1,116 @@
1
+ require 'rbconfig'
2
+ require 'tempfile'
3
+
4
+ module Kernel
5
+ # Sets $VERBOSE to nil for the duration of the block and back to its original
6
+ # value afterwards.
7
+ #
8
+ # silence_warnings do
9
+ # value = noisy_call # no warning voiced
10
+ # end
11
+ #
12
+ # noisy_call # warning voiced
13
+ def silence_warnings
14
+ with_warnings(nil) { yield }
15
+ end
16
+
17
+ # Sets $VERBOSE to +true+ for the duration of the block and back to its
18
+ # original value afterwards.
19
+ def enable_warnings
20
+ with_warnings(true) { yield }
21
+ end
22
+
23
+ # Sets $VERBOSE for the duration of the block and back to its original
24
+ # value afterwards.
25
+ def with_warnings(flag)
26
+ old_verbose, $VERBOSE = $VERBOSE, flag
27
+ yield
28
+ ensure
29
+ $VERBOSE = old_verbose
30
+ end
31
+
32
+ # For compatibility
33
+ def silence_stderr #:nodoc:
34
+ silence_stream(STDERR) { yield }
35
+ end
36
+
37
+ # Deprecated : this method is not thread safe
38
+ # Silences any stream for the duration of the block.
39
+ #
40
+ # silence_stream(STDOUT) do
41
+ # puts 'This will never be seen'
42
+ # end
43
+ #
44
+ # puts 'But this will'
45
+ #
46
+ # This method is not thread-safe.
47
+ def silence_stream(stream)
48
+ old_stream = stream.dup
49
+ stream.reopen(RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ ? 'NUL:' : '/dev/null')
50
+ stream.sync = true
51
+ yield
52
+ ensure
53
+ stream.reopen(old_stream)
54
+ old_stream.close
55
+ end
56
+
57
+ # Blocks and ignores any exception passed as argument if raised within the block.
58
+ #
59
+ # suppress(ZeroDivisionError) do
60
+ # 1/0
61
+ # puts 'This code is NOT reached'
62
+ # end
63
+ #
64
+ # puts 'This code gets executed and nothing related to ZeroDivisionError was seen'
65
+ def suppress(*exception_classes)
66
+ yield
67
+ rescue *exception_classes
68
+ end
69
+
70
+ # Captures the given stream and returns it:
71
+ #
72
+ # stream = capture(:stdout) { puts 'notice' }
73
+ # stream # => "notice\n"
74
+ #
75
+ # stream = capture(:stderr) { warn 'error' }
76
+ # stream # => "error\n"
77
+ #
78
+ # even for subprocesses:
79
+ #
80
+ # stream = capture(:stdout) { system('echo notice') }
81
+ # stream # => "notice\n"
82
+ #
83
+ # stream = capture(:stderr) { system('echo error 1>&2') }
84
+ # stream # => "error\n"
85
+ def capture(stream)
86
+ stream = stream.to_s
87
+ captured_stream = Tempfile.new(stream)
88
+ stream_io = eval("$#{stream}")
89
+ origin_stream = stream_io.dup
90
+ stream_io.reopen(captured_stream)
91
+
92
+ yield
93
+
94
+ stream_io.rewind
95
+ return captured_stream.read
96
+ ensure
97
+ captured_stream.close
98
+ captured_stream.unlink
99
+ stream_io.reopen(origin_stream)
100
+ end
101
+ alias :silence :capture
102
+
103
+ # Silences both STDOUT and STDERR, even for subprocesses.
104
+ #
105
+ # quietly { system 'bundle install' }
106
+ #
107
+ # This method is not thread-safe.
108
+ def quietly
109
+ silence_stream(STDOUT) do
110
+ silence_stream(STDERR) do
111
+ yield
112
+ end
113
+ end
114
+ end
115
+ end
116
+
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
  # FeduxOrgStdlib
3
3
  module FeduxOrgStdlib
4
- VERSION = '0.11.4'
4
+ VERSION = '0.11.5'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fedux_org-stdlib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.4
4
+ version: 0.11.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Meyer
@@ -69,6 +69,7 @@ files:
69
69
  - lib/fedux_org_stdlib/core_ext/hash.rb
70
70
  - lib/fedux_org_stdlib/core_ext/hash/list.rb
71
71
  - lib/fedux_org_stdlib/core_ext/hash/options.rb
72
+ - lib/fedux_org_stdlib/core_ext/kernel/reporting.rb
72
73
  - lib/fedux_org_stdlib/core_ext/shellwords.rb
73
74
  - lib/fedux_org_stdlib/core_ext/shellwords/clean.rb
74
75
  - lib/fedux_org_stdlib/core_ext/string.rb