aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorKrekoten' Marjan <krekoten@gmail.com>2010-08-30 22:50:44 +0300
committerJosé Valim <jose.valim@gmail.com>2010-09-01 09:56:54 +0200
commit57693d1362dcde9e0e32689255a22414488e1335 (patch)
tree6e33692ee4be9ef5f8f831cb42fd82b8bd9fc7c4 /activesupport
parentdba4efbd0e437fb3d5a58e180e0bb314d1eb6bc6 (diff)
downloadrails-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.rb2
-rw-r--r--activesupport/test/core_ext/duration_test.rb8
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')