123456789_123456789_123456789_123456789_123456789_

Class: RDoc::Generator::POT::PO

Relationships & Source Files
Inherits: Object
Defined in: lib/rdoc/generator/pot/po.rb

Overview

Generates a PO format text

Class Method Summary

  • .new ⇒ PO constructor

    Creates an object that represents PO format.

Instance Method Summary

Constructor Details

.newPO

Creates an object that represents PO format.

[ GitHub ]

  
# File 'lib/rdoc/generator/pot/po.rb', line 9

def initialize
  @entries = {}
  add_header
end

Instance Method Details

#add(entry)

Adds a PO entry to the PO.

[ GitHub ]

  
# File 'lib/rdoc/generator/pot/po.rb', line 17

def add entry
  existing_entry = @entries[entry.msgid]
  if existing_entry
    entry = existing_entry.merge(entry)
  end
  @entries[entry.msgid] = entry
end

#add_header (private)

[ GitHub ]

  
# File 'lib/rdoc/generator/pot/po.rb', line 39

def add_header
  add(header_entry)
end

#header_entry (private)

[ GitHub ]

  
# File 'lib/rdoc/generator/pot/po.rb', line 43

def header_entry
  comment = <<-COMMENT
SOME DESCRIPTIVE TITLE.
Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
This file is distributed under the same license as the PACKAGE package.
FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
  COMMENT

  content = <<-CONTENT
Project-Id-Version: PACKAGE VERSEION
Report-Msgid-Bugs-To:
PO-Revision-Date: YEAR-MO_DA HO:MI+ZONE
Last-Translator: FULL NAME <EMAIL@ADDRESS>
Language-Team: LANGUAGE <LL@li.org>
Language:
MIME-Version: 1.0
Content-Type: text/plain; charset=CHARSET
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;
  CONTENT

  options = {
    :msgstr => content,
    :translator_comment => comment,
    :flags => ['fuzzy'],
  }
  RDoc::Generator::POT::POEntry.new('', options)
end

#sort_entries (private)

[ GitHub ]

  
# File 'lib/rdoc/generator/pot/po.rb', line 72

def sort_entries
  headers, messages = @entries.values.partition do |entry|
    entry.msgid.empty?
  end
  # TODO: sort by location
  sorted_messages = messages.sort_by do |entry|
    entry.msgid
  end
  headers + sorted_messages
end

#to_s

Returns PO format text for the PO.

[ GitHub ]

  
# File 'lib/rdoc/generator/pot/po.rb', line 28

def to_s
  po = ''
  sort_entries.each do |entry|
    po << "\n" unless po.empty?
    po << entry.to_s
  end
  po
end