From 19c2c1ec655ce3f50288f5360d6384a599984b25 Mon Sep 17 00:00:00 2001 From: James McCarthy Date: Wed, 5 Jan 2011 02:50:46 +0000 Subject: [PATCH] Moved things around some more for abstracting the adapter --- lib/authlogic_facebook_koala.rb | 3 +- lib/authlogic_facebook_koala/session.rb | 12 +++++++ .../session/adapter.rb | 36 +------------------ .../session/adapters/koala_adapter.rb | 35 ++++++++++++++++++ lib/authlogic_facebook_koala/session/base.rb | 10 ------ 5 files changed, 50 insertions(+), 46 deletions(-) create mode 100644 lib/authlogic_facebook_koala/session.rb create mode 100644 lib/authlogic_facebook_koala/session/adapters/koala_adapter.rb delete mode 100644 lib/authlogic_facebook_koala/session/base.rb diff --git a/lib/authlogic_facebook_koala.rb b/lib/authlogic_facebook_koala.rb index 5fa0a54..8bfd060 100644 --- a/lib/authlogic_facebook_koala.rb +++ b/lib/authlogic_facebook_koala.rb @@ -8,7 +8,8 @@ require 'authlogic_facebook_koala/session/config' require 'authlogic_facebook_koala/session/adapter' require 'authlogic_facebook_koala/session/facebook' - require 'authlogic_facebook_koala/session/base' + require 'authlogic_facebook_koala/session' require 'authlogic_facebook_koala/helper' + Authlogic::Session::Base.send :include, AuthlogicFacebookKoala::Session ActiveRecord::Base.send :include, AuthlogicFacebookKoala::ActsAsAuthentic end diff --git a/lib/authlogic_facebook_koala/session.rb b/lib/authlogic_facebook_koala/session.rb new file mode 100644 index 0000000..3da9ef5 --- /dev/null +++ b/lib/authlogic_facebook_koala/session.rb @@ -0,0 +1,12 @@ +module AuthlogicFacebookKoala + module Session + + def self.included(klass) + klass.extend Session::Config + klass.send(:include, Session::Adapter) + klass.send(:include, Session::Facebook) + end + + end +end + \ No newline at end of file diff --git a/lib/authlogic_facebook_koala/session/adapter.rb b/lib/authlogic_facebook_koala/session/adapter.rb index f618758..46d0163 100644 --- a/lib/authlogic_facebook_koala/session/adapter.rb +++ b/lib/authlogic_facebook_koala/session/adapter.rb @@ -1,35 +1 @@ -module AuthlogicFacebookKoala - module Session - module Adapter - - def facebook_session - @facebook_session ||= begin - if controller.cookies.has_key?("fbs_#{facebook_app_id}") - oauth = Koala::Facebook::OAuth.new(facebook_app_id, facebook_secret_key) - if oauth.respond_to?(:get_user_info_from_cookie) - user_info = oauth.get_user_info_from_cookie(controller.cookies) - else - user_info = oauth.get_user_from_cookie(controller.cookies) - end - OpenStruct.new( user_info ) - end - end - end - - def facebook_session? - !facebook_session.nil? - end - - def facebook_user - @facebook_user ||= begin - facebook_graph = Koala::Facebook::GraphAPI.new(facebook_session.access_token) - user = facebook_graph.get_object('me') - user[:uid] = user.delete('id') - OpenStruct.new( user ) - end if facebook_session? - end - - end - end -end - \ No newline at end of file +require File.expand_path('adapters/koala_adapter', File.dirname(__FILE__)) if defined?(Koala) \ No newline at end of file diff --git a/lib/authlogic_facebook_koala/session/adapters/koala_adapter.rb b/lib/authlogic_facebook_koala/session/adapters/koala_adapter.rb new file mode 100644 index 0000000..f618758 --- /dev/null +++ b/lib/authlogic_facebook_koala/session/adapters/koala_adapter.rb @@ -0,0 +1,35 @@ +module AuthlogicFacebookKoala + module Session + module Adapter + + def facebook_session + @facebook_session ||= begin + if controller.cookies.has_key?("fbs_#{facebook_app_id}") + oauth = Koala::Facebook::OAuth.new(facebook_app_id, facebook_secret_key) + if oauth.respond_to?(:get_user_info_from_cookie) + user_info = oauth.get_user_info_from_cookie(controller.cookies) + else + user_info = oauth.get_user_from_cookie(controller.cookies) + end + OpenStruct.new( user_info ) + end + end + end + + def facebook_session? + !facebook_session.nil? + end + + def facebook_user + @facebook_user ||= begin + facebook_graph = Koala::Facebook::GraphAPI.new(facebook_session.access_token) + user = facebook_graph.get_object('me') + user[:uid] = user.delete('id') + OpenStruct.new( user ) + end if facebook_session? + end + + end + end +end + \ No newline at end of file diff --git a/lib/authlogic_facebook_koala/session/base.rb b/lib/authlogic_facebook_koala/session/base.rb deleted file mode 100644 index d9aa74d..0000000 --- a/lib/authlogic_facebook_koala/session/base.rb +++ /dev/null @@ -1,10 +0,0 @@ -module Authlogic - module Session - class Base - extend AuthlogicFacebookKoala::Session::Config - include AuthlogicFacebookKoala::Session::Adapter - include AuthlogicFacebookKoala::Session::Facebook - end - end -end - \ No newline at end of file