class Kibutsu::DatabaseConnection
Only class that directly interacts with Sequel. Used for retrieving data from the database and inserting fixtures into it.
Attributes
connection[R]
Public Class Methods
new(connection_string)
click to toggle source
# File lib/kibutsu/database_connection.rb, line 9 def initialize(connection_string) @connection = Sequel.connect(connection_string) end
Public Instance Methods
column_names(table_name)
click to toggle source
# File lib/kibutsu/database_connection.rb, line 20 def column_names(table_name) connection.schema(table_name.to_s).map(&:first) end
disconnect()
click to toggle source
# File lib/kibutsu/database_connection.rb, line 38 def disconnect connection.disconnect end
foreign_key_columns(table_name)
click to toggle source
# File lib/kibutsu/database_connection.rb, line 24 def foreign_key_columns(table_name) connection.foreign_key_list(table_name.to_s).map do |foreign_key_info| ForeignKeyColumn.new( FixtureWorld.instance.find_table(table_name.to_s), foreign_key_info[:columns].first.to_s, FixtureWorld.instance.find_table(foreign_key_info[:table].to_s) ) end end
insert_fixture_tables(fixture_tables)
click to toggle source
# File lib/kibutsu/database_connection.rb, line 13 def insert_fixture_tables(fixture_tables) fixture_tables.each do |fixture_table| insert_table(fixture_table) insert_fixture_tables(fixture_table.foreign_key_source_tables) end end
table_names()
click to toggle source
# File lib/kibutsu/database_connection.rb, line 34 def table_names connection.tables end
Private Instance Methods
insert_fixture(fixture)
click to toggle source
# File lib/kibutsu/database_connection.rb, line 54 def insert_fixture(fixture) fixture_table = fixture.table attributes = fixture.enriched_attributes connection[fixture_table.name.to_sym].insert(attributes) end
insert_table(fixture_table)
click to toggle source
# File lib/kibutsu/database_connection.rb, line 46 def insert_table(fixture_table) connection[fixture_table.name.to_sym].delete fixture_table.fixtures.each do |fixture| insert_fixture(fixture) end end