Module: Persistence::Adapter::Mock::AdapterInterface

Includes:
Abstract::EnableDisable
Included in:
Persistence::Adapter::Mock
Defined in:
lib/persistence/adapter/mock/adapter_interface.rb

Overview

Interface implementation for storage port in Mock adapter.

Instance Attribute Summary

Attributes included from Abstract::EnableDisable

#home_directory

Instance Method Summary collapse

Methods included from Abstract::EnableDisable

#disable, #disabled?, #enable, #enabled?

Instance Method Details

#delete_bucket_for_object_id(global_id) ⇒ Object

delete_bucket_for_object_id #



65
66
67
68
69
# File 'lib/persistence/adapter/mock/adapter_interface.rb', line 65

def delete_bucket_for_object_id( global_id )

  return @bucket_for_id.delete( global_id )

end

#delete_class_for_object_id(global_id) ⇒ Object

delete_class_for_object_id #



75
76
77
78
79
# File 'lib/persistence/adapter/mock/adapter_interface.rb', line 75

def delete_class_for_object_id( global_id )

  return @class_for_id.delete( global_id )
  
end

#ensure_object_has_globally_unique_id(object) ⇒ Object

ensure_object_has_globally_unique_id #



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/persistence/adapter/mock/adapter_interface.rb', line 85

def ensure_object_has_globally_unique_id( object )

  unless object.persistence_id

    # in which case we need to create a new ID
    @id_sequence = ( @id_sequence ||= -1 ) + 1
    global_id = @id_sequence
    @bucket_for_id[ global_id ] = object.persistence_bucket.name
    @class_for_id[ global_id ] = object.class
    object.persistence_id = global_id

  end

  return object.persistence_id

end

#get_bucket_name_for_object_id(global_id) ⇒ Object

get_bucket_name_for_object_id #



45
46
47
48
49
# File 'lib/persistence/adapter/mock/adapter_interface.rb', line 45

def get_bucket_name_for_object_id( global_id )

  return @bucket_for_id[ global_id ]

end

#get_class_for_object_id(global_id) ⇒ Object

get_class_for_object_id #



55
56
57
58
59
# File 'lib/persistence/adapter/mock/adapter_interface.rb', line 55

def get_class_for_object_id( global_id )

  return @class_for_id[ global_id ]
  
end

#initialize(home_directory = nil) ⇒ Object

initialize #



13
14
15
16
17
18
19
20
21
# File 'lib/persistence/adapter/mock/adapter_interface.rb', line 13

def initialize( home_directory = nil )
  
  super() if defined?( super )
  
  @bucket_for_id = { }
  @class_for_id = { }
  @buckets = { }
  
end

#persistence_bucket(bucket) ⇒ Object

persistence_bucket #



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/persistence/adapter/mock/adapter_interface.rb', line 27

def persistence_bucket( bucket )
  
  bucket_instance = nil
  
  unless bucket_instance = @buckets[ bucket ]
    bucket_instance = ::Persistence::Adapter::Mock::Bucket.new( bucket )
    bucket_instance.parent_adapter = self    
    @buckets[ bucket ] = bucket_instance
  end
  
  return bucket_instance
  
end