Module: ZhongwenTools::Fullwidth

Defined in:
lib/zhongwen_tools/fullwidth.rb

Constant Summary collapse

FW_HW =
{
  '' => '0',
  '' => '1',
  '' => '2',
  '' => '3',
  '' => '4',
  '' => '5',
  '' => '6',
  '' => '7',
  '' => '8',
  '' => '9',
  '' => 'A',
  '' => 'B',
  '' => 'C',
  '' => 'D',
  '' => 'E',
  '' => 'F',
  '' => 'G',
  '' => 'H',
  '' => 'I',
  '' => 'J',
  '' => 'K',
  '' => 'L',
  '' => 'M',
  '' => 'N',
  '' => 'O',
  '' => 'P',
  '' => 'Q',
  '' => 'R',
  '' => 'S',
  '' => 'T',
  '' => 'U',
  '' => 'V',
  '' => 'W',
  '' => 'X',
  '' => 'Y',
  '' => 'Z',
  '' => 'a',
  '' => 'b',
  '' => 'c',
  '' => 'd',
  '' => 'e',
  '' => 'f',
  '' => 'g',
  '' => 'h',
  '' => 'i',
  '' => 'j',
  '' => 'k',
  '' => 'l',
  '' => 'm',
  '' => 'n',
  '' => 'o',
  '' => 'p',
  '' => 'q',
  '' => 'r',
  '' => 's',
  '' => 't',
  '' => 'u',
  '' => 'v',
  '' => 'w',
  '' => 'x',
  '' => 'y',
  '' => 'z',
  '' => '%',
  '' => '.',
  '' => ':',
  '' => '#',
  '' => '$',
  '' => '&',
  '' => '+',
  '' => '-',
  '' => '/',
  '' => '\\',
  '' => '=',
  '' => ';',
  '' => '<',
  '' => '>',
  '' => '?',
  '' => '.',
  '' => '!',
  '' => ','
}

Class Method Summary collapse

Class Method Details

.fullwidth?(str) ⇒ Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/zhongwen_tools/fullwidth.rb', line 11

def self.fullwidth?(str)
  !halfwidth?(str) && to_halfwidth(str) != str
end

.halfwidth?(str) ⇒ Boolean

TODO: type checking.

Returns:

  • (Boolean)


7
8
9
# File 'lib/zhongwen_tools/fullwidth.rb', line 7

def self.halfwidth?(str)
  str[ZhongwenTools::Regex.fullwidth].nil?
end

.to_halfwidth(str) ⇒ Object



15
16
17
# File 'lib/zhongwen_tools/fullwidth.rb', line 15

def self.to_halfwidth(str)
  str.gsub(/(#{ZhongwenTools::Regex.fullwidth})/, ZhongwenTools::Fullwidth::FW_HW)
end