Class: Admin::Generators::ScaffoldControllerGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- Admin::Generators::ScaffoldControllerGenerator
- Includes:
- Rails::Generators::ResourceHelpers
- Defined in:
- lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb
Instance Method Summary collapse
- #copy_view_files ⇒ Object
- #create_controller_files ⇒ Object
- #create_layout ⇒ Object
- #create_root_folder ⇒ Object
- #create_test_files ⇒ Object
-
#initialize(args, *options) ⇒ ScaffoldControllerGenerator
constructor
:nodoc:.
Constructor Details
#initialize(args, *options) ⇒ ScaffoldControllerGenerator
:nodoc:
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 34 def initialize(args, *) #:nodoc: if args.length == 1 blacklist = %w(created_at updated_at id) args[0].camelize.constantize.columns_hash.each do |k,v| unless blacklist.include?(k) string = "#{k}:#{v.type}" args << string end end end super end |
Instance Method Details
#copy_view_files ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 79 def copy_view_files available_views.each do |view| filename = filename_with_extensions(view) if bootstrap template_path = "views/#{handler}_bootstrap/#{filename}.erb" else template_path = "views/#{handler}/#{filename}.erb" end template template_path, File.join("app/views", prefix, controller_file_path, filename) end # I think there should be a better way to detect if jbuilder is in use if Gem::Specification.find_all_by_name('jbuilder').length >= 1 %w(index show).each do |view| template "views/jbuilder/#{view}.json.jbuilder.erb", File.join("app/views", prefix, controller_file_path, "#{view}.json.jbuilder") end end end |
#create_controller_files ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 51 def create_controller_files # I think there should be a better way to detect if jbuilder is in use # If you know it, please let me know if Gem::Specification.find_all_by_name('jbuilder').length >= 1 template "controllers/jbuilder/controller.rb.erb", File.join('app/controllers', prefix, class_path, "#{controller_file_name}_controller.rb") else template "controllers/railties/controller.rb.erb", File.join('app/controllers', prefix, class_path, "#{controller_file_name}_controller.rb") end end |
#create_layout ⇒ Object
61 62 63 64 65 |
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 61 def create_layout copy_file "admin.css", "app/assets/stylesheet/#{prefix}/#{prefix}.css" copy_file "admin.js", "app/assets/javascript/#{prefix}/#{prefix}.js" template "layout.html.erb", "app/views/layouts/#{prefix}.html.erb" end |
#create_root_folder ⇒ Object
75 76 77 |
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 75 def create_root_folder empty_directory File.join("app/views", prefix, controller_file_path) end |
#create_test_files ⇒ Object
67 68 69 |
# File 'lib/generators/admin/scaffold_controller/scaffold_controller_generator.rb', line 67 def create_test_files template "tests/test_unit/functional_test.rb.erb", File.join("test/controllers", prefix, controller_class_path, "#{controller_file_name}_controller_test.rb") end |