module Persist
Constants
- TSVAdapter
Public Class Methods
Source
# File lib/rbbt/persist/refactor.rb, line 3 def self.is_persisted?(path, persist_options = {}) return true if Open.remote?(path) return true if Open.ssh?(path) return false if not Open.exists? path return false if TrueClass === persist_options[:update] expiration = persist_options[:expiration] if expiration seconds = Misc.timespan(expiration) patht = Open.mtime(path) return false if Time.now > patht + seconds end check = persist_options[:check] return true if check.nil? missing = check.reject{|file| Open.exists?(file) } return false if missing.any? return true unless ENV["RBBT_UPDATE"] if Array === check newer = check.select{|file| newer? path, file} return true if newer.empty? Log.medium "Persistence check for #{path} failed in: #{ Misc.fingerprint(newer)}" return false else ! newer?(path, check) end end
Source
# File lib/rbbt/persist/refactor.rb, line 35 def self.newer?(path, file, by_link = false) return true if not Open.exists?(file) path = path.find if Path === path file = file.find if Path === file if by_link patht = File.exist?(path) ? File.lstat(path).mtime : nil filet = File.exist?(file) ? File.lstat(file).mtime : nil else patht = Open.mtime(path) filet = Open.mtime(file) end return true if patht.nil? || filet.nil? diff = patht - filet return diff if diff < 0 return false end
Is ‘file’ newer than ‘path’? return non-true if path is newer than file
Source
# File lib/rbbt/persist/tsv/cdb.rb, line 128 def self.open_cdb(path, write, serializer = nil) write = true unless File.exist? path FileUtils.mkdir_p File.dirname(path) unless File.exist?(File.dirname(path)) database = Persist::CDBAdapter.open(path, write) #unless serializer == :clean # TSV.setup database # database.serializer = serializer if serializer #end database end
Source
# File lib/rbbt/persist/tsv/fix_width_table.rb, line 100 def self.open_fwt(path, value_size, range = false, serializer = nil, update = false, in_memory = false, &pos_function) FileUtils.mkdir_p File.dirname(path) unless File.exist?(File.dirname(path)) database = Persist::FWTAdapter.open(path, value_size, range, update, in_memory, &pos_function) unless serializer == :clean TSV.setup database database.serializer = serializer || database.serializer end database end
Source
# File lib/rbbt/persist/tsv/kyotocabinet.rb, line 80 def self.open_kyotocabinet(path, write, serializer = nil, kyotocabinet_class= 'kch') write = true unless File.exist? path FileUtils.mkdir_p File.dirname(path) unless File.exist?(File.dirname(path)) database = Persist::KCAdapter.open(path, write, kyotocabinet_class) unless serializer == :clean TSV.setup database database.serializer = serializer || database.serializer end database end
Source
# File lib/rbbt/persist/tsv/leveldb.rb, line 106 def self.open_leveldb(path, write, serializer = nil) write = true unless File.exist? path FileUtils.mkdir_p File.dirname(path) unless File.exist?(File.dirname(path)) database = Persist::LevelDBAdapter.open(path, write) unless serializer == :clean TSV.setup database database.serializer = serializer || database.serializer end database end
Source
# File lib/rbbt/persist/tsv/lmdb.rb, line 47 def self.open_lmdb(path, write, serializer = nil) write = true unless File.exist? path FileUtils.mkdir_p File.dirname(path) unless File.exist?(File.dirname(path)) database = Persist::LMDBAdapter.open(path, write) unless serializer == :clean TSV.setup database database.serializer = serializer || database.serializer end database end
Source
# File lib/rbbt/persist/tsv/packed_index.rb, line 98 def self.open_pki(path, write, pattern, &pos_function) FileUtils.mkdir_p File.dirname(path) unless File.exist?(File.dirname(path)) database = Persist::PKIAdapter.open(path, write, pattern, &pos_function) #TSV.setup database #database.serializer = :clean database end
Source
# File lib/rbbt/persist/tsv/sharder.rb, line 245 def self.open_sharder(path, write, serializer = nil, type = TokyoCabinet::HDB, options, &shard_function) write = true unless File.exist? path FileUtils.mkdir_p File.dirname(path) unless File.exist?(File.dirname(path)) database = Persist::SharderAdapter.open(path, write, type, options, &shard_function) if type.to_s == 'pki' TSV.setup database database.type = :list database.serializer = :clean else if serializer != :clean TSV.setup database database.serializer = serializer if serializer end end database end