Class: ForeignKeyChecker::Generators::MigrationGenerator

Inherits:
ActiveRecord::Generators::Base
  • Object
show all
Defined in:
lib/generators/foreign_key_checker/migration/migration_generator.rb

Instance Method Summary collapse

Instance Method Details

#create_migrationsObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/generators/foreign_key_checker/migration/migration_generator.rb', line 11

def create_migrations
  @class_name = name.camelcase.tr(':', '')
  file_name = name.underscore.tr('/', '_')
  @done = Dir.glob(Rails.root.join('db', 'migrate', '*.rb')).map do |path|
    File.open(path).readlines.find { |line| line.include?('ActiveRecord::Migration') && line.include?(@class_name) }
  end.compact.size
  @checks = ForeignKeyChecker.check(zombies: false) unless @behavior == :revoke
  if @behavior == :revoke
    @file_suffix = "_v#{@done}" if @done > 1
    @class_suffix = "V#{@done}" if @done > 1
  else
    @file_suffix = "_v#{@done + 1}" if @done > 0
    @class_suffix = "V#{@done + 1}" if @done > 0
  end
  migration_template 'migrations/fix_foreign_keys.rb.erb', "db/migrate/#{file_name}#{@file_suffix}.rb"
end