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

Version Path
erector-rails4-0.2.0 lib/erector/unicode_builder.rb
pivotal-erector-0.5.1 lib/erector/unicode_builder.rb
pivotal-erector-0.6.0 lib/erector/unicode_builder.rb
pivotal-erector-0.6.1 lib/erector/unicode_builder.rb
pivotal-erector-0.6.2 lib/erector/unicode_builder.rb
pivotal-erector-0.6.3 lib/erector/unicode_builder.rb
pivotal-erector-0.6.4 lib/erector/unicode_builder.rb
pivotal-erector-0.6.5 lib/erector/unicode_builder.rb
pivotal-erector-0.6.6 lib/erector/unicode_builder.rb
pivotal-erector-0.6.7 lib/erector/unicode_builder.rb
pivotal-erector-0.7.0 lib/erector/unicode_builder.rb
erector-rails4-0.1.3 lib/erector/unicode_builder.rb
erector-rails4-0.1.2 lib/erector/unicode_builder.rb
erector-0.10.0 lib/erector/unicode_builder.rb
erector-rails4-0.1.1 lib/erector/unicode_builder.rb
erector-rails4-0.1.0 lib/erector/unicode_builder.rb
erector-rails4-0.0.7 lib/erector/unicode_builder.rb
erector-rails4-0.0.6 lib/erector/unicode_builder.rb
erector-rails4-0.0.5 lib/erector/unicode_builder.rb
erector-rails4-0.0.4 lib/erector/unicode_builder.rb