Sha256: ada3013bc5278ed6e4832378753424cf715c20ee15a32e24c381d41506213fd1

Contents?: true

Size: 1.38 KB

Versions: 28

Compression:

Stored size: 1.38 KB

Contents

module Merb::Generators
  
  class MigrationGenerator < Generator

    def self.source_root
      File.join(super, 'component', 'migration')
    end
    
    desc <<-DESC
      Generates a new database migration.
    DESC
    
    option :orm, :desc => 'Object-Relation Mapper to use (one of: none, activerecord, datamapper, sequel)'
    option :model, :as => :boolean, :desc => 'Specify this option to generate a migration which creates a table for the provided model'
    
    first_argument :name, :required => true
    second_argument :attributes, :as => :hash, :default => {}
    
    def table_name
      self.name.snake_case.pluralize
    end
    
    def class_name
      "#{self.name.camel_case}Migration"
    end

    def migration_name
      self.name.snake_case
    end
    
    def file_name
      "#{version}_#{migration_name}_migration"
    end
    
    def version
      # TODO: handle ActiveRecord timestamped migrations
      n = options[:delete] ? current_migration_nr : current_migration_nr + 1
      format("%03d", n)
    end

    protected
    
    def destination_directory
      File.join(destination_root, 'schema', 'migrations')
    end
    
    def current_migration_nr
      current_migration_number = Dir["#{destination_directory}/*"].map do |f|
        File.basename(f).match(/^(\d+)/)[0].to_i
      end.max.to_i
    end
    
  end
  
  add :migration, MigrationGenerator
  
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
merb-gen-1.1.3 lib/generators/migration.rb
merb-gen-1.1.2 lib/generators/migration.rb
merb-gen-1.1.1 lib/generators/migration.rb
merb-gen-1.1.0 lib/generators/migration.rb
merb-gen-1.1.0.rc1 lib/generators/migration.rb
merb-gen-1.1.0.pre lib/generators/migration.rb
merb-gen-1.0.15 lib/generators/migration.rb
merb-gen-1.0.14 lib/generators/migration.rb
merb-gen-1.0.13 lib/generators/migration.rb
merb-gen-1.0.12 lib/generators/migration.rb
merb-gen-0.9.13 lib/generators/migration.rb
merb-gen-0.9.12 lib/generators/migration.rb
merb-gen-0.9.11 lib/generators/migration.rb
merb-gen-1.0.1 lib/generators/migration.rb
merb-gen-1.0.11 lib/generators/migration.rb
merb-gen-1.0.2 lib/generators/migration.rb
merb-gen-1.0.10 lib/generators/migration.rb
merb-gen-1.0.6 lib/generators/migration.rb
merb-gen-1.0.3 lib/generators/migration.rb
merb-gen-1.0.5 lib/generators/migration.rb