Sha256: abf305461208b822ced7bff03b48cadddee3c217b40b4906a317591fc36e631b
Contents?: true
Size: 1.21 KB
Versions: 41
Compression:
Stored size: 1.21 KB
Contents
# Note that this class is only used in building erector itself # (and even then, only needs to be run when there is a new # UnicodeData.txt file from unicode.org). class Erector::UnicodeBuilder def initialize(input, output) @input = input @output = output @first = true end def generate() @output.puts "Erector::CHARACTERS = {" process_file @output.puts "}" end def process_file() while !@input.eof line = @input.gets.strip if (line == "") next; end process_line(line) end if (!@first) @output.puts end end def output_line(line) if (!@first) @output.puts(',') end @output.print(line) @first = false end def process_line(line) fields = line.split(';') code_point = fields[0] name = fields[1] alternate_name = fields[10] if /^</.match(name) return "" end output name, code_point if (!alternate_name.nil? && alternate_name != "") output alternate_name, code_point end end def output(name, code_point) output_line " :#{namify(name)} => 0x#{code_point.downcase}" end def namify(name) name.downcase.gsub(/[- ]/, '_') end end
Version data entries
41 entries across 41 versions & 4 rubygems