class Ccp::Persistent::Versioned::Storage

Public Class Methods

complete(file, default_dir, default_kvs, default_ext) click to toggle source
# File lib/ccp/persistent/versioned.rb, line 7
def self.complete(file, default_dir, default_kvs, default_ext)
  s = file.must(Storage) {
    path, ext, kvs = file.to_s.split(".", 3)
    new(default_dir, path, ext, kvs)
  }

  s.name = Pathname(s.name).basename(".*").to_s
  s.dir  = default_dir if s.dir.blank?
  s.ext  = default_ext if s.ext.blank?
  s.kvs  = default_kvs if s.kvs.blank?

  s.ext.must.not.blank
  s.kvs.must.not.blank

  return s
end

Public Instance Methods

create() click to toggle source
# File lib/ccp/persistent/versioned.rb, line 31
def create
  kvs = Ccp::Persistent.lookup(self.kvs)
  ext = Ccp::Serializers.lookup(self.ext)
  kvs.new(path, ext)
end
path() click to toggle source
# File lib/ccp/persistent/versioned.rb, line 24
def path
  kvs = Ccp::Persistent.lookup(self.kvs)
  ext = Ccp::Serializers.lookup(self.ext)
  base = [name.to_s, ext.ext, kvs.ext].join(".").sub(/\.$/,'')
  return Pathname(dir) + base
end