Class: RailsEngineToolkit::Actions::UninstallEngineMigrations

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_engine_toolkit/actions/uninstall_engine_migrations.rb

Instance Method Summary collapse

Constructor Details

#initialize(argv, stdin:, stdout:, root:, stderr: nil) ⇒ UninstallEngineMigrations

Returns a new instance of UninstallEngineMigrations.



6
7
8
9
10
11
12
13
# File 'lib/rails_engine_toolkit/actions/uninstall_engine_migrations.rb', line 6

def initialize(argv, stdin:, stdout:, root:, stderr: nil)
  @engine_name = argv[0]
  @stdin = stdin
  @stdout = stdout
  @stderr = stderr
  @root = Pathname(root)
  @project = Project.new(@root)
end

Instance Method Details

#callObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/rails_engine_toolkit/actions/uninstall_engine_migrations.rb', line 15

def call
  @project.validate_root!
  validate_engine!

  root_matches = matching_root_migrations
  if root_matches.empty?
    @stdout.puts("No installed root migrations found for engine '#{@engine_name}'.")
    return
  end

  print_matches(root_matches)
  confirm_uninstall!
  root_matches.each(&:delete)

  @stdout.puts("Removed #{root_matches.size} root migration file(s) for engine '#{@engine_name}'.")
end