Sha256: f9530e9719c54b227ce482bff8fa9e56ca52a332d4984d86f8b8d8b434d953fb

Contents?: true

Size: 1.08 KB

Versions: 7

Compression:

Stored size: 1.08 KB

Contents

require "rails/generators"
require "rails/generators/migration"
require "active_record"
require "rails/generators/active_record"

module Snapcher
  class InstallGenerator < ::Rails::Generators::Base
    include Rails::Generators::Migration

    source_root File.expand_path("../templates", __dir__)

    def copy_migration
      migration_template "install.rb", "db/migrate/install_snapcher.rb"
    end

    # Implement the required interface for Rails::Generators::Migration.
    def self.next_migration_number(dirname) # :nodoc:
      next_migration_number = current_migration_number(dirname) + 1
      if timestamped_migrations?
        [Time.now.utc.strftime("%Y%m%d%H%M%S"), "%.14d" % next_migration_number].max
      else
        "%.3d" % next_migration_number
      end
    end

    def self.timestamped_migrations?
      if Rails.version >= "7.0"
        ::ActiveRecord.timestamped_migrations
      else
        ::ActiveRecord::Base.timestamped_migrations
      end
    end

    def migration_parent
      "ActiveRecord::Migration[#{ActiveRecord::Migration.current_version}]"
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
snapcher-0.3.1 lib/generators/snapcher/install_generator.rb
snapcher-0.3.0 lib/generators/snapcher/install_generator.rb
snapcher-0.1.5 lib/generators/snapcher/install/install_generator.rb
snapcher-0.1.4 lib/generators/snapcher/install/install_generator.rb
snapcher-0.1.3 lib/generators/snapcher/install/install_generator.rb
snapcher-0.1.2 lib/generators/snapcher/install/install_generator.rb
snapcher-0.1.1 lib/generators/snapcher/install/install_generator.rb