提交 a6067276 编写于 作者: J Jeremy Kemper

Extract String#bytesize shim

上级 cdf60e46
unless '1.9'.respond_to?(:bytesize)
class String
alias :bytesize :size
end
end
......@@ -6,6 +6,7 @@
=end
if RUBY_VERSION < '1.9'
require 'active_support/core_ext/string/bytesize'
# KeyError is raised by String#% when the string contains a named placeholder
# that is not contained in the given arguments hash. Ruby 1.9 includes and
......@@ -24,8 +25,6 @@ def initialize(message = nil)
# the meaning of the msgids using "named argument" instead of %s/%d style.
class String
# For older ruby versions, such as ruby-1.8.5
alias :bytesize :size unless instance_methods.find {|m| m.to_s == 'bytesize'}
alias :interpolate_without_ruby_19_syntax :% # :nodoc:
INTERPOLATION_PATTERN = Regexp.union(
......@@ -90,4 +89,4 @@ def %(args)
end
end
end
end
\ No newline at end of file
end
......@@ -345,3 +345,10 @@ def test_string_interpolation_raises_an_argument_error_when_mixing_named_and_unn
assert_raises(ArgumentError) { "%{name} %f" % [1.0, 2.0] }
end
end
class StringBytesizeTest < Test::Unit::TestCase
def test_bytesize
assert_respond_to 'foo', :bytesize
assert_equal 3, 'foo'.bytesize
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册