module Symbolify
Constants
- BIDI_CONTROL_NAMES
- CONTROL_C0_SYMBOLS
- CONTROL_C1_NAMES
- CONTROL_DELETE_SYMBOL
- INTERESTING_BYTES_ENCODINGS
- INTERESTING_BYTES_VALUES
- MAC_KEY_SYMBOLS
- NO_UTF8_CONVERTER
- REPLACEMENT_CHAR
- SPECIALS
no official aliases at the time of adding
- TAG_NAMES
- VARIATION_SELECTOR_NAMES
- VERSION
Public Class Methods
ascii(char, char_info = AsciiCharacteristics.new(char))
click to toggle source
# File lib/symbolify.rb, line 585 def self.ascii(char, char_info = AsciiCharacteristics.new(char)) char = char[0] if char_info.delete? char = CONTROL_DELETE_SYMBOL elsif char_info.c0? char = CONTROL_C0_SYMBOLS[char.ord] elsif char_info.blank? char = "]" + char + "[" end char end
binary(char, _ = nil)
click to toggle source
# File lib/symbolify.rb, line 599 def self.binary(char, _ = nil) dump(char[0]) end
byte(char, char_info= ByteCharacteristics.new(char))
click to toggle source
# File lib/symbolify.rb, line 551 def self.byte(char, char_info= ByteCharacteristics.new(char)) return "n/a" if !char_info.assigned? ord = char.ord encoding = char_info.encoding char = char[0] no_converter = !!(NO_UTF8_CONVERTER =~ encoding.name) treat_char_unconverted = false if char_info.delete? char = CONTROL_DELETE_SYMBOL elsif char_info.c0? if ord >= 0x11 && ord <= 0x14 && encoding.name =~ /^mac/ char = MAC_KEY_SYMBOLS[ord] else char = CONTROL_C0_SYMBOLS[ord] end elsif char_info.c1? char = CONTROL_C1_NAMES[ord] elsif no_converter treat_char_unconverted = true elsif char_info.blank? char = "]".encode(encoding) + char + "[".encode(encoding) elsif INTERESTING_BYTES_ENCODINGS[ord] =~ encoding.name char = INTERESTING_BYTES_VALUES[ord] end if no_converter && treat_char_unconverted dump(char) else char.encode("UTF-8") end end
dump(char)
click to toggle source
# File lib/symbolify.rb, line 603 def self.dump(char) char[0].dump end
symbolify(char, char_info = Characteristics.create(char))
click to toggle source
# File lib/symbolify.rb, line 492 def self.symbolify(char, char_info = Characteristics.create(char)) if !char_info.valid? REPLACEMENT_CHAR else case char_info when UnicodeCharacteristics Symbolify.unicode(char, char_info) when ByteCharacteristics Symbolify.byte(char, char_info) when AsciiCharacteristics Symbolify.ascii(char, char_info) else Symbolify.binary(char) end end end
unicode(char, char_info = UnicodeCharacteristics.new(char))
click to toggle source
# File lib/symbolify.rb, line 509 def self.unicode(char, char_info = UnicodeCharacteristics.new(char)) if !char_info.assigned? if char_info.noncharacter? return "n/c" elsif char_info.ignorable? return "n/a*" else return "n/a" end end char = char.dup.encode("UTF-8") ord = char.ord char = char[0] if char_info.delete? char = CONTROL_DELETE_SYMBOL elsif char_info.c0? char = CONTROL_C0_SYMBOLS[ord] elsif char_info.c1? char = CONTROL_C1_NAMES[ord] elsif char_info.bidi_control? char = BIDI_CONTROL_NAMES[ord] elsif char_info.variation_selector? char = VARIATION_SELECTOR_NAMES[ord] elsif char_info.tag? char = TAG_NAMES[ord] elsif char_info.category == "Mn" char = "◌" + char elsif char_info.category == "Me" char = " " + char elsif char_info.separator? char = "⏎" elsif char_info.blank? char = "]" + char + "[" elsif SPECIALS.key?(ord) char = SPECIALS[ord] end char end