class Mongration::CreateMigration

@private

Public Class Methods

new(name, options) click to toggle source
# File lib/mongration/create_migration.rb, line 12
def initialize(name, options)
  @options = options

  snakecase = name.gsub(/([a-z])([A-Z0-9])/, '\1_\2').downcase
  @file_name = "#{next_migration_number}_#{snakecase}.rb"
end
perform(name, options = {}) click to toggle source
# File lib/mongration/create_migration.rb, line 8
def self.perform(name, options = {})
  new(name, options).perform
end

Public Instance Methods

perform() click to toggle source
# File lib/mongration/create_migration.rb, line 19
def perform
  MigrationFileWriter.write(
    @file_name,
    @options
  )
end

Private Instance Methods

next_migration_number() click to toggle source
# File lib/mongration/create_migration.rb, line 28
def next_migration_number
  if Mongration.configuration.timestamps?
    Time.now.utc.strftime('%Y%m%d%H%M%S').to_i
  else
    latest_file = File.last

    number = if latest_file
               latest_file.number + 1
             else
               1
             end
    '%.3d' % number
  end
end