Class: Rails::Generators::ControllerScaffoldingGenerator
- Inherits:
-
NamedBase
- Object
- NamedBase
- Rails::Generators::ControllerScaffoldingGenerator
- Defined in:
- lib/generators/controller/controller_scaffolding_generator.rb
Instance Method Summary collapse
- #add_resources_route ⇒ Object
- #add_restless_routes ⇒ Object
-
#check_for_model ⇒ Object
TODO: only do if behavior = :invoke maybe?.
- #create_controller_file ⇒ Object
- #run_sns_gen ⇒ Object
- #setup_actions ⇒ Object
Instance Method Details
#add_resources_route ⇒ Object
39 40 41 42 |
# File 'lib/generators/controller/controller_scaffolding_generator.rb', line 39 def add_resources_route #TODO Handle nested resources here (look at namespace_ladder in scaffold generators) route "resources :#{plural_table_name.to_sym}" end |
#add_restless_routes ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/generators/controller/controller_scaffolding_generator.rb', line 44 def add_restless_routes #TODO: make this a little more intelligent so if an action specified to the # generator is Non-RESTful just add a simple "get" route for it BEFORE the resources route #like: get '#{@contr_name}/an_action', to: '#{@contr_name}#an_action' @actions.reject { |a| @restful_actions.include?(a) } .each do |action| route "get '#{file_name}/#{action}', to: '#{file_name}##{action}'" end end |
#check_for_model ⇒ Object
TODO: only do if behavior = :invoke maybe?
25 26 27 28 29 30 31 32 33 |
# File 'lib/generators/controller/controller_scaffolding_generator.rb', line 25 def check_for_model #TODO: only do if behavior = :invoke maybe? #this rescue has only been smoke-tested. can't find a way to unit test begin table_name.classify.constantize #throws runtime if model doesn't exist rescue NameError raise Thor::Error, "Cannot run controller scaffold for model (#{table_name.classify}) that doesn't yet exist." end end |
#create_controller_file ⇒ Object
35 36 37 |
# File 'lib/generators/controller/controller_scaffolding_generator.rb', line 35 def create_controller_file template 'controller.rb', File.join('app/controllers', class_path, "#{file_name}_controller.rb") end |
#run_sns_gen ⇒ Object
55 56 57 58 |
# File 'lib/generators/controller/controller_scaffolding_generator.rb', line 55 def run_sns_gen #TODO: should see if we can do this with a hook_for as well invoke "sql_search_n_sort:install" if .search_sort? end |
#setup_actions ⇒ Object
20 21 22 23 |
# File 'lib/generators/controller/controller_scaffolding_generator.rb', line 20 def setup_actions @restful_actions = %w(index new create edit update destroy) @actions = actions.nil? || actions.empty? ? @restful_actions : actions end |