class DbBlaster::SourceTablesSchemaBuilder

Builds an array of tables and their columns

Public Class Methods

build_schema() click to toggle source
# File lib/db_blaster/source_tables_schema_builder.rb, line 6
def self.build_schema
  new.build_schema
end

Public Instance Methods

build_columns_from_table_name(table_name) click to toggle source
# File lib/db_blaster/source_tables_schema_builder.rb, line 18
def build_columns_from_table_name(table_name)
  ActiveRecord::Base.connection.columns(table_name).collect do |column|
    next if ignored_column?(column.name)

    { name: column.name,
      type: column.type,
      limit: column.limit }
  end.compact
end
build_schema() click to toggle source
# File lib/db_blaster/source_tables_schema_builder.rb, line 10
def build_schema
  ActiveRecord::Base.connection.tables.each_with_object({}) do |table_name, hash|
    unless AvailableTables::SYSTEM_TABLES.include?(table_name)
      hash[table_name] = build_columns_from_table_name(table_name)
    end
  end
end
ignored_column?(column) click to toggle source
# File lib/db_blaster/source_tables_schema_builder.rb, line 28
def ignored_column?(column)
  (DbBlaster.configuration.ignored_column_names || []).include?(column)
end