Sha256: befbfae3f2b3084765b21dbfc9c15d8ec1da541b973e2a041487f49b980f66b5

Contents?: true

Size: 1.1 KB

Versions: 2

Compression:

Stored size: 1.1 KB

Contents

require 'rails/generators'
require 'rails/generators/migration'
require 'migration_assist/helper/file_name'

module Rails::Migration::Assist
  include Rails::Generators::Migration
  # include Rails::Assist::Migration
  include FileNameHelper
    
  def reverse_migration_name name
    name.gsub(/^add_/, 'remove_').gsub(/^create_/, 'drop_')
  end

  def reverse_migration! migration_path
    reverse_class_names! migration_path        
    reverse_up_down_methods! migration_path
  end

  def reverse_class_names! migration_path
    # Change class name
    gsub_file migration_path, /class Add/, 'class Remove'
    gsub_file migration_path, /class Create/, 'class Drop'
  end

  def reverse_up_down_methods! migration_path
    # swap up and down methods
    gsub_file migration_path, /up/, 'dwn'
    gsub_file migration_path, /down/, 'up'
    gsub_file migration_path, /dwn/, 'down'        
  end

  def latest_migration_file dir, name
    self.class.latest_migration_file dir, name
  end
  
  def migration name, template_name=nil
    migration_template "#{template_name || name}.erb", migration_file_name(name)
  end  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
migration_assist-0.1.3 lib/migration_assist/implementation.rb
migration_assist-0.1.2 lib/migration_assist/implementation.rb