class AttributeStats::GenerateMigration
Public Class Methods
new(table_info: [], options: {})
click to toggle source
# File lib/migration_generator/generate_migration.rb, line 3 def initialize(table_info: [], options: {}) @table_info, @options = table_info, options end
Public Instance Methods
output_migration()
click to toggle source
# File lib/migration_generator/generate_migration.rb, line 7 def output_migration return nil if migration_template.blank? File.open(migration_file_path, 'w') do |f| f.write(migration_template) end migration_file_path end
Private Instance Methods
base_path()
click to toggle source
End Railties methods
# File lib/migration_generator/generate_migration.rb, line 58 def base_path Rails.root.join('db', 'migrate') end
current_migration_number()
click to toggle source
# File lib/migration_generator/generate_migration.rb, line 47 def current_migration_number existing_migration_lookup.collect do |file| File.basename(file).split("_").first.to_i end.max.to_i end
existing_migration_lookup()
click to toggle source
# File lib/migration_generator/generate_migration.rb, line 53 def existing_migration_lookup Dir.glob("#{base_path}/[0-9]*_*.rb") end
find_migration_class_suffix()
click to toggle source
# File lib/migration_generator/generate_migration.rb, line 31 def find_migration_class_suffix existing_migration_suffix = Dir.glob("#{base_path}/[0-9]*_remove_unused_attributes_*.rb").map do |fn| next unless match = fn.match(/(\d+).rb/) match[1].to_i end.compact.max existing_migration_suffix ||= 0 existing_migration_suffix + 1 end
migration_class_suffix()
click to toggle source
# File lib/migration_generator/generate_migration.rb, line 27 def migration_class_suffix @migration_class_suffix ||= find_migration_class_suffix end
migration_file_path()
click to toggle source
# File lib/migration_generator/generate_migration.rb, line 17 def migration_file_path "#{base_path}/#{next_migration_number}_remove_unused_attributes_#{migration_class_suffix}.rb" end
migration_template()
click to toggle source
# File lib/migration_generator/generate_migration.rb, line 21 def migration_template MigrationTemplateContents.new( table_info: @table_info, migration_class_suffix: migration_class_suffix ).content end
next_migration_number()
click to toggle source
The following methods are extracted from Railties railties/lib/rails/generators/migration.rb
# File lib/migration_generator/generate_migration.rb, line 42 def next_migration_number next_migration_number = current_migration_number + 1 ActiveRecord::Migration.next_migration_number(next_migration_number) end