Sha256: d7109f539c3d46cd747ab32349bdb5e967f710e82d6639899f3bbf04fcff5220

Contents?: true

Size: 1.97 KB

Versions: 25

Compression:

Stored size: 1.97 KB

Contents

require 'rails/generators/active_record'

module Lalala
  module Generators

    # This class is stolen from active admin
    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"

      def self.source_root
        @_active_admin_source_root ||= File.expand_path("../templates", __FILE__)
      end

      def setup_routes
        remove_file("config/routes.rb")
        template 'routes.rb.erb', 'config/routes.rb'
      end

      def copy_initializer
        @underscored_user_name = name.underscore
        template 'active_admin.rb.erb', 'config/initializers/active_admin.rb'
      end

      def setup_errors
        empty_directory "app/controllers"
        template 'errors_controller.rb', 'app/controllers/errors_controller.rb'
      end

      def setup_pages
        empty_directory "app/pages"
        template 'application_page.rb', 'app/pages/application_page.rb'
        empty_directory "app/controllers"
        template 'pages_controller.rb', 'app/controllers/pages_controller.rb'
        empty_directory "app/admin"
        template 'admin_pages.rb', 'app/admin/admin_pages.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_user.rb.erb', "app/admin/#{name.underscore.pluralize}.rb"
        end
      end

      def create_assets
        generate "lalala:assets"
      end

      def create_migrations
        Dir["#{self.class.source_root}/migrations/*.rb"].sort.each do |filepath|
          name = File.basename(filepath)
          migration_template "migrations/#{name}", "db/migrate/#{name.gsub(/^\d+_/,'')}"
          sleep 1
        end
      end

    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
lalala-4.0.0.dev.58 lib/generators/lalala/install/install_generator.rb
lalala-4.0.0.dev.57 lib/generators/lalala/install/install_generator.rb
lalala-4.0.0.dev.56 lib/generators/lalala/install/install_generator.rb
lalala-4.0.0.dev.50 lib/generators/lalala/install/install_generator.rb
lalala-4.0.0.dev.46 lib/generators/lalala/install/install_generator.rb