module PGTrunk::CommandRecorder
@private The module record commands done during a migration.
Public Class Methods
register(klass)
click to toggle source
@param [PGTrunk::Operation] klass
# File lib/pg_trunk/core/railtie/command_recorder.rb, line 8 def self.register(klass) define_method(klass.ruby_name) do |*args, &block| record(klass.ruby_name, args, &block) end end
register_inversion(klass)
click to toggle source
@param [PGTrunk::Operation] klass
# File lib/pg_trunk/core/railtie/command_recorder.rb, line 15 def self.register_inversion(klass) define_method(klass.ruby_iname) do |args, &block| original = klass.from_ruby(*args, &block) inverted = original.invert! # for example (skip_inversion(:validate_foreign_key)) return [:skip_inversion, [klass.ruby_name]] unless inverted # list of attributes `to_a` is added for reporting to stdout params = inverted.to_a opts = inverted.to_opts params << opts if opts.present? [inverted.class.ruby_name, params] end end