Module: ZhongwenTools::Fullwidth

Defined in:
lib/zhongwen_tools/fullwidth.rb

Constant Summary collapse

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