class RDoc::Generator::POT::POEntry
A PO entry in PO
Attributes
The comment content extracted from source file
The flags of the PO entry
The msgid content
The msgstr content
The locations where the PO entry is extracted
The comment content created by translator (PO editor)
Public Class Methods
Source
# File lib/rdoc/generator/pot/po_entry.rb, line 29 def initialize msgid, options = {} @msgid = msgid @msgstr = options[:msgstr] || "" @translator_comment = options[:translator_comment] @extracted_comment = options[:extracted_comment] @references = options[:references] || [] @flags = options[:flags] || [] end
Creates a PO entry for msgid
. Other values can be specified by options
.
Public Instance Methods
Source
# File lib/rdoc/generator/pot/po_entry.rb, line 56 def merge other_entry options = { :extracted_comment => merge_string(@extracted_comment, other_entry.extracted_comment), :translator_comment => merge_string(@translator_comment, other_entry.translator_comment), :references => merge_array(@references, other_entry.references), :flags => merge_array(@flags, other_entry.flags), } self.class.new(@msgid, options) end
Merges the PO entry with other_entry
.
Source
# File lib/rdoc/generator/pot/po_entry.rb, line 41 def to_s entry = '' entry += format_translator_comment entry += format_extracted_comment entry += format_references entry += format_flags entry += <<-ENTRY msgid #{format_message(@msgid)} msgstr #{format_message(@msgstr)} ENTRY end
Returns the PO entry in PO format.
Private Instance Methods
Source
# File lib/rdoc/generator/pot/po_entry.rb, line 120 def escape string string.gsub(/["\\\t\n]/) do |special_character| case special_character when "\t" "\\t" when "\n" "\\n" else "\\#{special_character}" end end end
Source
# File lib/rdoc/generator/pot/po_entry.rb, line 72 def format_comment mark, comment return '' unless comment return '' if comment.empty? formatted_comment = '' comment.each_line do |line| formatted_comment += "#{mark} #{line}" end formatted_comment += "\n" unless formatted_comment.end_with?("\n") formatted_comment end
Source
# File lib/rdoc/generator/pot/po_entry.rb, line 88 def format_extracted_comment format_comment('#.', @extracted_comment) end
Source
# File lib/rdoc/generator/pot/po_entry.rb, line 102 def format_flags return '' if @flags.empty? formatted_flags = flags.join(",") "\#, #{formatted_flags}\n" end
Source
# File lib/rdoc/generator/pot/po_entry.rb, line 109 def format_message message return "\"#{escape(message)}\"" unless message.include?("\n") formatted_message = '""' message.each_line do |line| formatted_message += "\n" formatted_message += "\"#{escape(line)}\"" end formatted_message end
Source
# File lib/rdoc/generator/pot/po_entry.rb, line 92 def format_references return '' if @references.empty? formatted_references = '' @references.sort.each do |file, line| formatted_references += "\#: #{file}:#{line}\n" end formatted_references end
Source
# File lib/rdoc/generator/pot/po_entry.rb, line 84 def format_translator_comment format_comment('#', @translator_comment) end
Source
# File lib/rdoc/generator/pot/po_entry.rb, line 137 def merge_array array1, array2 (array1 + array2).uniq end
Source
# File lib/rdoc/generator/pot/po_entry.rb, line 133 def merge_string string1, string2 [string1, string2].compact.join("\n") end