Module: Wavedash
- Defined in:
- lib/wavedash.rb,
lib/wavedash/version.rb
Constant Summary collapse
- CHARACTER_CODE_MAPPING =
{ 'eucjp-ms' => { "\u{301C}" => "\u{FF5E}", # 'WAVE DASH' => 'FULLWIDTH TILDE' "\u{2212}" => "\u{FF0D}", # 'MINUS SIGN' => 'FULLWIDTH HYPHEN-MINUS' "\u{2016}" => "\u{2225}", # 'DOUBLE VERTICAL LINE' => 'PARALLEL TO' "\u{2014}" => "\u{2015}", # 'EM DASH' => 'HORIZONTAL BAR' "\u{00A2}" => "\u{FFE0}", # 'CENT SIGN' => 'FULLWIDTH CENT SIGN' "\u{00A3}" => "\u{FFE1}", # 'POUND SIGN' => 'FULLWIDTH POUND SIGN' "\u{00AC}" => "\u{FFE2}", # 'NOT SIGN' => 'FULLWIDTH NOT SIGN' }, 'euc-jp' => { "\u{FF5E}" => "\u{301C}", # 'FULLWIDTH TILDE' => 'WAVE DASH' "\u{FF0D}" => "\u{2212}", # 'FULLWIDTH HYPHEN-MINUS' => 'MINUS SIGN' "\u{2225}" => "\u{2016}", # 'PARALLEL TO' => 'DOUBLE VERTICAL LINE' "\u{FFE0}" => "\u{00A2}", # 'FULLWIDTH CENT SIGN' => 'CENT SIGN' "\u{FFE1}" => "\u{00A3}", # 'FULLWIDTH POUND SIGN' => 'POUND SIGN' "\u{FFE2}" => "\u{00AC}", # 'FULLWIDTH NOT SIGN' => 'NOT SIGN' }, 'cp932' => { "\u{301C}" => "\u{FF5E}", # 'WAVE DASH' => 'FULLWIDTH TILDE' "\u{2212}" => "\u{FF0D}", # 'MINUS SIGN' => 'FULLWIDTH HYPHEN-MINUS' "\u{2016}" => "\u{2225}", # 'DOUBLE VERTICAL LINE' => 'PARALLEL TO' "\u{2014}" => "\u{2015}", # 'EM DASH' => 'HORIZONTAL BAR' "\u{00A2}" => "\u{FFE0}", # 'CENT SIGN' => 'FULLWIDTH CENT SIGN' "\u{00A3}" => "\u{FFE1}", # 'POUND SIGN' => 'FULLWIDTH POUND SIGN' "\u{00AC}" => "\u{FFE2}", # 'NOT SIGN' => 'FULLWIDTH NOT SIGN' }, 'shift_jis' => { "\u{FF5E}" => "\u{301C}", # 'FULLWIDTH TILDE' => 'WAVE DASH' "\u{FF0D}" => "\u{2212}", # 'FULLWIDTH HYPHEN-MINUS' => 'MINUS SIGN' "\u{2225}" => "\u{2016}", # 'PARALLEL TO' => 'DOUBLE VERTICAL LINE' "\u{2013}" => "\u{2014}", # 'EN DASH' => 'EM DASH' "\u{FFE0}" => "\u{00A2}", # 'FULLWIDTH CENT SIGN' => 'CENT SIGN' "\u{FFE1}" => "\u{00A3}", # 'FULLWIDTH POUND SIGN' => 'POUND SIGN' "\u{FFE2}" => "\u{00AC}", # 'FULLWIDTH NOT SIGN' => 'NOT SIGN' }, }
- VERSION =
"0.1.2"
- @@destination_encoding =
nil
Class Method Summary collapse
Class Method Details
.destination_encoding=(encoding) ⇒ Object
44 45 46 |
# File 'lib/wavedash.rb', line 44 def self.destination_encoding=(encoding) @@destination_encoding = encoding end |
.invalid?(str) ⇒ Boolean
54 55 56 57 58 59 |
# File 'lib/wavedash.rb', line 54 def self.invalid?(str) return false unless str.is_a?(String) mapping = CHARACTER_CODE_MAPPING[@@destination_encoding] return false unless mapping str.each_char.any? { |c| mapping[c] } end |
.normalize(str) ⇒ Object
48 49 50 51 52 |
# File 'lib/wavedash.rb', line 48 def self.normalize(str) mapping = CHARACTER_CODE_MAPPING[@@destination_encoding] return str unless mapping str.tr(mapping.keys.join, mapping.values.join) end |