class PgDice::PgSliceManagerFactory

PartitionManagerFactory is a class used to build PartitionManagers

Public Class Methods

new(configuration, opts = {}) click to toggle source
# File lib/pgdice/pg_slice_manager_factory.rb, line 12
def initialize(configuration, opts = {})
  @configuration = configuration
  @pg_slice_executor = opts[:pg_slice_executor] ||= executor
end

Public Instance Methods

call() click to toggle source
# File lib/pgdice/pg_slice_manager_factory.rb, line 17
def call
  PgDice::PgSliceManager.new(logger: logger,
                             database_url: database_url,
                             pg_slice_executor: @pg_slice_executor,
                             dry_run: dry_run)
end

Private Instance Methods

executor() click to toggle source
# File lib/pgdice/pg_slice_manager_factory.rb, line 26
def executor
  lambda do |command|
    results = Open3.capture3(command)
    stdout, stderr = results.first(2).map { |output| squish(output.to_s) }
    status = results[2].exitstatus.to_s
    [stdout, stderr, status]
  end
end