未验证 提交 7045e03d 编写于 作者: V Vipul A M

Fix duplicable? for Ratiional and Complex on ruby master, since they are now duplicable

上级 eb851004
...@@ -124,21 +124,31 @@ def duplicable? ...@@ -124,21 +124,31 @@ def duplicable?
end end
class Complex class Complex
# Complexes are not duplicable: begin
# Complex(1).dup
# Complex(1).duplicable? # => false rescue TypeError
# Complex(1).dup # => TypeError: can't copy Complex
def duplicable? # Complexes are not duplicable for RUBY_VERSION < 2.5.0:
false #
# Complex(1).duplicable? # => false
# Complex(1).dup # => TypeError: can't copy Complex
def duplicable?
false
end
end end
end end
class Rational class Rational
# Rationals are not duplicable: begin
# Rational(1).dup
# Rational(1).duplicable? # => false rescue TypeError
# Rational(1).dup # => TypeError: can't copy Rational
def duplicable? # Rationals are not duplicable for RUBY_VERSION < 2.5.0:
false #
# Rational(1).duplicable? # => false
# Rational(1).dup # => TypeError: can't copy Rational
def duplicable?
false
end
end end
end end
...@@ -4,7 +4,10 @@ ...@@ -4,7 +4,10 @@
require "active_support/core_ext/numeric/time" require "active_support/core_ext/numeric/time"
class DuplicableTest < ActiveSupport::TestCase class DuplicableTest < ActiveSupport::TestCase
if RUBY_VERSION >= "2.4.1" if RUBY_VERSION >= "2.5.0"
RAISE_DUP = [method(:puts)]
ALLOW_DUP = ["1", "symbol_from_string".to_sym, Object.new, /foo/, [], {}, Time.now, Class.new, Module.new, BigDecimal.new("4.56"), nil, false, true, 1, 2.3, Complex(1), Rational(1)]
elsif RUBY_VERSION >= "2.4.1"
RAISE_DUP = [method(:puts), Complex(1), Rational(1)] RAISE_DUP = [method(:puts), Complex(1), Rational(1)]
ALLOW_DUP = ["1", "symbol_from_string".to_sym, Object.new, /foo/, [], {}, Time.now, Class.new, Module.new, BigDecimal.new("4.56"), nil, false, true, 1, 2.3] ALLOW_DUP = ["1", "symbol_from_string".to_sym, Object.new, /foo/, [], {}, Time.now, Class.new, Module.new, BigDecimal.new("4.56"), nil, false, true, 1, 2.3]
elsif RUBY_VERSION >= "2.4.0" # Due to 2.4.0 bug. This elsif cannot be removed unless we drop 2.4.0 support... elsif RUBY_VERSION >= "2.4.0" # Due to 2.4.0 bug. This elsif cannot be removed unless we drop 2.4.0 support...
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册