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