Setting cookies from a library?

I thought it would be nice if my login code handled session and cookie management in a Session class, rather than explicitly in the controller. So I made the session class attach itself to the current session:

module Hark   class Session

    def self.get(session, cookiejar)       session[:hark_session] ||= self.new(cookiejar)     end

    def initialize(cookiejar)       @cookiejar = cookiejar     end   end end

Then I call it from my login action:

class HarkController < ApplicationController   def login

    if request.post?
      hs = Hark::Session.get(session, cookies)     ... end

This works beautifully in unit tests, but when I try to run it in webrick, I get an error when it tries to serialize the session; apparently, the CookieJar contains an anonymous class.

Is there some way I can allow my session class to get/set cookies without passing it the CookieJar each time? On the face of it, I'd need to store a "pointer" to the CookieJar# and CookieJar#= functions, without storing the cookiejar itself. But that's not very Rubyish. Ideas?

Jay Levitt