Class: Cuboid::Support::Database::Base
Abstract
- Inherits:
-
Object
- Object
- Cuboid::Support::Database::Base
show all
- Defined in:
- lib/cuboid/support/database/base.rb
Overview
Base class for Database data structures
Provides helper methods for data structures to be implemented related to objecting dumping, loading, unique filename generation, etc.
Constant Summary
collapse
- DISK_SPACE_FILE =
'Database_disk_space'
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}) ⇒ Base
Returns a new instance of Base.
77
78
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/cuboid/support/database/base.rb', line 77
def initialize( options = {} )
@options = options.dup
@options[:dumper] ||= Marshal
@options[:loader] ||= @options[:dumper]
@filename_counter = 0
at_exit do
clear
end
end
|
Class Method Details
.decrement_disk_space(int) ⇒ Object
27
28
29
|
# File 'lib/cuboid/support/database/base.rb', line 27
def decrement_disk_space( int )
set_disk_space @@disk_space - int
end
|
.disk_directory ⇒ Object
35
36
37
|
# File 'lib/cuboid/support/database/base.rb', line 35
def disk_directory
Options.paths.tmpdir
end
|
.disk_space ⇒ Object
31
32
33
|
# File 'lib/cuboid/support/database/base.rb', line 31
def disk_space
@@disk_space
end
|
.disk_space_file ⇒ Object
39
40
41
|
# File 'lib/cuboid/support/database/base.rb', line 39
def disk_space_file
disk_space_file_for Process.pid
end
|
.disk_space_file_for(pid) ⇒ Object
49
50
51
|
# File 'lib/cuboid/support/database/base.rb', line 49
def disk_space_file_for( pid )
"#{Options.paths.tmp_dir_for( pid )}/#{DISK_SPACE_FILE}"
end
|
.disk_space_for(pid) ⇒ Object
43
44
45
46
47
|
# File 'lib/cuboid/support/database/base.rb', line 43
def disk_space_for( pid )
return 0 if !Dir.exist?( Options.paths.tmp_dir_for( pid ) )
IO.read( disk_space_file_for( pid ) ).to_i
end
|
.increment_disk_space(int) ⇒ Object
23
24
25
|
# File 'lib/cuboid/support/database/base.rb', line 23
def increment_disk_space( int )
set_disk_space @@disk_space + int
end
|
18
19
20
21
|
# File 'lib/cuboid/support/database/base.rb', line 18
def reset
@@disk_space = 0
set_disk_space @@disk_space
end
|
Instance Method Details
#serialize(obj) ⇒ Object
90
91
92
93
94
95
96
|
# File 'lib/cuboid/support/database/base.rb', line 90
def serialize( obj )
compress(
@options[:dumper].respond_to?( :dump ) ?
@options[:dumper].dump( obj ) :
@options[:dumper].call( obj )
)
end
|
#unserialize(data) ⇒ Object
98
99
100
101
102
103
104
|
# File 'lib/cuboid/support/database/base.rb', line 98
def unserialize( data )
data = decompress( data )
@options[:loader].respond_to?( :load ) ?
@options[:loader].load( data ) :
@options[:loader].call( data )
end
|