Class: Layered::Resource::Generators::ScaffoldGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- Layered::Resource::Generators::ScaffoldGenerator
- Defined in:
- lib/generators/layered/resource/scaffold/scaffold_generator.rb
Overview
One-shot scaffolder: generates the migration + model (via Rails'
built-in model generator), an app/layered_resources/<name>_resource.rb
(via layered:resource), and appends a layered_resources :name route.
Views are intentionally left to the gem's defaults - run
rails g layered:resource:views <name> to eject them.
rails g layered:resource:scaffold article title:string body:text
Instance Method Summary collapse
- #add_route ⇒ Object
- #create_model ⇒ Object
- #create_resource_file ⇒ Object
- #eject_controller ⇒ Object
- #eject_views ⇒ Object
- #show_next_steps ⇒ Object
Instance Method Details
#add_route ⇒ Object
49 50 51 |
# File 'lib/generators/layered/resource/scaffold/scaffold_generator.rb', line 49 def add_route route "layered_resources :#{plural_name}#{route_controller_option}#{route_action_filter}" end |
#create_model ⇒ Object
31 32 33 34 35 |
# File 'lib/generators/layered/resource/scaffold/scaffold_generator.rb', line 31 def create_model return if [:skip_model] invoke "model", [singular_name, *attributes.map(&:to_s)] end |
#create_resource_file ⇒ Object
37 38 39 |
# File 'lib/generators/layered/resource/scaffold/scaffold_generator.rb', line 37 def create_resource_file invoke ResourceGenerator, [singular_name, *attributes.map(&:to_s)], skip_route: true end |
#eject_controller ⇒ Object
41 42 43 |
# File 'lib/generators/layered/resource/scaffold/scaffold_generator.rb', line 41 def eject_controller invoke "layered:resource:controller", [plural_name] if [:controller] end |
#eject_views ⇒ Object
45 46 47 |
# File 'lib/generators/layered/resource/scaffold/scaffold_generator.rb', line 45 def eject_views invoke ViewsGenerator, [plural_name] if [:views] end |
#show_next_steps ⇒ Object
53 54 55 56 57 58 59 60 |
# File 'lib/generators/layered/resource/scaffold/scaffold_generator.rb', line 53 def show_next_steps say "" say "Next steps for app/layered_resources/#{singular_name}_resource.rb:" say " - Add `validates` calls to #{resource_class_name} for any required fields - the form marks fields required based on unconditional presence validators." say " - Consider `default_sort attribute: :created_at, direction: :desc` (or another column) so the index has a stable order." say " - Consider `search_fields [...]` listing the columns the index search box should match against." say "" end |