class Convergence::Command::Dryrun

Public Instance Methods

execute() click to toggle source
# File lib/convergence/command/dryrun.rb, line 9
def execute
  current_dir_path = Pathname.new(@opts[:input]).realpath.dirname
  input_tables = Convergence::DSL.parse(File.open(@opts[:input]).read, current_dir_path)
  current_tables = dumper.dump
  # -- maybe it's redundant output
  # output_diff(input_tables, current_tables)
  output_sql(input_tables, current_tables)
end

Private Instance Methods

output_diff(input_tables, current_tables) click to toggle source
# File lib/convergence/command/dryrun.rb, line 20
def output_diff(input_tables, current_tables)
  input_tables_without_default_parameter =
    Convergence::DefaultParameter.remove_database_default_parameter(input_tables, database_adapter)
  current_tables_without_default_parameter =
    Convergence::DefaultParameter.remove_database_default_parameter(current_tables, database_adapter)

  msg = Convergence::PrettyDiff
    .new(current_tables_without_default_parameter, input_tables_without_default_parameter)
    .output
  logger.output(msg)
  msg
end
output_sql(input_tables, current_tables) click to toggle source
# File lib/convergence/command/dryrun.rb, line 33
def output_sql(input_tables, current_tables)
  msg = Convergence::Command::Apply
    .new(@opts, config: @config)
    .generate_sql(input_tables, current_tables)
    .split("\n")
    .map { |v| '# ' + v }
    .join("\n")
  logger.output(msg) unless msg.empty?
  msg
end