class DbBlaster::SourceTableConfigurationBuilder

Builds source-table configurations based off the tables in the current database and the provided DbBlaster::Configuration

Attributes

configuration[R]
source_table_configurations[R]

Public Class Methods

build_all(configuration) click to toggle source
# File lib/db_blaster/source_table_configuration_builder.rb, line 15
def self.build_all(configuration)
  new(configuration).build_all
end
new(configuration) click to toggle source
# File lib/db_blaster/source_table_configuration_builder.rb, line 10
def initialize(configuration)
  @configuration = configuration
  @source_table_configurations = []
end

Public Instance Methods

batch_size(source_table_name) click to toggle source
# File lib/db_blaster/source_table_configuration_builder.rb, line 30
def batch_size(source_table_name)
  overridden_value_or_global(source_table_name, :batch_size) || configuration.class::DEFAULT_BATCH_SIZE
end
build_all() click to toggle source
# File lib/db_blaster/source_table_configuration_builder.rb, line 19
def build_all
  @build_all ||= table_names_for_configuration
                 .collect(&method(:build_configuration))
end
build_configuration(source_table_name) click to toggle source
# File lib/db_blaster/source_table_configuration_builder.rb, line 24
def build_configuration(source_table_name)
  SourceTableConfiguration.new(source_table_name: source_table_name,
                               batch_size: batch_size(source_table_name),
                               ignored_column_names: ignored_column_names(source_table_name))
end
find_source_table_options(source_table_name) click to toggle source
# File lib/db_blaster/source_table_configuration_builder.rb, line 42
def find_source_table_options(source_table_name)
  (configuration.source_table_options || [])
    .detect { |option| option[:source_table_name] == source_table_name }
end
ignored_column_names(source_table_name) click to toggle source
# File lib/db_blaster/source_table_configuration_builder.rb, line 34
def ignored_column_names(source_table_name)
  overridden_value_or_global(source_table_name, :ignored_column_names) || []
end
overridden_value_or_global(source_table_name, field_name) click to toggle source
# File lib/db_blaster/source_table_configuration_builder.rb, line 38
def overridden_value_or_global(source_table_name, field_name)
  find_source_table_options(source_table_name)&.send(:[], field_name) || configuration.send(field_name)
end
table_names_for_configuration() click to toggle source
# File lib/db_blaster/source_table_configuration_builder.rb, line 47
def table_names_for_configuration
  table_names = if configuration.only_source_tables&.length&.positive?
                  available_tables & configuration.only_source_tables
                else
                  available_tables
                end
  table_names - (configuration.ignore_source_tables || [])
end