aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/CHANGELOG2
-rw-r--r--activesupport/lib/active_support/time_with_zone.rb6
-rw-r--r--activesupport/test/core_ext/time_with_zone_test.rb7
3 files changed, 15 insertions, 0 deletions
diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG
index d72fdadf3f..6b1130a32a 100644
--- a/activesupport/CHANGELOG
+++ b/activesupport/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* TimeWithZone responds to Ruby 1.9 weekday-named query methods [Geoff Buesing]
+
* TimeWithZone caches TZInfo::TimezonePeriod used for time conversion so that it can be reused, and enforces DST rules correctly when instance is created from a local time [Geoff Buesing]
* Fixed that BufferedLogger should create its own directory if one doesn't already exist #11285 [lotswholetime]
diff --git a/activesupport/lib/active_support/time_with_zone.rb b/activesupport/lib/active_support/time_with_zone.rb
index 68585e8273..10c3543d6e 100644
--- a/activesupport/lib/active_support/time_with_zone.rb
+++ b/activesupport/lib/active_support/time_with_zone.rb
@@ -153,6 +153,12 @@ module ActiveSupport
alias_method :mday, :day
alias_method :month, :mon
+ %w(sunday? monday? tuesday? wednesday? thursday? friday? saturday?).each do |name|
+ define_method(name) do
+ time.__send__(name)
+ end
+ end unless RUBY_VERSION < '1.9'
+
def to_a
time.to_a[0, 8].push(dst?, zone)
end
diff --git a/activesupport/test/core_ext/time_with_zone_test.rb b/activesupport/test/core_ext/time_with_zone_test.rb
index 5f1a002071..e828e62f9b 100644
--- a/activesupport/test/core_ext/time_with_zone_test.rb
+++ b/activesupport/test/core_ext/time_with_zone_test.rb
@@ -281,6 +281,13 @@ uses_tzinfo 'TimeWithZoneTest' do
assert_equal true, twz.dst?
assert_equal 'EDT', twz.zone
end
+
+ def test_ruby_19_weekday_name_query_methods
+ ruby_19_or_greater = RUBY_VERSION >= '1.9'
+ %w(sunday? monday? tuesday? wednesday? thursday? friday? saturday?).each do |name|
+ assert_equal ruby_19_or_greater, @twz.respond_to?(name)
+ end
+ end
end
class TimeWithZoneMethodsForTimeAndDateTimeTest < Test::Unit::TestCase