aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2013-11-30 09:35:29 -0800
committerRafael Mendonça França <rafaelmfranca@gmail.com>2013-11-30 09:35:29 -0800
commitcd4d9316591ab61e478f98e1697599cdffc11d8c (patch)
treea9c83fd7b9532e0a07900aa5117754b46f658c44 /activesupport
parenta2dad133d9f7cdf5c5ea38ec9ca01659f250a318 (diff)
parent8033d3370c56d8d69673c000182922228504706c (diff)
downloadrails-cd4d9316591ab61e478f98e1697599cdffc11d8c.tar.gz
rails-cd4d9316591ab61e478f98e1697599cdffc11d8c.tar.bz2
rails-cd4d9316591ab61e478f98e1697599cdffc11d8c.zip
Merge pull request #13055 from dmitriy-kiriyenko/fix-segmentation-fault-it-ruby-2.0.0-p353
Fix segmentation fault in Ruby 2.0.0-p353.
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/lib/active_support/duration.rb8
-rw-r--r--activesupport/test/core_ext/duration_test.rb5
2 files changed, 13 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/duration.rb b/activesupport/lib/active_support/duration.rb
index 87b6407038..7df4857c25 100644
--- a/activesupport/lib/active_support/duration.rb
+++ b/activesupport/lib/active_support/duration.rb
@@ -99,6 +99,14 @@ module ActiveSupport
private
+ # We define it as a workaround to Ruby 2.0.0-p353 bug.
+ # For more information, check rails/rails#13055.
+ # It should be dropped once a new Ruby patch-level
+ # release after 2.0.0-p353 happens.
+ def ===(other) #:nodoc:
+ value === other
+ end
+
def method_missing(method, *args, &block) #:nodoc:
value.send(method, *args, &block)
end
diff --git a/activesupport/test/core_ext/duration_test.rb b/activesupport/test/core_ext/duration_test.rb
index 47257debe4..8eae8c832c 100644
--- a/activesupport/test/core_ext/duration_test.rb
+++ b/activesupport/test/core_ext/duration_test.rb
@@ -158,6 +158,11 @@ class DurationTest < ActiveSupport::TestCase
assert_equal '172800', 2.days.to_json
end
+ def test_case_when
+ cased = case 1.day when 1.day then "ok" end
+ assert_equal cased, "ok"
+ end
+
protected
def with_env_tz(new_tz = 'US/Eastern')
old_tz, ENV['TZ'] = ENV['TZ'], new_tz