class DataSave
Constants
- VERSION
Attributes
offset[RW]
path[RW]
Public Class Methods
for(data_segment)
click to toggle source
# File lib/DATA.save.rb, line 4 def self.for(data_segment) new data_segment.path, data_segment.pos end
new(path, offset)
click to toggle source
# File lib/DATA.save.rb, line 15 def initialize(path, offset) self.path = path self.offset = offset end
on(data_segment)
click to toggle source
# File lib/DATA.save.rb, line 8 def self.on(data_segment) store = DataSave.for data_segment data_segment.define_singleton_method(:load) { store.load } data_segment.define_singleton_method(:save) { |data| store.save data } data_segment.define_singleton_method(:update) { |&block| store.update(&block) } end
Public Instance Methods
load()
click to toggle source
# File lib/DATA.save.rb, line 20 def load open_segment { |ds| ds.read } end
save(data)
click to toggle source
# File lib/DATA.save.rb, line 24 def save(data) open_segment do |ds| ds.puts data ds.truncate ds.pos end end
update() { |load| ... }
click to toggle source
# File lib/DATA.save.rb, line 31 def update save yield load end
Protected Instance Methods
open_segment() { |file| ... }
click to toggle source
# File lib/DATA.save.rb, line 39 def open_segment File.open path, 'r+' do |file| file.seek offset yield file end end