Sha256: 1e198a920d259ac7d1c331aafb2c3dd9008ce65da5782e61bcf414b8a7614a5b

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

require 'rails/generators'
require 'rails/generators/migration'

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

    source_root(File.join(File.dirname(__FILE__), '../templates/install'))
    desc 'Install NotificationSettings'

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

    def create_initializer
      template 'initializer.rb', 'config/initializers/notification_settings.rb'
    end

    def create_notifications_migration_file
      migration_template(
        'notifications_migration.rb.erb',
        'db/migrate/notification_settings_migration.rb',
        migration_version: migration_version
      )
    end

    private

    def migration_version
      return unless Rails.version >= '5.0.0'

      "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
notification-settings-3.0.2 lib/generators/notification_settings/install_generator.rb