diff options
author | Krekoten' Marjan <krekoten@gmail.com> | 2010-08-30 22:50:44 +0300 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-09-01 09:56:54 +0200 |
commit | 57693d1362dcde9e0e32689255a22414488e1335 (patch) | |
tree | 6e33692ee4be9ef5f8f831cb42fd82b8bd9fc7c4 /activesupport | |
parent | dba4efbd0e437fb3d5a58e180e0bb314d1eb6bc6 (diff) | |
download | rails-57693d1362dcde9e0e32689255a22414488e1335.tar.gz rails-57693d1362dcde9e0e32689255a22414488e1335.tar.bz2 rails-57693d1362dcde9e0e32689255a22414488e1335.zip |
Make ActiveSupport::Duration#method_missing delegate blocks to value [#5498 state:resolved]
Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/lib/active_support/duration.rb | 2 | ||||
-rw-r--r-- | activesupport/test/core_ext/duration_test.rb | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/duration.rb b/activesupport/lib/active_support/duration.rb index a535e2b668..de3ded1e1f 100644 --- a/activesupport/lib/active_support/duration.rb +++ b/activesupport/lib/active_support/duration.rb @@ -99,7 +99,7 @@ module ActiveSupport private def method_missing(method, *args, &block) #:nodoc: - value.send(method, *args) + value.send(method, *args, &block) end end end diff --git a/activesupport/test/core_ext/duration_test.rb b/activesupport/test/core_ext/duration_test.rb index 8469f78566..b6456f0a30 100644 --- a/activesupport/test/core_ext/duration_test.rb +++ b/activesupport/test/core_ext/duration_test.rb @@ -129,6 +129,14 @@ class DurationTest < ActiveSupport::TestCase assert_equal Time.local(2009,3,29,0,0,0) + 1.day, Time.local(2009,3,30,0,0,0) end end + + def test_delegation_with_block_works + counter = 0 + assert_nothing_raised do + 1.minute.times {counter += 1} + end + assert_equal counter, 60 + end protected def with_env_tz(new_tz = 'US/Eastern') |