Class: Ccp::Persistent::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/ccp/persistent/base.rb

Direct Known Subclasses

Dir, File

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source, serializer) ⇒ Base

Returns a new instance of Base.



9
10
11
12
# File 'lib/ccp/persistent/base.rb', line 9

def initialize(source, serializer)
  @source     = source
  @serializer = Ccp::Serializers.lookup(serializer)
end

Instance Attribute Details

#serializerObject (readonly)

Returns the value of attribute serializer.



5
6
7
# File 'lib/ccp/persistent/base.rb', line 5

def serializer
  @serializer
end

#sourceObject (readonly)

Returns the value of attribute source.



4
5
6
# File 'lib/ccp/persistent/base.rb', line 4

def source
  @source
end

Class Method Details

.extObject

Raises:

  • (NotImplementedError)


14
15
16
# File 'lib/ccp/persistent/base.rb', line 14

def self.ext
  raise NotImplementedError, "subclass resposibility"
end

Instance Method Details

#[](key) ⇒ Object



36
37
38
# File 'lib/ccp/persistent/base.rb', line 36

def [](key)
  load!(key)
end

#[]=(key, val) ⇒ Object

Raises:

  • (NotImplementedError)


40
41
42
# File 'lib/ccp/persistent/base.rb', line 40

def []=(key, val)
  raise NotImplementedError, "subclass resposibility"
end

#exist?(key) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


18
19
20
# File 'lib/ccp/persistent/base.rb', line 18

def exist?(key)
  raise NotImplementedError, "subclass resposibility"
end

#keysObject

Raises:

  • (NotImplementedError)


54
55
56
# File 'lib/ccp/persistent/base.rb', line 54

def keys
  raise NotImplementedError, "subclass resposibility"
end

#load(key) ⇒ Object

Raises:

  • (NotImplementedError)


32
33
34
# File 'lib/ccp/persistent/base.rb', line 32

def load(key)
  raise NotImplementedError, "subclass resposibility"
end

#load!(key) ⇒ Object

Raises:

  • (NotImplementedError)


28
29
30
# File 'lib/ccp/persistent/base.rb', line 28

def load!(key)
  raise NotImplementedError, "subclass resposibility"
end

#readObject



44
45
46
47
48
# File 'lib/ccp/persistent/base.rb', line 44

def read
  read!
rescue Ccp::Persistent::NotFound
  {}
end

#read!Object



50
51
52
# File 'lib/ccp/persistent/base.rb', line 50

def read!
  keys.inject({}) {|h,k| h[k] = self[k]; h}
end

#save(hash, keys = nil) ⇒ Object



22
23
24
25
26
# File 'lib/ccp/persistent/base.rb', line 22

def save(hash, keys = nil)
  (keys || hash.keys).each do |key|
    self[key] = hash[key]
  end
end

#truncateObject

Raises:

  • (NotImplementedError)


58
59
60
# File 'lib/ccp/persistent/base.rb', line 58

def truncate
  raise NotImplementedError, "subclass resposibility"
end