Changeset 1325

Show
Ignore:
Timestamp:
01/26/08 16:52:40 (8 months ago)
Author:
e.@brainspl.at
Message:

add Merb::Cookies class to manage cookies. Allows setting cookies via cookies[:foo] = 'bar', closes #484 [dbalmain@gmail.com]

Files:

Legend:

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

    r1298 r1325  
    4646  autoload :ControllerExceptions,   'merb/exceptions' 
    4747  autoload :ControllerMixin,        'merb/mixins/controller' 
     48  autoload :Cookies,                'merb/cookies' 
    4849  autoload :Dispatcher,             'merb/dispatcher' 
    4950  autoload :DrbServiceProvider,     'drb_server' 
  • trunk/lib/merb/controller.rb

    r1228 r1325  
    139139     
    140140    def cookies 
    141       request.cookies 
     141      @_cookies ||= Cookies.new(request.cookies, @_headers) 
    142142    end 
    143143     
  • trunk/lib/merb/mixins/controller.rb

    r1283 r1325  
    141141    # 
    142142    def set_cookie(name, value, expires) 
    143       (headers['Set-Cookie'] ||='') << (Merb::Const::SET_COOKIE % [ 
     143      (headers['Set-Cookie'] ||=[]) << (Merb::Const::SET_COOKIE % [ 
    144144        name.to_s,  
    145145        escape(value.to_s),  
  • trunk/spec/merb/controller_filters_spec.rb

    r1051 r1325  
    159159  it "should be able to see instance variables" do 
    160160    call_filter_action "one" 
    161     @c.cookies.should be_is_a(Hash)  
     161    @c.cookies.should be_is_a(Merb::Cookies)  
    162162    @c.session.data.should == {} 
    163163    @c.response.read.should == "" 
  • trunk/spec/merb/cookie_store_spec.rb

    r1228 r1325  
    2525    c = new_controller( 'change', TestCookieSessionController) 
    2626    c.dispatch(:change) 
    27     c.headers['Set-Cookie'].should =~ %r{_session_id=} # this could be better 
     27    c.headers['Set-Cookie'].each {|c| c.should =~ %r{_session_id=} }# this could be better 
    2828  end 
    2929end 
  • trunk/spec/merb/render_spec.rb

    r1320 r1325  
    418418    c = new_spec_controller(:format => 'json', :controller => 'RenderHashObjectController') 
    419419    c.dispatch(:render_object) 
    420     c.body.should == "{\"foo\": \"bar\", \"baz\": \"quuz\"}" 
     420    c.body.should == "{\"baz\": \"quuz\", \"foo\": \"bar\"}" 
    421421  end 
    422422   
     
    424424    c = new_spec_controller(:format => 'xml', :controller => 'RenderHashObjectController') 
    425425    c.dispatch(:render_object) 
    426     c.body.should == "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<hash>\n  <foo>bar</foo>\n  <baz>quuz</baz>\n</hash>\n" 
     426    c.body.should == "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<hash>\n  <baz>quuz</baz>\n  <foo>bar</foo>\n</hash>\n" 
    427427  end 
    428428