diff options
author | Jeremy Evans <[email protected]> | 2019-07-31 12:57:21 -0700 |
---|---|---|
committer | Hiroshi SHIBATA <[email protected]> | 2019-09-27 11:39:02 +0900 |
commit | 9494ef8b2de3a7224eb85800606e7c046964cbd2 () | |
tree | d7a0a42148a614f23fcdd4a18b6bd2e96b77149d /lib/fileutils.rb | |
parent | 02cd42050515b3af67396a25e78d948adcac6cdf (diff) |
[ruby/fileutils] Do not break in verbose mode if using FileUtils with a frozen object
If FileUtils is included into another object, and verbose mode is used, a FrozenError is currently raised unless the object has the @fileutils_output and @fileutils_label instance variables. This fixes things so that it does not attempt to set the instance variables, but it still uses them if they are present. https://.com/ruby/fileutils/commit/689cb9c56a
-rw-r--r-- | lib/fileutils.rb | 18 |
1 files changed, 6 insertions, 12 deletions
@@ -1608,13 +1608,13 @@ module FileUtils end private_module_function :fu_same? - @fileutils_output = $stderr - @fileutils_label = '' - def fu_output_message(msg) #:nodoc: - @fileutils_output ||= $stderr - @fileutils_label ||= '' - @fileutils_output.puts @fileutils_label + msg end private_module_function :fu_output_message @@ -1695,8 +1695,6 @@ module FileUtils # module Verbose include FileUtils - @fileutils_output = $stderr - @fileutils_label = '' names = ::FileUtils.collect_method(:verbose) names.each do |name| module_eval(<<-EOS, __FILE__, __LINE__ + 1) @@ -1720,8 +1718,6 @@ module FileUtils module NoWrite include FileUtils include LowMethods - @fileutils_output = $stderr - @fileutils_label = '' names = ::FileUtils.collect_method(:noop) names.each do |name| module_eval(<<-EOS, __FILE__, __LINE__ + 1) @@ -1746,8 +1742,6 @@ module FileUtils module DryRun include FileUtils include LowMethods - @fileutils_output = $stderr - @fileutils_label = '' names = ::FileUtils.collect_method(:noop) names.each do |name| module_eval(<<-EOS, __FILE__, __LINE__ + 1) |