Sha256: c089efd628edeeed306a2de09be101968ef2f9b11c107420ae4dc9cb916b40fc

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

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

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

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

    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_renderer.rb'
    end

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

    def create_templates
      system 'rails g notification_renderer:type -t notification'
    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-renderer-3.0.2 lib/generators/notification_renderer/install_generator.rb