Skip to content

Commit 55bd66a

Browse files
committed
Fix zones1970.tab handling on Ruby 1.8.7.
On Ruby 1.8.7, calling String#split clears the Regexp global variables. Also remove an unnecessary `|| []` in the assignment of :zones.
1 parent bdf6dd0 commit 55bd66a

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

lib/tzinfo/data/tzdataparser.rb

+3-1
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ def load_countries
311311
line.chomp!
312312

313313
if line =~ /^([A-Z]{2}(?:,[A-Z]{2})*)\t([^\t]+)\t([^\t]+)(\t(.*))?$/
314-
codes = $1.split(',')
314+
codes = $1
315315
location_str = $2
316316
zone_name = $3
317317
description = $5
@@ -325,6 +325,8 @@ def load_countries
325325

326326
country_timezone = TZDataCountryTimezone.new(zone, description, location)
327327

328+
codes = codes.split(',')
329+
328330
(primary_zones[codes.first] ||= []) << country_timezone
329331

330332
codes[1..-1].each do |code|

test/tc_country_index.rb

+4-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ def countries
1313
line.chomp!
1414

1515
if line =~ /\A([A-Z]{2}(?:,[A-Z]{2})*)\t(?:([+\-])(\d{2})(\d{2})([+\-])(\d{3})(\d{2})|([+\-])(\d{2})(\d{2})(\d{2})([+\-])(\d{3})(\d{2})(\d{2}))\t([^\t]+)(?:\t([^\t]+))?\z/
16-
codes = $1.split(',')
16+
codes = $1
1717

1818
if $2
1919
latitude = dms_to_rational($2, $3, $4)
@@ -27,6 +27,7 @@ def countries
2727
description = $17
2828

2929
country_timezone = {:zone_identifier => zone_identifier, :latitude => latitude, :longitude => longitude, :description => description}
30+
codes = codes.split(',')
3031

3132
(primary_zones[codes.first] ||= []) << country_timezone
3233

@@ -36,7 +37,7 @@ def countries
3637
end
3738
end
3839
end
39-
40+
4041
countries = {}
4142

4243
open_file(File.join(DATA_DIR, 'iso3166.tab'), 'r', :external_encoding => 'UTF-8', :internal_encoding => 'UTF-8') do |file|
@@ -47,7 +48,7 @@ def countries
4748
code = $1
4849
name = $2
4950
zones = (primary_zones[code] || []) + (secondary_zones[code] || [])
50-
countries[code] = {:name => name, :zones => zones || []}
51+
countries[code] = {:name => name, :zones => zones}
5152
end
5253
end
5354
end

0 commit comments

Comments
 (0)