Remove Ruby <2.2 support from tool/lib/vcs.rb

BASERUBY now requires at least Ruby 2.2, so there is no point
trying to support older ruby versions here.
This commit is contained in:
Jeremy Evans 2020-03-03 12:53:09 -08:00
parent 9a3371be8f
commit 07b2102a88
Notes: git 2020-05-28 23:57:53 +09:00

View File

@ -23,78 +23,13 @@ def IO.pread(*args)
popen(*args) {|f|f.read}
end
if RUBY_VERSION < "2.0"
class IO
@orig_popen = method(:popen)
if defined?(fork)
def self.popen(command, *rest, &block)
if command.kind_of?(Hash)
env = command
command = rest.shift
end
opts = rest.last
if opts.kind_of?(Hash)
dir = opts.delete(:chdir)
rest.pop if opts.empty?
opts.delete(:external_encoding)
end
if block
@orig_popen.call("-", *rest) do |f|
if f
yield(f)
else
Dir.chdir(dir) if dir
ENV.replace(env) if env
exec(*command)
end
end
else
f = @orig_popen.call("-", *rest)
unless f
Dir.chdir(dir) if dir
ENV.replace(env) if env
exec(*command)
end
f
end
end
else
require 'shellwords'
def self.popen(command, *rest, &block)
if command.kind_of?(Hash)
env = command
oldenv = ENV.to_hash
command = rest.shift
end
opts = rest.last
if opts.kind_of?(Hash)
dir = opts.delete(:chdir)
rest.pop if opts.empty?
opts.delete(:external_encoding)
end
command = command.shelljoin if Array === command
Dir.chdir(dir || ".") do
ENV.replace(env) if env
@orig_popen.call(command, *rest, &block)
ENV.replace(oldenv) if oldenv
end
end
end
end
else
module DebugPOpen
verbose, $VERBOSE = $VERBOSE, nil if RUBY_VERSION < "2.1"
refine IO.singleton_class do
def popen(*args)
VCS::DEBUG_OUT.puts args.inspect if $DEBUG
super
end
end
ensure
$VERBOSE = verbose unless verbose.nil?
end
using DebugPOpen
module DebugSystem
@ -120,7 +55,6 @@ else
module Kernel
prepend(DebugSystem)
end
end
class VCS
prepend(DebugSystem) if defined?(DebugSystem)