class RDoc::Generator::POT::POEntry
frozen_string_literal: true
A PO entry in PO
Attributes
extracted_comment[R]
The comment content extracted from source file
flags[R]
The flags of the PO entry
msgid[R]
The msgid content
msgstr[R]
The msgstr content
references[R]
The locations where the PO entry is extracted
translator_comment[R]
The comment content created by translator (PO editor)
Public Class Methods
new(msgid, options = {})
click to toggle source
Creates a PO entry for msgid
. Other valus can be specified by
options
.
# 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
Public Instance Methods
merge(other_entry)
click to toggle source
Merges the PO entry with other_entry
.
# 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
to_s()
click to toggle source
Returns the PO entry in PO format.
# 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
Private Instance Methods
escape(string)
click to toggle 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
format_comment(mark, comment)
click to toggle 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
format_extracted_comment()
click to toggle source
# File lib/rdoc/generator/pot/po_entry.rb, line 88 def format_extracted_comment format_comment('#.', @extracted_comment) end
format_flags()
click to toggle 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
format_message(message)
click to toggle 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
format_references()
click to toggle 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
format_translator_comment()
click to toggle source
# File lib/rdoc/generator/pot/po_entry.rb, line 84 def format_translator_comment format_comment('#', @translator_comment) end
merge_array(array1, array2)
click to toggle source
# File lib/rdoc/generator/pot/po_entry.rb, line 137 def merge_array array1, array2 (array1 + array2).uniq end
merge_string(string1, string2)
click to toggle source
# File lib/rdoc/generator/pot/po_entry.rb, line 133 def merge_string string1, string2 [string1, string2].compact.join("\n") end