Sha256: a410a129c59c374845c166f229ab97cef183d641c549dbe51f4b85442505bfc8

Contents?: true

Size: 1.36 KB

Versions: 3

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true
module Blacklight
  class ControllerGenerator < Rails::Generators::Base
    
    source_root File.expand_path('../templates', __FILE__)
    
    argument     :controller_name  , type: :string , default: "catalog"

    desc """
  This generator makes the following changes to your application:
   1. Injects behavior into your user application_controller.rb
   2. Creates a Blacklight::Catalog-based controller
   3. Adds routes for your controller

  Thank you for Installing Blacklight.
         """

    # Add Blacklight to the application controller
    def inject_blacklight_controller_behavior
      inject_into_class "app/controllers/application_controller.rb", "ApplicationController" do
        "  # Adds a few additional behaviors into the application controller \n" +
        "  include Blacklight::Controller\n" +
        "  layout 'blacklight'\n\n"
      end
    end
    
    # Generate blacklight catalog controller
    def create_blacklight_catalog
      template "catalog_controller.rb", "app/controllers/#{controller_name}_controller.rb"
    end

    def inject_blacklight_routes
      route <<-EOF.strip_heredoc
        concern :searchable, Blacklight::Routes::Searchable.new

        resource :catalog, only: [:index], as: 'catalog', path: '/catalog', controller: 'catalog' do
          concerns :searchable
        end
      EOF
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
blacklight-6.0.2 lib/generators/blacklight/controller_generator.rb
blacklight-6.0.1 lib/generators/blacklight/controller_generator.rb
blacklight-6.0.0 lib/generators/blacklight/controller_generator.rb