Class: Forest::ScaffoldGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- Forest::ScaffoldGenerator
- Includes:
- Rails::Generators::Migration
- Defined in:
- lib/generators/forest/scaffold/scaffold_generator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #create_controller ⇒ Object
- #create_migration_file ⇒ Object
- #create_model_file ⇒ Object
- #create_policy ⇒ Object
- #create_view_files ⇒ Object
Class Method Details
.next_migration_number(dirname) ⇒ Object
14 15 16 17 |
# File 'lib/generators/forest/scaffold/scaffold_generator.rb', line 14 def self.next_migration_number(dirname) next_migration_number = current_migration_number(dirname) + 1 ActiveRecord::Migration.next_migration_number(next_migration_number) end |
Instance Method Details
#create_controller ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/generators/forest/scaffold/scaffold_generator.rb', line 45 def create_controller template 'admin_controller.rb', "app/controllers/admin/#{plural_name}_controller.rb" unless .skip_public? template 'controller.rb', "app/controllers/#{plural_name}_controller.rb" end route_lines = [] route_lines << "# TODO: sort these new admin routes" route_lines << "namespace :admin do" route_lines << " resources :#{plural_name}" route_lines << "end\n" unless .skip_public? route_lines << "# TODO: sort these new public routes" route_lines << "resources :#{plural_name}, only: [:index, :show]\n\n" end route route_lines.join("\n") end |
#create_migration_file ⇒ Object
39 40 41 42 43 |
# File 'lib/generators/forest/scaffold/scaffold_generator.rb', line 39 def create_migration_file set_local_assigns! validate_file_name! migration_template 'create_table_migration.rb', "db/migrate/create_#{table_name}.rb" end |
#create_model_file ⇒ Object
19 20 21 |
# File 'lib/generators/forest/scaffold/scaffold_generator.rb', line 19 def create_model_file template 'model.rb', File.join('app/models', "#{file_name}.rb") end |
#create_policy ⇒ Object
66 67 68 |
# File 'lib/generators/forest/scaffold/scaffold_generator.rb', line 66 def create_policy template 'policy.rb', "app/policies/#{singular_name}_policy.rb" end |
#create_view_files ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/generators/forest/scaffold/scaffold_generator.rb', line 23 def create_view_files admin_views.each do |view| filename = "#{view}.html.erb" template "views/admin/#{filename}", File.join("app/views/admin", plural_name, filename) end template "views/admin/index.json.jbuilder", File.join("app/views/admin", plural_name, 'index.json.jbuilder') unless .skip_public? public_views.each do |view| filename = "#{view}.html.erb" template "views/public/#{filename}", File.join("app/views", plural_name, filename) end end end |