Sha256: f5be0f363952a6f1d065860cdc1bfbb8ec88d5d2d315cd668ac41ab87cf24c39

Contents?: true

Size: 1.67 KB

Versions: 31

Compression:

Stored size: 1.67 KB

Contents

module Cmor
  module Core
    module Backend
      module Generators
        # Example:
        #
        #     rails g cmor:core:backend:resources_controller -c Cmor::Showcase::CategoriesController
        #
        class ResourcesControllerGenerator < Rails::Generators::Base
          desc 'Generates a resources controller with CRUD actions.'

          source_root File.expand_path('../templates', __FILE__)

          class_option :controller_class, type: 'string', aliases: '-c', required: true, desc: 'Specifies the full class name of the controller. Example: "--controller-class Cmor::Showcase::CategoriesController"'
          class_option :resource_class, type: 'string', aliases: '-m'

          def generate_controller
            template 'resources_controller.rb', target_filename
          end

          def generate_routes
            route "resources :#{resources_route_name}"
          end

          private

          def resources_route_name
            @resources_route_name ||= controller_class.gsub(current_engine.chomp('Engine'), '').chomp('Controller').underscore
          end

          def current_engine
            @current_engine ||= File.open("config/routes.rb", &:readline).split('.').first
          end

          def target_filename
            @target_filename ||= "app/controllers/#{controller_class.underscore}.rb"
          end

          def controller_class
            @controller_class ||= options[:controller_class]
          end

          def resource_class
            controller_class.chomp('Controller').singularize
          end

          def params_name
            resource_class.demodulize.underscore
          end
        end
      end
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
cmor_core_backend-0.0.60.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.59.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.58.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.57.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.56.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.55.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.54.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.53.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.52.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.51.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.50.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.49.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.48.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.45.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.44.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.43.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.42.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.41.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.40.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb
cmor_core_backend-0.0.39.pre lib/generators/cmor/core/backend/resources_controller/resources_controller_generator.rb