Add ActiveSupport::Multibyte::Chars#ord method so that it returns correct Unicode value instead of falling back on String#ord in CoreExtensions, which is not multibyte compatible
[#1483 state:committed] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
This commit is contained in:
parent
9b22e56d89
commit
4e60eebae0
|
@ -1,5 +1,7 @@
|
||||||
*2.3.0 [Edge]*
|
*2.3.0 [Edge]*
|
||||||
|
|
||||||
|
* Multibyte: add multibyte-safe Chars#ord rather than falling back to String#ord. #1483 [Jason Cheow]
|
||||||
|
|
||||||
* I18n support for Array#to_sentence. Introduces support.array.words_connector, .two_words_connector, and .last_word_connector translation keys. #1397 [Akira Matsuda]
|
* I18n support for Array#to_sentence. Introduces support.array.words_connector, .two_words_connector, and .last_word_connector translation keys. #1397 [Akira Matsuda]
|
||||||
|
|
||||||
* Added ActiveSupport::OrderedHash#each_key and ActiveSupport::OrderedHash#each_value #1410 [Christoffer Sawicki]
|
* Added ActiveSupport::OrderedHash#each_key and ActiveSupport::OrderedHash#each_value #1410 [Christoffer Sawicki]
|
||||||
|
|
|
@ -344,6 +344,14 @@ module ActiveSupport #:nodoc:
|
||||||
end
|
end
|
||||||
alias_method :[], :slice
|
alias_method :[], :slice
|
||||||
|
|
||||||
|
# Converts first character in the string to Unicode value
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# 'こんにちは'.mb_chars.ord #=> 12371
|
||||||
|
def ord
|
||||||
|
self.class.u_unpack(@wrapped_string)[0]
|
||||||
|
end
|
||||||
|
|
||||||
# Convert characters in the string to uppercase.
|
# Convert characters in the string to uppercase.
|
||||||
#
|
#
|
||||||
# Example:
|
# Example:
|
||||||
|
|
|
@ -397,6 +397,10 @@ class MultibyteCharsUTF8BehaviourTest < Test::Unit::TestCase
|
||||||
assert_raise(ArgumentError) { @chars.slice(1, 1, 1) }
|
assert_raise(ArgumentError) { @chars.slice(1, 1, 1) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_ord_should_return_unicode_value_for_first_character
|
||||||
|
assert_equal 12371, @chars.ord
|
||||||
|
end
|
||||||
|
|
||||||
def test_upcase_should_upcase_ascii_characters
|
def test_upcase_should_upcase_ascii_characters
|
||||||
assert_equal '', ''.mb_chars.upcase
|
assert_equal '', ''.mb_chars.upcase
|
||||||
assert_equal 'ABC', 'aBc'.mb_chars.upcase
|
assert_equal 'ABC', 'aBc'.mb_chars.upcase
|
||||||
|
|
Loading…
Reference in New Issue