Module: MacJapanese

Defined in:
lib/mac_japanese/utf8_to_mac_japanese.rb,
lib/mac_japanese.rb,
lib/mac_japanese/version.rb,
lib/mac_japanese/mac_japanese_to_utf8_with_pua.rb,
lib/mac_japanese/mac_japanese_to_utf8_without_pua.rb,
lib/mac_japanese/decomposed_or_normal_character_regexp.rb

Overview

This file was automatically generated by ‘rake tables`. Cannot modify directly.

Constant Summary collapse

VERSION =
"0.0.1"
UTF8_TO_MAC_JAPANESE =
Hash[
    [
["\u{0000}", "\x00"]
MAC_JAPANESE_TO_UTF8_WITH_PUA =
Hash[
    [
["\x00", "\u{0000}"]
MAC_JAPANESE_TO_UTF8_WITHOUT_PUA =
Hash[
    [
["\x00", "\u{0000}"]
DECOMPOSED_OR_NORMAL_CHARACTER_REGEXP =
/(\u{2026}\u{F87F}|\u{F860}\u{0030}\u{002E}|\u{F862}\u{0058}\u{0049}\u{0049}\u{0049}|\u{F861}\u{0058}\u{0049}\u{0056}|\u{F860}\u{0058}\u{0056}|\u{F862}\u{0078}\u{0069}\u{0069}\u{0069}|\u{F861}\u{0078}\u{0069}\u{0076}|\u{F860}\u{0078}\u{0076}|\u{FF4D}\u{F87F}|\u{FF47}\u{F87F}|\u{F860}\u{0054}\u{0042}|\u{F861}\u{0046}\u{0041}\u{0058}|\u{F860}\u{2193}\u{2191}|\u{21E8}\u{F87A}|\u{21E6}\u{F87A}|\u{21E7}\u{F87A}|\u{21E9}\u{F87A}|\u{5927}\u{20DD}|\u{5C0F}\u{20DD}|\u{63A7}\u{20DD}|\u{F862}\u{6709}\u{9650}\u{4F1A}\u{793E}|\u{F862}\u{8CA1}\u{56E3}\u{6CD5}\u{4EBA}|\u{3001}\u{F87E}|\u{3002}\u{F87E}|\u{FFE3}\u{F87E}|\u{30FC}\u{F87E}|\u{2010}\u{F87E}|\u{301C}\u{F87E}|\u{2016}\u{F87E}|\u{FF5C}\u{F87E}|\u{2026}\u{F87E}|\u{FF3B}\u{F87E}|\u{FF3D}\u{F87E}|\u{FF1D}\u{F87E}|\u{3041}\u{F87E}|\u{3043}\u{F87E}|\u{3045}\u{F87E}|\u{3047}\u{F87E}|\u{3049}\u{F87E}|\u{3063}\u{F87E}|\u{3083}\u{F87E}|\u{3085}\u{F87E}|\u{3087}\u{F87E}|\u{308E}\u{F87E}|\u{30A1}\u{F87E}|\u{30A3}\u{F87E}|\u{30A5}\u{F87E}|\u{30A7}\u{F87E}|\u{30A9}\u{F87E}|\u{30C3}\u{F87E}|\u{30E3}\u{F87E}|\u{30E5}\u{F87E}|\u{30E7}\u{F87E}|\u{30EE}\u{F87E}|\u{30F5}\u{F87E}|\u{30F6}\u{F87E}|.)/m

Class Method Summary collapse

Class Method Details

.to_mac_japanese(src, options = {}) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/mac_japanese.rb', line 27

def to_mac_japanese(src, options = {})
  options[:replace] ||= "?"

  src = encode_or_raise(src, Encoding::UTF_8, options)
  table = UTF8_TO_MAC_JAPANESE

  dest = ""

  ss = StringScanner.new(src)
  while char = ss.scan(DECOMPOSED_OR_NORMAL_CHARACTER_REGEXP)
    dest << convert_char(char, table, Encoding::UTF_8, Encoding::MacJapanese, options)
  end
  dest
end

.to_utf8(src, options = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/mac_japanese.rb', line 11

def to_utf8(src, options = {})
  use_pua = options.has_key?(:use_pua) ? options.delete(:use_pua) : true
  options[:replace] ||= "\u{fffd}"

  src = src.dup.force_encoding(Encoding::MacJapanese) unless src.encoding == Encoding::MacJapanese
  table = use_pua ? MAC_JAPANESE_TO_UTF8_WITH_PUA : MAC_JAPANESE_TO_UTF8_WITHOUT_PUA

  dest = ""
  # If you use StringScanner here,
  # raise exception for string includes 0x80, 0xA0, 0xFD, 0xFE, or 0xFF.
  src.chars.each do |char|
    dest << convert_char(char, table, Encoding::MacJapanese, Encoding::UTF_8, options)
  end
  dest
end