Sha256: f174344037a0b0aa8bbfe0a3a97c9c3c6a635877cd249e223f95428177337e9b

Contents?: true

Size: 1.54 KB

Versions: 49

Compression:

Stored size: 1.54 KB

Contents

module Cmor
  module Core
    module Frontend
      module Generators
        # Example:
        #
        #     rails g cmor:core:frontend:resources_controller -c Cmor::Services::Frontend::ServicesController
        #
        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'
          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

49 entries across 49 versions & 1 rubygems

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