Sha256: 5eeff7f4f10d25a25696318029ef01a6905e8a41175dcd45eaeb80e192f34c6d

Contents?: true

Size: 1.65 KB

Versions: 3

Compression:

Stored size: 1.65 KB

Contents

# frozen_string_literal: true

module Responders
  module Generators
    class InstallGenerator < Rails::Generators::Base
      source_root File.expand_path("..", __FILE__)

      desc "Creates an initializer with default responder configuration and copy locale file"

      def create_responder_file
        create_file "lib/application_responder.rb", <<~RUBY
          class ApplicationResponder < ActionController::Responder
            include Responders::FlashResponder
            include Responders::HttpCacheResponder

            # Redirects resources to the collection path (index action) instead
            # of the resource path (show action) for POST/PUT/DELETE requests.
            # include Responders::CollectionResponder

            # Configure default status codes for responding to errors and redirects.
            self.error_status = :unprocessable_entity
            self.redirect_status = :see_other
          end
        RUBY
      end

      def update_application
        inject_into_class "config/application.rb", "Application", <<-RUBY
    # Use the responders controller from the responders gem
    config.app_generators.scaffold_controller :responders_controller

        RUBY
      end

      def update_application_controller
        prepend_file "app/controllers/application_controller.rb", %{require "application_responder"\n\n}
        inject_into_class "app/controllers/application_controller.rb", "ApplicationController", <<-RUBY
  self.responder = ApplicationResponder
  respond_to :html

        RUBY
      end

      def copy_locale
        copy_file "../../responders/locales/en.yml", "config/locales/responders.en.yml"
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/responders-3.1.1/lib/generators/responders/install_generator.rb
responders-3.1.1 lib/generators/responders/install_generator.rb
responders-3.1.0 lib/generators/responders/install_generator.rb