Sha256: 450ca0aa2f4fba5a1df93012689da7adeeef57288a252ef4b81182fa96e41fc9

Contents?: true

Size: 1.03 KB

Versions: 3

Compression:

Stored size: 1.03 KB

Contents

module Faalis
  module Generators
    # Generate a resource on dashboard
    class ResourceGenerator < Rails::Generators::Base

      desc 'Generates new Faalis resource.'
      argument :resource_name , type: :string, required: true
      class_option :namespace, desc: 'The parent namespace'

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

      def create_pundit_file
        generate 'pundit:policy', resource
      end

      def create_controller
        template('dashboard/controller.rb.erb',
                 "app/controllers/#{namespace.underscore + '/'}dashboard/#{resources}_controller.rb")
      end

      def inject_routes
        gsub_file('config/routes.rb',
                  "in_dashboard do",
                  "in_dashboard do\n    resources :#{resources}")
      end

      private

      def resource
        resource_name.singularize.underscore
      end

      def resources
        resource_name.pluralize.underscore
      end

      def namespace
        options["namespace"] || ''
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
faalis-2.0.0.rc4 lib/generators/faalis/resource_generator.rb
faalis-2.0.0.rc3 lib/generators/faalis/resource_generator.rb
faalis-2.0.0.rc2 lib/generators/faalis/resource_generator.rb