Sha256: ffd62809234c8fd5319f579a24d1f9d8548e08a57c1546a9e9dbf298d81f53f9

Contents?: true

Size: 1.76 KB

Versions: 15

Compression:

Stored size: 1.76 KB

Contents

# frozen_string_literal: true
require "rails/generators/active_record"

module ActiveAdmin
  module Generators
    class InstallGenerator < ActiveRecord::Generators::Base
      desc "Installs Active Admin and generates the necessary migrations"
      argument :name, type: :string, default: "AdminUser"

      hook_for :users, default: "devise", desc: "Admin user generator to run. Skip with --skip-users"
      class_option :skip_comments, type: :boolean, default: false, desc: "Skip installation of comments"

      source_root File.expand_path("templates", __dir__)

      def copy_initializer
        @underscored_user_name = name.underscore.tr("/", "_")
        @use_authentication_method = options[:users].present?
        @skip_comments = options[:skip_comments]
        template "active_admin.rb.erb", "config/initializers/active_admin.rb"
      end

      def setup_directory
        empty_directory "app/admin"
        template "dashboard.rb", "app/admin/dashboard.rb"
        if options[:users].present?
          @user_class = name
          template "admin_users.rb.erb", "app/admin/#{name.underscore.pluralize}.rb"
        end
      end

      def setup_routes
        if options[:users] # Ensure Active Admin routes occur after Devise routes so that Devise has higher priority
          inject_into_file "config/routes.rb", "\n  ActiveAdmin.routes(self)", after: /devise_for .*, ActiveAdmin::Devise\.config/
        else
          route "ActiveAdmin.routes(self)"
        end
      end

      def create_assets
        generate "active_admin:assets"
      end

      def create_migrations
        unless options[:skip_comments]
          migration_template "migrations/create_active_admin_comments.rb.erb", "db/migrate/create_active_admin_comments.rb"
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
activeadmin-4.0.0.beta15 lib/generators/active_admin/install/install_generator.rb
activeadmin-4.0.0.beta14 lib/generators/active_admin/install/install_generator.rb
activeadmin-4.0.0.beta13 lib/generators/active_admin/install/install_generator.rb
activeadmin-4.0.0.beta12 lib/generators/active_admin/install/install_generator.rb
activeadmin-4.0.0.beta11 lib/generators/active_admin/install/install_generator.rb
activeadmin-4.0.0.beta10 lib/generators/active_admin/install/install_generator.rb
activeadmin-4.0.0.beta9 lib/generators/active_admin/install/install_generator.rb
activeadmin-4.0.0.beta8 lib/generators/active_admin/install/install_generator.rb
activeadmin-4.0.0.beta7 lib/generators/active_admin/install/install_generator.rb
activeadmin-4.0.0.beta6 lib/generators/active_admin/install/install_generator.rb
activeadmin-4.0.0.beta5 lib/generators/active_admin/install/install_generator.rb
activeadmin-4.0.0.beta4 lib/generators/active_admin/install/install_generator.rb
activeadmin-4.0.0.beta3 lib/generators/active_admin/install/install_generator.rb
activeadmin-4.0.0.beta2 lib/generators/active_admin/install/install_generator.rb
activeadmin-4.0.0.beta1 lib/generators/active_admin/install/install_generator.rb