Sha256: 7b01d23df68cd2311f993e30837b764ac4768fef0fbf3982f0def818e7cc80dc

Contents?: true

Size: 1.31 KB

Versions: 21

Compression:

Stored size: 1.31 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 <<-EOS
      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
    EOS

    # 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 :determine_layout if respond_to? :layout\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
  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

21 entries across 21 versions & 2 rubygems

Version Path
blacklight-8.6.1 lib/generators/blacklight/controller_generator.rb
blacklight-8.6.0 lib/generators/blacklight/controller_generator.rb
blacklight-8.5.1 lib/generators/blacklight/controller_generator.rb
blacklight-8.5.0 lib/generators/blacklight/controller_generator.rb
blacklight-8.4.0 lib/generators/blacklight/controller_generator.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/blacklight-8.3.0/lib/generators/blacklight/controller_generator.rb
blacklight-8.3.0 lib/generators/blacklight/controller_generator.rb
blacklight-8.2.2 lib/generators/blacklight/controller_generator.rb
blacklight-8.2.1 lib/generators/blacklight/controller_generator.rb
blacklight-8.2.0 lib/generators/blacklight/controller_generator.rb
blacklight-8.1.0 lib/generators/blacklight/controller_generator.rb
blacklight-8.0.1 lib/generators/blacklight/controller_generator.rb
blacklight-8.0.0 lib/generators/blacklight/controller_generator.rb
blacklight-8.0.0.beta8 lib/generators/blacklight/controller_generator.rb
blacklight-8.0.0.beta7 lib/generators/blacklight/controller_generator.rb
blacklight-8.0.0.beta6 lib/generators/blacklight/controller_generator.rb
blacklight-8.0.0.beta5 lib/generators/blacklight/controller_generator.rb
blacklight-8.0.0.beta4 lib/generators/blacklight/controller_generator.rb
blacklight-8.0.0.beta3 lib/generators/blacklight/controller_generator.rb
blacklight-8.0.0.beta2 lib/generators/blacklight/controller_generator.rb