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

.new ⇒ PO

Creates an object that represents PO format.

[ GitHub ]

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

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 21

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 38

def add_header
  add(header_entry)
end

#header_entry (private)

[ GitHub ]

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

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'],
  }
  Generator::POT::POEntry.new('', options)
end

#sort_entries (private)

[ GitHub ]

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

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 32

def to_s
  sort_entries.map(&:to_s).join("\n")
end