Rails 3 - Zaloguj się do innej witryny i zachowuj plik cookie w sesji

Przygotowuję małą aplikację, która pozwoli użytkownikowi zalogować się do pół-popularnego serwisu społecznościowego, który nie ma wystarczającego API, więc używam gemu mechanizującego do zautomatyzowania kilku funkcji, które chciałem dodać nikogo do korzystania, na przykład wiadomości masowe.

Ze względu na ograniczenia API jestem zmuszony to zrobić, udając, że jestem użytkownikiem interakcji z interfejsem http witryny.

Mam problem, gdy użytkownik zaloguje się do mojej witryny, jak mogę zachować plik cookie z witryny społecznościowej w sesji, aby nie musieli wprowadzać poświadczeń przy każdym załadowaniu strony?

Próbowałem zebrać plik cookie z instancji mechanizującej, ale otrzymałem błędy dotyczące mutexów bez metody Marshal.

EDIT - rozwiązany

Okazało się być dość proste, ale dokumentacja na pewno nie pomogła w tej sprawie, tylko z powodu niekompletności.

Oto, co zrobiłem, aby złapać pliki cookie i przywrócić je do przyszłych żądań (wiele między kodowaniem i sprawdzaniem błędów wykluczonych ze względu na zwięzłość):

users_controller.rb

def create
  session.delete(:agent) if session[:agent]
  agent = Mechanize.new
  page = agent.get('www.socialnetwork.com/login')
  login_form = page.form
  login_form.email = params[:login][:email]
  login_form.password = params[:login][:password]
  page = agent.submit(login_form, login_form.buttons.first)
  cookies = agent.cookie_jar.store.map {|i| i}
  session[:agent] = Marshal.dump cookies
  redirect_to root_path
end

application_controller.rb

before_filter :set_agent
def set_agent
  if session[:agent]
    @agent = Mechanize.new
    cookies = Marshal.load session[:agent]
    cookies.each {|i| @agent.cookie_jar.store.add i}
  end
end

questionAnswers(1)

yourAnswerToTheQuestion