Sha256: 1ad15c805b3d931935f9955cf870bf06f368c5d9f6c212ba97176c0396050112

Contents?: true

Size: 989 Bytes

Versions: 1

Compression:

Stored size: 989 Bytes

Contents

# frozen_string_literal: true

require "rails/generators/migration"

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

    desc "Generates migration for votable (votes table)"

    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(_path)
      Time.now.utc.strftime("%Y%m%d%H%M%S")
    end

    def create_migration_file
      if self.class.orm_has_migration?
        migration_template "migration.rb", "db/migrate/acts_as_votable_migration.rb", migration_version: migration_version
      end
    end


    private

    def migration_version
      if rails5?
        "[4.2]"
      end
    end

    def rails5?
      Rails.version.start_with? "5"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
acts_as_votable-0.11.0 lib/generators/acts_as_votable/migration/migration_generator.rb