Sha256: 519a2f3ebbad618f756e06696cbbc0407ac7b253e8c5e140896a2fe54236bc89

Contents?: true

Size: 1.97 KB

Versions: 56

Compression:

Stored size: 1.97 KB

Contents

# rails generate effective:scaffold NAME [field[:type] field[:type]] [options]

# Generates a migration, model, datatable, routes, controller, views

# rails generate effective:scaffold Thing
# rails generate effective:scaffold admin/thing name:string details:text --actions index show edit update
# rails generate effective:scaffold admin/thing name:string details:text

module Effective
  module Generators
    class ScaffoldControllerGenerator < Rails::Generators::NamedBase
      include Helpers

      source_root File.expand_path(('../' * 4) + 'lib/scaffolds', __FILE__)

      desc 'Creates an Effective Scaffold based on an existing model'

      argument :actions, type: :array, default: ['crud'], banner: 'action action'
      class_option :attributes, type: :array, default: [], desc: 'Included permitted params, otherwise read from model'

      def invoke_controller
        Rails::Generators.invoke('effective:controller', [name] + invoked_actions + invoked_attributes_args)
      end

      def invoke_route
        Rails::Generators.invoke('effective:route', [name] + invoked_actions)
      end

      def invoke_ability
        Rails::Generators.invoke('effective:ability', [name] + invoked_actions)
      end

      def invoke_menu
        Rails::Generators.invoke('effective:menu', [name])
      end

      def invoke_datatable
        unless invoked_actions.include?('index')
          say_status(:skipped, :datatable, :yellow) and return
        end

        Rails::Generators.invoke('effective:datatable', [name] + invoked_actions + invoked_attributes_args)
      end

      def invoke_views
        Rails::Generators.invoke('effective:views', [name] + invoked_actions + invoked_attributes_args)
      end

      def invoke_form
        unless invoked_actions.include?('new') || invoked_actions.include?('edit')
          say_status(:skipped, :form, :yellow) and return
        end

        Rails::Generators.invoke('effective:form', [name] + invoked_attributes_args)
      end

    end
  end
end

Version data entries

56 entries across 56 versions & 1 rubygems

Version Path
effective_developer-0.4.15 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.14 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.13 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.12 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.11 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.10 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.9 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.8 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.7 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.6 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.5 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.4 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.3 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.2 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.1 lib/generators/effective/scaffold_controller_generator.rb
effective_developer-0.4.0 lib/generators/effective/scaffold_controller_generator.rb