Sha256: 2eaac156073012718d68452fe24471a40c3ac48404ecbfaf851bad8b458ae3dd

Contents?: true

Size: 1.01 KB

Versions: 2

Compression:

Stored size: 1.01 KB

Contents

# Encoding: utf-8
require 'rails/generators'
require 'rails/generators/migration'

module ActsAsStarrable
  class MigrationGenerator < Rails::Generators::Base
    include Rails::Generators::Migration

    desc 'Generates migration for Rating model'

    def self.orm
      Rails::Generators.options[:rails][:orm]
    end

    def self.source_root
      File.join(File.dirname(__FILE__), 'templates',
                (orm.to_s unless orm.class.eql?(String)))
    end

    def self.orm_has_migration?
      [:active_record].include? orm
    end

    def self.next_migration_number(dirname)
      if ActiveRecord::Base.timestamped_migrations
        migration_number = Time.now.utc.strftime('%Y%m%d%H%M%S').to_i
        migration_number += 1
        migration_number.to_s
      else
        '%.3d' % (current_migration_number(dirname) + 1)
      end
    end

    def create_migration_file
      if self.class.orm_has_migration?
        migration_template 'migration.rb', 'db/migrate/acts_as_starrable_migration'
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
acts_as_starrable-0.0.2 lib/generators/acts_as_starrable/migration/migration_generator.rb
acts_as_starrable-0.0.1 lib/generators/acts_as_starrable/migration/migration_generator.rb