Class: Ccp::Persistent::Versioned::Storage

Inherits:
Struct
  • Object
show all
Defined in:
lib/ccp/persistent/versioned.rb,
lib/ccp/persistent/versioned.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#dirObject

Returns the value of attribute dir

Returns:

  • (Object)

    the current value of dir



6
7
8
# File 'lib/ccp/persistent/versioned.rb', line 6

def dir
  @dir
end

#extObject

Returns the value of attribute ext

Returns:

  • (Object)

    the current value of ext



6
7
8
# File 'lib/ccp/persistent/versioned.rb', line 6

def ext
  @ext
end

#kvsObject

Returns the value of attribute kvs

Returns:

  • (Object)

    the current value of kvs



6
7
8
# File 'lib/ccp/persistent/versioned.rb', line 6

def kvs
  @kvs
end

#nameObject

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



6
7
8
# File 'lib/ccp/persistent/versioned.rb', line 6

def name
  @name
end

Class Method Details

.complete(file, default_dir, default_kvs, default_ext) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/ccp/persistent/versioned.rb', line 8

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

Instance Method Details

#createObject



32
33
34
35
36
# File 'lib/ccp/persistent/versioned.rb', line 32

def create
  kvs = Ccp::Persistent.lookup(self.kvs)
  ext = Ccp::Serializers.lookup(self.ext)
  kvs.new(path, ext)
end

#pathObject



25
26
27
28
29
30
# File 'lib/ccp/persistent/versioned.rb', line 25

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