Class: Anpo::PO
- Inherits:
-
Array
- Object
- Array
- Anpo::PO
- Defined in:
- lib/anpo.rb
Class Method Summary collapse
Instance Method Summary collapse
- #<<(*args) ⇒ Object
- #append(*args) ⇒ Object
- #clear(*args) ⇒ Object
- #collect!(*args) ⇒ Object
- #compact!(*args) ⇒ Object
- #concat(*args) ⇒ Object
- #delete(*args) ⇒ Object
- #delete_at(*args) ⇒ Object
- #delete_by_ids(deleteids) ⇒ Object
- #delete_if(*args) ⇒ Object
- #entry(id) ⇒ Object
- #fill(*args) ⇒ Object
- #filter!(*args) ⇒ Object
- #filter_by_ids(keepids, _force = false) ⇒ Object
- #flatten!(*args) ⇒ Object
-
#initialize(io = nil) ⇒ PO
constructor
A new instance of PO.
- #insert(*args) ⇒ Object
- #keep_if(*args) ⇒ Object
- #map!(*args) ⇒ Object
- #msg ⇒ Object
- #new_entry(msgid, msgstr, comments = nil) ⇒ Object
- #pop(*args) ⇒ Object
- #prepend(*args) ⇒ Object
- #push(*args) ⇒ Object
- #reject!(*args) ⇒ Object
- #replace(*args) ⇒ Object
- #reverse!(*args) ⇒ Object
- #rotate!(*args) ⇒ Object
- #select!(*args) ⇒ Object
- #shift(*args) ⇒ Object
- #shuffle!(*args) ⇒ Object
- #slice!(*args) ⇒ Object
- #sort!(*args) ⇒ Object
- #sort_by!(*args) ⇒ Object
- #to_csv(opts = {}) ⇒ Object
- #to_s(with_cache = true) ⇒ Object
- #uniq!(*args) ⇒ Object
- #unshift(*args) ⇒ Object
Constructor Details
#initialize(io = nil) ⇒ PO
Returns a new instance of PO.
330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 |
# 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 |
Class Method Details
.parse(input, mode = "r", _opt = {}, &block) ⇒ Object
283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 |
# 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 |
Instance Method Details
#<<(*args) ⇒ Object
122 123 124 125 |
# File 'lib/anpo.rb', line 122 def <<(*args) super @dirty = true end |
#append(*args) ⇒ Object
127 128 129 130 |
# File 'lib/anpo.rb', line 127 def append(*args) super @dirty = true end |
#clear(*args) ⇒ Object
132 133 134 135 |
# File 'lib/anpo.rb', line 132 def clear(*args) super @dirty = true end |
#collect!(*args) ⇒ Object
137 138 139 140 |
# File 'lib/anpo.rb', line 137 def collect!(*args) super @dirty = true end |
#compact!(*args) ⇒ Object
142 143 144 145 |
# File 'lib/anpo.rb', line 142 def compact!(*args) super @dirty = true end |
#concat(*args) ⇒ Object
147 148 149 150 |
# File 'lib/anpo.rb', line 147 def concat(*args) super @dirty = true end |
#delete(*args) ⇒ Object
152 153 154 155 |
# File 'lib/anpo.rb', line 152 def delete(*args) super @dirty = true end |
#delete_at(*args) ⇒ Object
157 158 159 160 |
# File 'lib/anpo.rb', line 157 def delete_at(*args) super @dirty = true end |
#delete_by_ids(deleteids) ⇒ Object
322 323 324 325 326 327 328 |
# 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) ⇒ Object
162 163 164 165 |
# File 'lib/anpo.rb', line 162 def delete_if(*args) super @dirty = true end |
#entry(id) ⇒ Object
301 302 303 |
# File 'lib/anpo.rb', line 301 def entry(id) find { |e| e.msgid == id } end |
#fill(*args) ⇒ Object
167 168 169 170 |
# File 'lib/anpo.rb', line 167 def fill(*args) super @dirty = true end |
#filter!(*args) ⇒ Object
172 173 174 175 |
# File 'lib/anpo.rb', line 172 def filter!(*args) super @dirty = true end |
#filter_by_ids(keepids, _force = false) ⇒ Object
314 315 316 317 318 319 320 |
# 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) ⇒ Object
177 178 179 180 |
# File 'lib/anpo.rb', line 177 def flatten!(*args) super @dirty = true end |
#insert(*args) ⇒ Object
182 183 184 185 |
# File 'lib/anpo.rb', line 182 def insert(*args) super @dirty = true end |
#keep_if(*args) ⇒ Object
187 188 189 190 |
# File 'lib/anpo.rb', line 187 def keep_if(*args) super @dirty = true end |
#map!(*args) ⇒ Object
192 193 194 195 |
# File 'lib/anpo.rb', line 192 def map!(*args) super @dirty = true end |
#msg ⇒ Object
272 273 274 275 276 277 278 279 280 281 |
# 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) ⇒ Object
305 306 307 308 309 310 311 312 |
# 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) ⇒ Object
197 198 199 200 |
# File 'lib/anpo.rb', line 197 def pop(*args) super @dirty = true end |
#prepend(*args) ⇒ Object
202 203 204 205 |
# File 'lib/anpo.rb', line 202 def prepend(*args) super @dirty = true end |
#push(*args) ⇒ Object
207 208 209 210 |
# File 'lib/anpo.rb', line 207 def push(*args) super @dirty = true end |
#reject!(*args) ⇒ Object
212 213 214 215 |
# File 'lib/anpo.rb', line 212 def reject!(*args) super @dirty = true end |
#replace(*args) ⇒ Object
217 218 219 220 |
# File 'lib/anpo.rb', line 217 def replace(*args) super @dirty = true end |
#reverse!(*args) ⇒ Object
222 223 224 225 |
# File 'lib/anpo.rb', line 222 def reverse!(*args) super @dirty = true end |
#rotate!(*args) ⇒ Object
227 228 229 230 |
# File 'lib/anpo.rb', line 227 def rotate!(*args) super @dirty = true end |
#select!(*args) ⇒ Object
232 233 234 235 |
# File 'lib/anpo.rb', line 232 def select!(*args) super @dirty = true end |
#shift(*args) ⇒ Object
237 238 239 240 |
# File 'lib/anpo.rb', line 237 def shift(*args) super @dirty = true end |
#shuffle!(*args) ⇒ Object
242 243 244 245 |
# File 'lib/anpo.rb', line 242 def shuffle!(*args) super @dirty = true end |
#slice!(*args) ⇒ Object
247 248 249 250 |
# File 'lib/anpo.rb', line 247 def slice!(*args) super @dirty = true end |
#sort!(*args) ⇒ Object
252 253 254 255 |
# File 'lib/anpo.rb', line 252 def sort!(*args) super @dirty = true end |
#sort_by!(*args) ⇒ Object
257 258 259 260 |
# File 'lib/anpo.rb', line 257 def sort_by!(*args) super @dirty = true end |
#to_csv(opts = {}) ⇒ Object
378 379 380 381 382 383 384 385 386 |
# 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) ⇒ Object
374 375 376 |
# 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) ⇒ Object
262 263 264 265 |
# File 'lib/anpo.rb', line 262 def uniq!(*args) super @dirty = true end |
#unshift(*args) ⇒ Object
267 268 269 270 |
# File 'lib/anpo.rb', line 267 def unshift(*args) super @dirty = true end |