class Anpo::PO
Public Class Methods
new(io = nil)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 330 def initialize(io = nil) super() @caches = [] @header = nil @msg = {} if io _self = self proc_new_entry = proc do |buf| ent = POEntry.new(buf) set_on_changed(ent) if ent.is_header? if @header STDERR.print("duplicate header\n" + ent.to_s) else @header = ent end elsif ent.msgid.nil? @caches.push(ent) else push(ent) end end buffer = [] while (l = io.gets) if l == "\n" proc_new_entry.call(buffer) buffer = [] else buffer.push(l) end end proc_new_entry.call(buffer) else @header = POEntry.new set_on_changed(@header) @header.msgid = "" @header.msgstr = "\n" end end
parse(input, mode = "r", _opt = {}, &block)
click to toggle source
# File lib/anpo.rb, line 283 def self.parse(input, mode = "r", _opt = {}, &block) po = nil if input.is_a?(IO) po = PO.new(input) elsif FileTest.exists?(input.to_s) File.open(input.to_s, mode) do |f| po = PO.new(f) end end if block block.call(po) nil else po end end
Public Instance Methods
<<(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 122 def <<(*args) super @dirty = true end
append(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 127 def append(*args) super @dirty = true end
clear(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 132 def clear(*args) super @dirty = true end
collect!(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 137 def collect!(*args) super @dirty = true end
compact!(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 142 def compact!(*args) super @dirty = true end
concat(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 147 def concat(*args) super @dirty = true end
delete(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 152 def delete(*args) super @dirty = true end
delete_at(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 157 def delete_at(*args) super @dirty = true end
delete_by_ids(deleteids)
click to toggle source
# File lib/anpo.rb, line 322 def delete_by_ids(deleteids) ids = collect { |e| e.msgid } raise unless (deleteids - ids).empty? delete_if { |e| deleteids.include?(e.msgid) } end
delete_if(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 162 def delete_if(*args) super @dirty = true end
entry(id)
click to toggle source
# File lib/anpo.rb, line 301 def entry(id) find { |e| e.msgid == id } end
fill(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 167 def fill(*args) super @dirty = true end
filter!(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 172 def filter!(*args) super @dirty = true end
filter_by_ids(keepids, _force = false)
click to toggle source
# File lib/anpo.rb, line 314 def filter_by_ids(keepids, _force = false) ids = collect { |e| e.msgid } raise unless (keepids - ids).empty? keep_if { |e| keepids.include?(e.msgid) } end
flatten!(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 177 def flatten!(*args) super @dirty = true end
insert(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 182 def insert(*args) super @dirty = true end
keep_if(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 187 def keep_if(*args) super @dirty = true end
map!(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 192 def map!(*args) super @dirty = true end
msg()
click to toggle source
# File lib/anpo.rb, line 272 def msg if @dirty @msg.clear each do |e| @msg[e.msgid] = e.msgstr end @dirty = false end @msg end
new_entry(msgid, msgstr, comments = nil)
click to toggle source
# File lib/anpo.rb, line 305 def new_entry(msgid, msgstr, comments = nil) poe = POEntry.new set_on_changed(poe) poe.msgid = msgid poe.msgstr = msgstr poe.comments = comments || [] push(poe) end
pop(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 197 def pop(*args) super @dirty = true end
prepend(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 202 def prepend(*args) super @dirty = true end
push(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 207 def push(*args) super @dirty = true end
reject!(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 212 def reject!(*args) super @dirty = true end
replace(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 217 def replace(*args) super @dirty = true end
reverse!(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 222 def reverse!(*args) super @dirty = true end
rotate!(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 227 def rotate!(*args) super @dirty = true end
select!(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 232 def select!(*args) super @dirty = true end
shift(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 237 def shift(*args) super @dirty = true end
shuffle!(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 242 def shuffle!(*args) super @dirty = true end
slice!(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 247 def slice!(*args) super @dirty = true end
sort!(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 252 def sort!(*args) super @dirty = true end
sort_by!(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 257 def sort_by!(*args) super @dirty = true end
to_csv(opts = {})
click to toggle source
# File lib/anpo.rb, line 378 def to_csv(opts = {}) # CSV.new(StringIO.new, opts) csvstr = CSV.generate(opts) do |csv| ([@header] + self + @caches).each do |e| csv << [e.comments_to_s.chop, e.msgid, e.msgstr] end end CSV.new(StringIO.new(csvstr)) end
to_s(with_cache = true)
click to toggle source
# File lib/anpo.rb, line 374 def to_s(with_cache = true) ([@header] + self + (with_cache ? @caches : [])).collect { |e| e.to_s }.join("\n").to_s end
uniq!(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 262 def uniq!(*args) super @dirty = true end
unshift(*args)
click to toggle source
Calls superclass method
# File lib/anpo.rb, line 267 def unshift(*args) super @dirty = true end
Private Instance Methods
set_on_changed(entry)
click to toggle source
# File lib/anpo.rb, line 114 def set_on_changed(entry) entry.on_changed do |_e, _newid, _newstr| @dirty = true end end