Class: RDoc::Generator::POT::POEntry
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/rdoc/generator/pot/po_entry.rb |
Overview
A PO entry in PO
Class Method Summary
- .new(msgid, options = {}) ⇒ POEntry constructor
Instance Attribute Summary
-
#extracted_comment
readonly
The comment content extracted from source file.
-
#flags
readonly
The flags of the PO entry.
-
#msgid
readonly
The msgid content.
-
#msgstr
readonly
The msgstr content.
-
#references
readonly
The locations where the PO entry is extracted.
-
#translator_comment
readonly
The comment content created by translator (PO editor).
Instance Method Summary
-
#merge(other_entry)
Merges the PO entry with
other_entry
. - #to_s
- #escape(string) private
- #format_comment(mark, comment) private
- #format_extracted_comment private
- #format_flags private
- #format_message(message) private
- #format_references private
- #format_translator_comment private
- #merge_array(array1, array2) private
- #merge_string(string1, string2) private
Constructor Details
.new(msgid, options = {}) ⇒ POEntry
[ GitHub ]
# File 'lib/rdoc/generator/pot/po_entry.rb', line 28
def initialize msgid, = {} @msgid = msgid @msgstr = [:msgstr] || "" @translator_comment = [:translator_comment] @extracted_comment = [:extracted_comment] @references = [:references] || [] @flags = [:flags] || [] end
Instance Attribute Details
#extracted_comment (readonly)
The comment content extracted from source file
# File 'lib/rdoc/generator/pot/po_entry.rb', line 16
attr_reader :extracted_comment
#flags (readonly)
The flags of the PO entry
# File 'lib/rdoc/generator/pot/po_entry.rb', line 22
attr_reader :flags
#msgid (readonly)
The msgid content
# File 'lib/rdoc/generator/pot/po_entry.rb', line 7
attr_reader :msgid
#msgstr (readonly)
The msgstr content
# File 'lib/rdoc/generator/pot/po_entry.rb', line 10
attr_reader :msgstr
#references (readonly)
The locations where the PO entry is extracted
# File 'lib/rdoc/generator/pot/po_entry.rb', line 19
attr_reader :references
#translator_comment (readonly)
The comment content created by translator (PO editor)
# File 'lib/rdoc/generator/pot/po_entry.rb', line 13
attr_reader :translator_comment
Instance Method Details
#escape(string) (private)
[ GitHub ]# File 'lib/rdoc/generator/pot/po_entry.rb', line 119
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) (private)
[ GitHub ]# File 'lib/rdoc/generator/pot/po_entry.rb', line 71
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 (private)
[ GitHub ]# File 'lib/rdoc/generator/pot/po_entry.rb', line 87
def format_extracted_comment format_comment('#.', @extracted_comment) end
#format_flags (private)
[ GitHub ]# File 'lib/rdoc/generator/pot/po_entry.rb', line 101
def format_flags return '' if @flags.empty? formatted_flags = flags.join(",") "\#, #{formatted_flags}\n" end
#format_message(message) (private)
[ GitHub ]#format_references (private)
[ GitHub ]# File 'lib/rdoc/generator/pot/po_entry.rb', line 91
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 (private)
[ GitHub ]# File 'lib/rdoc/generator/pot/po_entry.rb', line 83
def format_translator_comment format_comment('#', @translator_comment) end
#merge(other_entry)
Merges the PO entry with other_entry
.
# File 'lib/rdoc/generator/pot/po_entry.rb', line 55
def merge other_entry = { :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, ) end
#merge_array(array1, array2) (private)
[ GitHub ]# File 'lib/rdoc/generator/pot/po_entry.rb', line 136
def merge_array array1, array2 (array1 + array2).uniq end
#merge_string(string1, string2) (private)
[ GitHub ]# File 'lib/rdoc/generator/pot/po_entry.rb', line 132
def merge_string string1, string2 [string1, string2].compact.join("\n") end
#to_s
[ GitHub ]# File 'lib/rdoc/generator/pot/po_entry.rb', line 40
def to_s entry = '' entry << format_translator_comment entry << format_extracted_comment entry << format_references entry << format_flags entry << <<-ENTRY msgid #{ (@msgid)} msgstr #{ (@msgstr)} ENTRY end