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