class SimplePoParser::Tokenizer

Split a PO file into single PO message entities (a message is seperated by two newline)

Public Class Methods

new() click to toggle source
# File lib/simple_po_parser/tokenizer.rb, line 5
def initialize
  @messages = []
end

Public Instance Methods

parse_file(path) click to toggle source
# File lib/simple_po_parser/tokenizer.rb, line 9
def parse_file(path)
  file = File.open(path, "r")
  if(file.gets =~ /\r$/)
    # detected windows line ending
    file.close
    file = File.open(path, "rt")
  else
    file.rewind
  end
  file.each_line("\n\n") do |block|
    block.strip! # dont parse empty blocks
    @messages << parse_block(block) if block != ''
  end
  @messages
end

Private Instance Methods

parse_block(block) click to toggle source
# File lib/simple_po_parser/tokenizer.rb, line 26
def parse_block(block)
  Parser.new.parse(block)
end