ruby on rails 6.1 update release note
https://edgeguides.rubyonrails.org/6_1_release_notes.html
Remove deprecated ActiveSupport::Multibyte::Unicode.pack_graphemes, ActiveSupport::Multibyte::Unicode.unpack_graphemes, ActiveSupport::Multibyte::Unicode.normalize, ActiveSupport::Multibyte::Unicode.downcase, ActiveSupport::Multibyte::Unicode.upcase and ActiveSupport::Multibyte::Unicode.swapcase.
6.1バージョンアップにより「ActiveSupport::Multibyte::Unicode.normalize」が削除された。
https://github.com/rails/rails/commit/2c6f5c0b8a7b72a413224dc3efd383ea787f2805
代わりにString#unicode_normalizeを使う。
https://github.com/ruby/ruby/blob/master/lib/unicode_normalize/normalize.rb
処理を書き換えるときに注意する!
初期値のformが異なるため、formを指定しないと異なる結果が返ってくる。
default form | |
ActiveSupport::Multibyte::Unicode.normalize | :kc ( nfkc ) |
String#unicode_normalize | :nfc |
「ActiveSupport::Multibyte::Unicode.normalize」はform指定しない場合、defaultで :kc が採用される。
NORMALIZATION_FORM_ALIASES = { # :nodoc:
c: :nfc,
d: :nfd,
kc: :nfkc,
kd: :nfkd
}
# in NORMALIZATION_FORMS.
#
# ActiveSupport::Multibyte::Unicode.default_normalization_form = :c
attr_accessor :default_normalization_form
@default_normalization_form = :kc
def normalize(string, form = nil)
form ||= @default_normalization_form
・・・
「String#unicode_normalize」はform指定しない場合、defaultで :nfc が採用される。
def self.normalize(string, form = :nfc)
'Ruby' 카테고리의 다른 글
rsepc mock 메소드 내부 확인 (0) | 2023.10.23 |
---|---|
rails ActiveRecord 메모리, 성능 개선 (0) | 2022.12.30 |