brew vendor-gems: commit updates.

This commit is contained in:
Mike McQuaid 2019-12-25 20:46:50 +00:00
parent a76aa506f3
commit 00f3475012
No known key found for this signature in database
GPG Key ID: 48A898132FD8EE70
30 changed files with 72 additions and 26 deletions

View File

@ -7,7 +7,7 @@ $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/concurrent-ruby-1.1.5
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/i18n-1.7.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/minitest-5.13.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/thread_safe-0.3.6/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/tzinfo-1.2.5/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/tzinfo-1.2.6/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/zeitwerk-2.2.2/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/activesupport-6.0.2.1/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ast-2.4.0/lib"

View File

@ -137,10 +137,40 @@ module TZInfo
def self.open_file(file_name, mode, opts, &block)
File.open(file_name, mode, &block)
end
else
elsif RUBY_VERSION =~ /\A1\.9\./
def self.open_file(file_name, mode, opts, &block)
File.open(file_name, mode, opts, &block)
end
else
# Evaluate method as a string because **opts isn't valid syntax prior to
# Ruby 2.0.
eval(<<-EOF
def self.open_file(file_name, mode, opts, &block)
File.open(file_name, mode, **opts, &block)
end
EOF
)
end
# Object#untaint is a deprecated no-op in Ruby >= 2.7 and will be removed in
# 3.0. Add a refinement to either silence the warning, or supply the method
# if needed.
old_verbose = $VERBOSE
$VERBOSE = false
begin
o = Object.new
if [:taint, :untaint, :tainted?].none? {|m| o.respond_to?(m) } || !o.taint.tainted?
module UntaintExt
refine Object do
def untaint
self
end
end
end
end
ensure
$VERBOSE = old_verbose
end
end
end

View File

@ -1,4 +1,6 @@
module TZInfo
using RubyCoreSupport::UntaintExt if RubyCoreSupport.const_defined?(:UntaintExt)
# A DataSource that loads data from the set of Ruby modules included in the
# TZInfo::Data library (tzinfo-data gem).
#
@ -6,15 +8,30 @@ module TZInfo
#
# TZInfo::DataSource.set(:ruby)
class RubyDataSource < DataSource
# Base path for require.
REQUIRE_PATH = File.join('tzinfo', 'data', 'definitions')
# Whether the timezone index has been loaded yet.
@@timezone_index_loaded = false
# Whether the country index has been loaded yet.
@@country_index_loaded = false
# Initializes a new RubyDataSource instance.
def initialize
tzinfo_data = File.join('tzinfo', 'data')
begin
require(tzinfo_data)
data_file = File.join('', 'tzinfo', 'data.rb')
path = $".reverse_each.detect {|p| p.end_with?(data_file) }
if path
@base_path = File.join(File.dirname(path), 'data').untaint
else
@base_path = tzinfo_data
end
rescue LoadError
@base_path = tzinfo_data
end
end
# Returns a TimezoneInfo instance for a given identifier.
# Raises InvalidTimezoneIdentifier if the timezone is not found or the
# identifier is invalid.
@ -93,27 +110,17 @@ module TZInfo
end
# Requires an index by its name.
def self.require_index(name)
def require_index(name)
require_data(*['indexes', name])
end
# Requires a file from tzinfo/data.
def require_data(*file)
self.class.require_data(*file)
end
# Requires a file from tzinfo/data.
def self.require_data(*file)
require File.join('tzinfo', 'data', *file)
require(File.join(@base_path, *file))
end
# Loads in the index of timezones if it hasn't already been loaded.
def load_timezone_index
self.class.load_timezone_index
end
# Loads in the index of timezones if it hasn't already been loaded.
def self.load_timezone_index
unless @@timezone_index_loaded
require_index('timezones')
@@timezone_index_loaded = true
@ -122,11 +129,6 @@ module TZInfo
# Loads in the index of countries if it hasn't already been loaded.
def load_country_index
self.class.load_country_index
end
# Loads in the index of countries if it hasn't already been loaded.
def self.load_country_index
unless @@country_index_loaded
require_index('countries')
@@country_index_loaded = true

View File

@ -571,17 +571,21 @@ module TZInfo
# version 2.0.0, %z will be passed to Time#strftime and DateTime#strftime
# instead. Some of the formatting options may cease to be available
# depending on the version of Ruby in use (for example, %:::z is only
# supported by Time#strftime from MRI version 2.0.0 onwards.)
# supported by Time#strftime from MRI version 2.0.0 onwards).
def strftime(format, utc = Time.now.utc)
utc = TimeOrDateTime.wrap(utc)
period = period_for_utc(utc)
local = period.to_local(utc)
local = Time.at(local).utc unless local.kind_of?(Time) || local.kind_of?(DateTime)
local_wrapped = period.to_local(utc)
local = local_wrapped.to_orig
local = local_wrapped.to_time unless local.kind_of?(Time) || local.kind_of?(DateTime)
abbreviation = period.abbreviation.to_s.gsub(/%/, '%%')
format = format.gsub(/%(%*)(Z|:*z)/) do
format = format.gsub(/%(%*)([sZ]|:*z)/) do
if $1.length.odd?
# Escaped literal percent or series of percents. Pass on to strftime.
"#$1%#$2"
elsif $2 == "s"
"#$1#{utc.to_i}"
elsif $2 == "Z"
"#$1#{abbreviation}"
else

View File

@ -1,4 +1,12 @@
module TZInfo
# Use send as a workaround for an issue on JRuby 9.2.9.0 where using the
# refinement causes calls to RubyCoreSupport.file_open to fail to pass the
# block parameter.
#
# https://travis-ci.org/tzinfo/tzinfo/jobs/628812051#L1931
# https://github.com/jruby/jruby/issues/6009
send(:using, TZInfo::RubyCoreSupport::UntaintExt) if TZInfo::RubyCoreSupport.const_defined?(:UntaintExt)
# An InvalidZoneinfoDirectory exception is raised if the DataSource is
# set to a specific zoneinfo path, which is not a valid zoneinfo directory
# (i.e. a directory containing index files named iso3166.tab and zone.tab

View File

@ -1,4 +1,6 @@
module TZInfo
using RubyCoreSupport::UntaintExt if RubyCoreSupport.const_defined?(:UntaintExt)
# An InvalidZoneinfoFile exception is raised if an attempt is made to load an
# invalid zoneinfo file.
class InvalidZoneinfoFile < StandardError