提交 007bb117 编写于 作者: A Akshay Vishnoi

Fix - to_s(:db) on Numeric range

上级 468df261
......@@ -120,7 +120,11 @@ def to_s(*args)
when :human_size
return ActiveSupport::NumberHelper.number_to_human_size(self, options)
else
super
if is_a?(Float) || format.is_a?(Symbol)
super()
else
super
end
end
end
......
......@@ -406,6 +406,26 @@ def test_to_formatted_s_is_deprecated
end
end
def test_to_s_with_invalid_formatter
assert_equal '123', 123.to_s(:invalid)
assert_equal '2.5', 2.5.to_s(:invalid)
assert_equal '100000000000000000000', (100**10).to_s(:invalid)
assert_equal '1000010.0', BigDecimal("1000010").to_s(:invalid)
end
def test_default_to_s
assert_equal '123', 123.to_s
assert_equal '1111011', 123.to_s(2)
assert_equal '2.5', 2.5.to_s
assert_equal '100000000000000000000', (100**10).to_s
assert_equal '1010110101111000111010111100010110101100011000100000000000000000000', (100**10).to_s(2)
assert_equal '1000010.0', BigDecimal("1000010").to_s
assert_equal '10000 10.0', BigDecimal("1000010").to_s('5F')
end
def test_in_milliseconds
assert_equal 10_000, 10.seconds.in_milliseconds
end
......
require 'abstract_unit'
require 'active_support/time'
require 'active_support/core_ext/numeric'
require 'active_support/core_ext/range'
class RangeTest < ActiveSupport::TestCase
......@@ -13,6 +14,11 @@ def test_to_s_from_times
assert_equal "BETWEEN '2005-12-10 15:30:00' AND '2005-12-10 17:30:00'", date_range.to_s(:db)
end
def test_to_s_with_numeric
number_range = (1..100)
assert_equal "BETWEEN '1' AND '100'", number_range.to_s(:db)
end
def test_date_range
assert_instance_of Range, DateTime.new..DateTime.new
assert_instance_of Range, DateTime::Infinity.new..DateTime::Infinity.new
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册