Module: Ccp::Kvs

Extended by:
Kvs
Includes:
Enumerable
Included in:
Kvs
Defined in:
lib/ccp/kvs.rb,
lib/ccp/kvs/kch.rb,
lib/ccp/kvs/tch.rb,
lib/ccp/kvs/core.rb,
lib/ccp/kvs/hash.rb,
lib/ccp/kvs/kyoto.rb,
lib/ccp/kvs/tokyo.rb,
lib/ccp/kvs/kyoto/base.rb,
lib/ccp/kvs/tokyo/base.rb,
lib/ccp/kvs/tokyo/info.rb,
lib/ccp/kvs/kyoto/cabinet.rb,
lib/ccp/kvs/tokyo/cabinet.rb,
lib/ccp/kvs/kyoto/state_machine.rb,
lib/ccp/kvs/tokyo/state_machine.rb

Defined Under Namespace

Modules: Core, Kyoto, Tokyo Classes: Hash, Kch, Tch

Constant Summary collapse

Error =
Class.new(RuntimeError)
NotFound =
Class.new(Error)
NotConnected =
Class.new(Error)
NotAllowed =
Class.new(Error)
IOError =
Class.new(Error)
DICTIONARY =

cache for (extname -> Kvs)

{}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.load(path) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/ccp/kvs.rb', line 13

def self.load(path)
  array = path.to_s.split(".")
  kvs   = Ccp::Kvs[array.pop].new(path)
  codec = Ccp::Serializers[array.pop]
  kvs.codec!(codec)
  return kvs
end

Instance Method Details

#<<(kvs) ⇒ Object



39
40
41
42
# File 'lib/ccp/kvs.rb', line 39

def <<(kvs)
  kvs.must(Core)
  self[kvs.ext] = kvs
end

#[](name) ⇒ Object Also known as: lookup



28
29
30
31
32
33
# File 'lib/ccp/kvs.rb', line 28

def [](name)
  kvs = DICTIONARY[name.to_s] and return kvs
  name.must(Core) {
    raise NotFound, "%s(%s) for %s" % [name, name.class, DICTIONARY.keys.inspect]
  }
end

#[]=(key, val) ⇒ Object



35
36
37
# File 'lib/ccp/kvs.rb', line 35

def []=(key, val)
  DICTIONARY[key.to_s] = val
end

#each(&block) ⇒ Object



24
25
26
# File 'lib/ccp/kvs.rb', line 24

def each(&block)
  DICTIONARY.each_value(&block)
end