Fix partition implementation.
This commit is contained in:
parent
b590cb9e0f
commit
351df7426f
@ -36,7 +36,10 @@ class DODB::Partition(V) < DODB::Indexer(V)
|
|||||||
|
|
||||||
symlink = get_partition_symlink(partition, key)
|
symlink = get_partition_symlink(partition, key)
|
||||||
|
|
||||||
::File.delete symlink
|
begin
|
||||||
|
::File.delete symlink
|
||||||
|
rescue File::NotFoundError
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def get(partition) : Array(V)
|
def get(partition) : Array(V)
|
||||||
@ -128,11 +131,11 @@ class DODB::CachedPartition(V) < DODB::Partition(V)
|
|||||||
end
|
end
|
||||||
|
|
||||||
def get(partition)
|
def get(partition)
|
||||||
r_value = Array(V).new
|
r_value = Array(Tuple(V, Int32)).new
|
||||||
|
|
||||||
if keys = @data[partition]?
|
if keys = @data[partition]?
|
||||||
keys.each do |data_key|
|
keys.each do |data_key|
|
||||||
r_value << @storage[data_key]
|
r_value << { @storage[data_key], data_key }
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
# Get the key from the database representation on the file-system.
|
# Get the key from the database representation on the file-system.
|
||||||
@ -140,10 +143,11 @@ class DODB::CachedPartition(V) < DODB::Partition(V)
|
|||||||
raise MissingEntry.new(@name, partition) unless Dir.exists? partition_directory
|
raise MissingEntry.new(@name, partition) unless Dir.exists? partition_directory
|
||||||
|
|
||||||
Dir.each_child partition_directory do |child|
|
Dir.each_child partition_directory do |child|
|
||||||
r_value << @storage[get_key child]
|
r_value << { @storage[get_key child], get_key child }
|
||||||
end
|
end
|
||||||
@data[partition] = r_value
|
|
||||||
|
@data[partition] = r_value.map &.[1]
|
||||||
end
|
end
|
||||||
r_value
|
r_value.map &.[0]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user