class Yomikomu::DBMStorage
Public Class Methods
new()
click to toggle source
Calls superclass method
Yomikomu::BasicStorage::new
# File lib/yomikomu.rb, line 225 def initialize super require 'dbm' @db = DBM.open(Yomikomu.prefix + 'db') end
Public Instance Methods
remove_compiled_iseq(fname)
click to toggle source
# File lib/yomikomu.rb, line 231 def remove_compiled_iseq fname @db.delete fname end
Private Instance Methods
compiled_iseq_exist?(fname, iseq_key)
click to toggle source
# File lib/yomikomu.rb, line 245 def compiled_iseq_exist? fname, iseq_key @db.has_key? iseq_key end
compiled_iseq_is_younger?(fname, iseq_key)
click to toggle source
# File lib/yomikomu.rb, line 249 def compiled_iseq_is_younger? fname, iseq_key date_key = date_key_name(fname) if @db.has_key? date_key @db[date_key].to_i >= File.mtime(fname).to_i end end
date_key_name(fname)
click to toggle source
# File lib/yomikomu.rb, line 237 def date_key_name fname "date.#{fname}" end
iseq_key_name(fname)
click to toggle source
# File lib/yomikomu.rb, line 241 def iseq_key_name fname "body.#{fname}" end
read_compiled_iseq(fname, iseq_key)
click to toggle source
# File lib/yomikomu.rb, line 256 def read_compiled_iseq fname, iseq_key @db[iseq_key] end
write_compiled_iseq(fname, iseq_key, binary)
click to toggle source
# File lib/yomikomu.rb, line 260 def write_compiled_iseq fname, iseq_key, binary date_key = date_key_name(fname) @db[iseq_key] = binary @db[date_key] = Time.now.to_i end