class FileDb::System::Database
Attributes
tables[RW]
Public Class Methods
new(data_directory)
click to toggle source
# File lib/file_db/system/database.rb, line 7 def initialize data_directory @data_directory = data_directory create_database_if_not_exist! load_tables! end
Public Instance Methods
check_table!(table_name)
click to toggle source
# File lib/file_db/system/database.rb, line 38 def check_table! table_name return if @tables[table_name] create_table_file! table_name end
create_database_if_not_exist!()
click to toggle source
# File lib/file_db/system/database.rb, line 25 def create_database_if_not_exist! return if exist_data_directory? create_data_directory! end
drop_data_directory!()
click to toggle source
# File lib/file_db/system/database.rb, line 30 def drop_data_directory! ::FileUtils.rm_rf @data_directory end
load_table!(filename)
click to toggle source
# File lib/file_db/system/database.rb, line 21 def load_table! filename @tables[cleared_tablename(filename)] = Table.new(filename, self) end
load_tables!()
click to toggle source
# File lib/file_db/system/database.rb, line 13 def load_tables! @tables = {} Dir[File.join(@data_directory, "*.csv")].each do |filename| next unless File.file?(filename) load_table! filename end end
save_to_disk(table, content)
click to toggle source
# File lib/file_db/system/database.rb, line 34 def save_to_disk table, content File.write(table.filename, content) end
Private Instance Methods
cleared_tablename(filename)
click to toggle source
# File lib/file_db/system/database.rb, line 45 def cleared_tablename filename filename = filename.gsub '.csv', '' filename = filename.gsub @data_directory, '' filename = filename.gsub '/', '' filename.to_sym end
create_data_directory!()
click to toggle source
# File lib/file_db/system/database.rb, line 56 def create_data_directory! Dir.mkdir @data_directory end
create_table_file!(table_name)
click to toggle source
# File lib/file_db/system/database.rb, line 60 def create_table_file! table_name File.write(File.join(@data_directory, "#{table_name}.csv"), '') load_table! File.join(@data_directory, "#{table_name}.csv") end
exist_data_directory?()
click to toggle source
# File lib/file_db/system/database.rb, line 52 def exist_data_directory? File.exist? @data_directory end