Class: ViewObject::Dispatcher
- Inherits:
-
Object
- Object
- ViewObject::Dispatcher
- Defined in:
- lib/view_object/dispatcher.rb
Class Method Summary collapse
- .dispatch_view_object(controller) ⇒ Object
- .make_view_object(controller) ⇒ Object
- .vo_class_name(controller) ⇒ Object
Class Method Details
.dispatch_view_object(controller) ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/view_object/dispatcher.rb', line 4 def self.dispatch_view_object(controller) vo = make_view_object(controller) controller.instance_variable_set( :@view_object, vo ) end |
.make_view_object(controller) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/view_object/dispatcher.rb', line 12 def self.make_view_object(controller) name = vo_class_name(controller) vo_class = ActiveSupport::Dependencies.constantize(name) vo = vo_class.new vo.instance_variable_set( :@controller, controller ) #do callback if vo.respond_to?(:after_initialize) vo.after_initialize end vo end |
.vo_class_name(controller) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/view_object/dispatcher.rb', line 29 def self.vo_class_name(controller) route_path = ViewObject.config.routes_path if route_path.present? && route_path.last != '/' route_path += '/' end paths = route_path + controller.params[:controller] + '/' + controller.params[:action] ret = paths.split('/').map { | path | path.camelcase }.join('::') ret += 'ViewObject' ret end |