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