Module: Charwidth::ClassMethods
- Included in:
- Charwidth
- Defined in:
- lib/charwidth.rb
Constant Summary collapse
- HALFWIDTH_TO_FULLWIDTH =
{ ascii: [ Characters::ASCII_PUNCTUATION_AND_SYMBOLS, Characters::FULLWIDTH_ASCII_VARIANTS, ], white_parenthesis: [ Characters::WHITE_PARENTHESIS, Characters::FULLWIDTH_BRACKETS, ], cjk_punctuation: [ Characters::HALFWIDTH_CJK_PUCTUATION, Characters::CJK_SYMBOLS_AND_PUNCTUATION, ], katakana: [ Characters::HALFWIDTH_KATAKANA_VARIANTS, Characters::KATAKANA, ], hangul: [ Characters::HALFWIDTH_HANGUL_VARIANTS, Characters::HANGUL, ], latin_1_punctuation_and_symbols: [ Characters::LATIN_1_PUNCTUATION_AND_SYMBOLS, Characters::FULLWIDTH_SYMBOL_VARIANTS, ], mathematical_symbols: [ Characters::HALFWIDTH_SYMBOL_VARIANTS, Characters::MATHEMATICAL_SYMBOLS, ], space: [ Characters::SPACE, Characters::IDEOGRAPHIC_SPACE, ], }.transform_values(&:freeze).freeze
Instance Method Summary collapse
-
#normalize(string, options = {}) ⇒ Object
Normalize Unicode fullwidth / halfwidth (zenkaku / hankaku) characters options: { only: [:ascii, :white_parenthesis, :cjk_punctuation, :katakana, :space], except: [:ascii, :white_parenthesis, :cjk_punctuation, :katakana, :space] }.
-
#normalize!(string, options = {}) ⇒ Object
Normalize Unicode fullwidth / halfwidth (zenkaku / hankaku) characters (destructive).
- #to_full_width(string) ⇒ Object
- #to_full_width!(src) ⇒ Object
Instance Method Details
#normalize(string, options = {}) ⇒ Object
Normalize Unicode fullwidth / halfwidth (zenkaku / hankaku) characters options:
only: [:ascii, :white_parenthesis, :cjk_punctuation, :katakana, :space],
except: [:ascii, :white_parenthesis, :cjk_punctuation, :katakana, :space]
49 50 51 |
# File 'lib/charwidth.rb', line 49 def normalize(string, = {}) normalize!(string.dup, ) end |
#normalize!(string, options = {}) ⇒ Object
Normalize Unicode fullwidth / halfwidth (zenkaku / hankaku) characters (destructive)
54 55 56 57 |
# File 'lib/charwidth.rb', line 54 def normalize!(string, = {}) unify_voiced_katakana!(string) normalize_charwidth!(string, ) end |
#to_full_width(string) ⇒ Object
59 60 61 |
# File 'lib/charwidth.rb', line 59 def to_full_width(string) to_full_width!(string.dup) end |
#to_full_width!(src) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/charwidth.rb', line 63 def to_full_width!(src) unify_voiced_katakana!(src) before = "" after = "" HALFWIDTH_TO_FULLWIDTH.each_value do |half, full| before << half after << full end escape_for_tr!(before) escape_for_tr!(after) src.tr!(before, after) || src end |