Module: ActionController::Components::ClassMethods

Defined in:
lib/action_controller/components.rb

Instance Method Summary collapse

Instance Method Details

#process_with_components(request, response, parent_controller = nil) ⇒ Object

Track parent controller to identify component requests



63
64
65
66
67
# File 'lib/action_controller/components.rb', line 63

def process_with_components(request, response, parent_controller = nil) #:nodoc:
  controller = new
  controller.parent_controller = parent_controller
  controller.process(request, response)
end

#uses_component_template_rootObject

Set the template root to be one directory behind the root dir of the controller. Examples:

/code/weblog/components/admin/users_controller.rb with Admin::UsersController 
  will use /code/weblog/components as template root 
  and find templates in /code/weblog/components/admin/users/

/code/weblog/components/admin/parties/users_controller.rb with Admin::Parties::UsersController 
  will also use /code/weblog/components as template root 
  and find templates in /code/weblog/components/admin/parties/users/


77
78
79
80
81
82
# File 'lib/action_controller/components.rb', line 77

def uses_component_template_root
  path_of_calling_controller = File.dirname(caller[1].split(/:\d+:/, 2).first)
  path_of_controller_root    = path_of_calling_controller.sub(/#{Regexp.escape(File.dirname(controller_path))}$/, "")

  self.template_root = path_of_controller_root
end