From f62d0780f55575724369585e25a6e864cd87cfed Mon Sep 17 00:00:00 2001 From: Rowan Crawford Date: Sat, 1 May 2010 23:11:58 +1200 Subject: [PATCH] proper test for multi-region requiring --- lib/holidays.rb | 4 +++- test/test_multiple_regions.rb | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/holidays.rb b/lib/holidays.rb index 223ffbf..10b0890 100644 --- a/lib/holidays.rb +++ b/lib/holidays.rb @@ -252,6 +252,8 @@ private # Found sub region wild-card regions.delete_if do |reg| if reg.to_s =~ /_$/ + prefix = reg.to_s.split('_').first + raise UnknownRegionError unless @@regions.include?(prefix.to_sym) or begin require "holidays/#{prefix}"; rescue LoadError; false; end regions << @@regions.select { |dr| dr.to_s =~ Regexp.new("^#{reg}") } true end @@ -261,7 +263,7 @@ private require "holidays/north_america" if regions.include?(:us) # special case for north_america/US cross-linking - raise UnknownRegionError unless regions.all? { |r| r == :any or @@regions.include?(r) or begin require "holidays/#{r.to_s.split('_').first}"; rescue LoadError; false; end } + raise UnknownRegionError unless regions.all? { |r| r == :any or @@regions.include?(r) or begin require "holidays/#{r.to_s}"; rescue LoadError; false; end } regions end diff --git a/test/test_multiple_regions.rb b/test/test_multiple_regions.rb index da4629f..56fb3f0 100644 --- a/test/test_multiple_regions.rb +++ b/test/test_multiple_regions.rb @@ -1,6 +1,4 @@ require File.dirname(__FILE__) + '/test_helper' -require 'holidays/gb' -require 'holidays/ie' class MultipleRegionsTests < Test::Unit::TestCase def setup @@ -11,6 +9,10 @@ class MultipleRegionsTests < Test::Unit::TestCase h = Holidays.on(Date.civil(2008,12,26), :ie) assert_equal 'St. Stephen\'s Day', h[0][:name] + h = Holidays.on(Date.civil(2008,5,9), :gb_) + assert_equal 'Liberation Day', (h[0] || {})[:name] + + h = Holidays.on(Date.civil(2008,5,9), :je) assert_equal 'Liberation Day', h[0][:name]