Changeset 512

Show
Ignore:
Timestamp:
09/04/07 19:20:32 (1 year ago)
Author:
e.@brainspl.at
Message:

refactor view_context.rb to include Merb::WebControllerMixin? instead of using explicit delegator methods.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/merb/view_context.rb

    r469 r512  
    55                       @method 
    66                       @env 
    7                        @controller 
     7                       @web_controller 
    88                       @_body 
    99                       @_fingerprint_before 
     
    2727    include Merb::FormControls 
    2828    include Merb::GlobalHelper 
     29    include Merb::WebControllerMixin 
    2930     
    3031    def initialize(controller) 
    3132      @_merb_partial_locals = {} 
    32       @controller = controller 
    33       (@controller.instance_variables - PROTECTED_IVARS).each do |ivar| 
    34         self.instance_variable_set(ivar, @controller.instance_variable_get(ivar)) 
     33      @web_controller = controller 
     34      (@web_controller.instance_variables - PROTECTED_IVARS).each do |ivar| 
     35        self.instance_variable_set(ivar, @web_controller.instance_variable_get(ivar)) 
    3536      end 
    3637      begin 
    37         self.class.class_eval("include Merb::#{@controller.class.name}Helper") 
     38        self.class.class_eval("include Merb::#{@web_controller.class.name}Helper") 
    3839      rescue NameError 
    39         MERB_LOGGER.debug("Missing Helper: Merb::#{@controller.class.name}Helper") 
     40        MERB_LOGGER.debug("Missing Helper: Merb::#{@web_controller.class.name}Helper") 
    4041      end   
    4142    end 
     
    4647    end 
    4748       
    48     # accessor for the view. refers to the current @controller object 
     49    # accessor for the view. refers to the current @web_controller object 
    4950    def controller 
    50       @controller 
     51      @web_controller 
    5152    end 
    52      
    53     def request 
    54       @controller.request   
    55     end 
    56              
    57     def params 
    58       @controller.params 
    59     end   
    60      
    61     def cookies 
    62       @controller.cookies 
    63     end   
    64  
    65     def headers 
    66       @controller.headers 
    67     end 
    68      
    69     def session 
    70       @controller.session 
    71     end 
    72  
    73     def response 
    74       @controller.response 
    75     end 
    76        
     53   
    7754    alias_method :old_respond_to?, :respond_to? 
    7855     
    7956    def respond_to?(sym, include_private=false) 
    80       old_respond_to?(sym, include_private) || @controller.respond_to?(sym, include_private) || @_merb_partial_locals.key?(sym) 
     57      old_respond_to?(sym, include_private) || @web_controller.respond_to?(sym, include_private) || @_merb_partial_locals.key?(sym) 
    8158    end 
    8259     
     
    8461    # and delegate them back to the controller. 
    8562    def method_missing(sym, *args, &blk) 
    86       if @controller.respond_to? sym 
    87         @controller.send(sym, *args, &blk) 
     63      if @web_controller.respond_to? sym 
     64        @web_controller.send(sym, *args, &blk) 
    8865      elsif @_merb_partial_locals.key? sym 
    8966        @_merb_partial_locals[sym]