class PgDice::PartitionManagerFactory
PartitionManagerFactory
is a class used to build PartitionManagers
Public Class Methods
new(configuration, opts = {})
click to toggle source
# File lib/pgdice/partition_manager_factory.rb, line 7 def initialize(configuration, opts = {}) @configuration = configuration initialize_simple_factories(opts) initialize_complex_factories(opts) initialize_values(opts) end
Public Instance Methods
call()
click to toggle source
# File lib/pgdice/partition_manager_factory.rb, line 14 def call PgDice::PartitionManager.new(logger: @logger_factory.call, batch_size: @batch_size_factory.call, approved_tables: @approved_tables_factory.call, validation: @validation_factory.call, partition_adder: @partition_adder_factory.call, partition_lister: @partition_lister_factory.call, partition_dropper: @partition_dropper_factory.call, current_date_provider: @current_date_provider) end
Private Instance Methods
initialize_complex_factories(opts)
click to toggle source
# File lib/pgdice/partition_manager_factory.rb, line 33 def initialize_complex_factories(opts) @validation_factory = opts[:validation_factory] ||= PgDice::ValidationFactory.new(@configuration) @partition_adder_factory = opts[:partition_adder_factory] ||= partition_adder_factory @partition_lister_factory = opts[:partition_lister_factory] ||= PgDice::PartitionListerFactory.new(@configuration) @partition_dropper_factory = opts[:partition_dropper_factory] ||= PgDice::PartitionDropperFactory.new(@configuration) end
initialize_simple_factories(opts)
click to toggle source
# File lib/pgdice/partition_manager_factory.rb, line 27 def initialize_simple_factories(opts) @logger_factory = opts[:logger_factory] ||= proc { @configuration.logger } @batch_size_factory = opts[:batch_size_factory] ||= proc { @configuration.batch_size } @approved_tables_factory = opts[:approved_tables_factory] ||= proc { @configuration.approved_tables } end
initialize_values(opts)
click to toggle source
# File lib/pgdice/partition_manager_factory.rb, line 41 def initialize_values(opts) @current_date_provider = opts[:current_date_provider] ||= proc { Time.now.utc.to_date } end
partition_adder_factory()
click to toggle source
# File lib/pgdice/partition_manager_factory.rb, line 45 def partition_adder_factory proc do pg_slice_manager = PgDice::PgSliceManagerFactory.new(@configuration).call ->(all_params) { pg_slice_manager.add_partitions(all_params) } end end