class Pineapples::Actions::Rails::CopyMigration
Attributes
migration_name[R]
Public Class Methods
new(generator, migration_name, options)
click to toggle source
Calls superclass method
Pineapples::Actions::CopyFile::new
# File lib/pineapples/actions/rails/copy_migration.rb, line 22 def initialize(generator, migration_name, options) @generator = generator @migration_name = File.basename(migration_name, File.extname(migration_name)) set_source_for_migration! @target = target_for_migration super(generator, @source, @target, options) end
time()
click to toggle source
# File lib/pineapples/actions/rails/copy_migration.rb, line 14 def self.time @time ||= Time.now end
time=(value)
click to toggle source
# File lib/pineapples/actions/rails/copy_migration.rb, line 18 def self.time=(value) @time = value end
Public Instance Methods
invoke!()
click to toggle source
Calls superclass method
Pineapples::Actions::CopyFile#invoke!
# File lib/pineapples/actions/rails/copy_migration.rb, line 32 def invoke! super self.class.time = self.class.time + 2 end
Private Instance Methods
migration_timestamp()
click to toggle source
# File lib/pineapples/actions/rails/copy_migration.rb, line 60 def migration_timestamp self.class.time.strftime('%Y%m%d%H%M%S') end
relative_migration_dir()
click to toggle source
# File lib/pineapples/actions/rails/copy_migration.rb, line 56 def relative_migration_dir 'db/migrate' end
set_source_for_migration!()
click to toggle source
# File lib/pineapples/actions/rails/copy_migration.rb, line 39 def set_source_for_migration! sources = generator.source_paths_for_search sources.each do |source_path| migration_dir = File.join(source_path, relative_migration_dir) Dir.glob("#{migration_dir}/*.rb").each do |filename| @source = filename if filename.include?(migration_name) end end raise ArgumentError, "Failed to find migration by name #{migration_name}" if @source.nil? end
target_for_migration()
click to toggle source
# File lib/pineapples/actions/rails/copy_migration.rb, line 52 def target_for_migration File.join(relative_migration_dir, "#{migration_timestamp}_#{migration_name}.rb") end