Module: RFacebook::Rails::SessionExtensions

Defined in:
lib/rfacebook_on_rails/session_extensions.rb

Overview

:nodoc:

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object

:section: Extension Helpers



76
77
78
79
80
81
82
83
84
# File 'lib/rfacebook_on_rails/session_extensions.rb', line 76

def self.included(base) # :nodoc:
  base.class_eval'
    alias :initialize__ALIASED :initialize
    alias :initialize :initialize__RFACEBOOK
    
    alias :new_session__ALIASED :new_session
    alias :new_session :new_session__RFACEBOOK
  '
end

Instance Method Details

#force_to_be_new!Object

:section: New Methods



36
37
38
# File 'lib/rfacebook_on_rails/session_extensions.rb', line 36

def force_to_be_new! # :nodoc:
  @force_to_be_new = true
end

#initialize__RFACEBOOK(request, options = {}) ⇒ Object

:nodoc:



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/rfacebook_on_rails/session_extensions.rb', line 54

def initialize__RFACEBOOK(request, options = {}) # :nodoc:
  
  # only try to use the sig when we don't have a cookie (i.e., in the canvas)
  if in_facebook_canvas?(request)
    
    # try a few different ways
    RAILS_DEFAULT_LOGGER.debug "** RFACEBOOK INFO: Attempting to use fb_sig_session_key as a session key, since we are inside the canvas"
    @fb_sig_session_id = lookup_request_parameter(request, "fb_sig_session_key")
    
    # we only want to change the session_id if we got one from the fb_sig
    if @fb_sig_session_id
      options["session_id"] = Digest::MD5.hexdigest(@fb_sig_session_id)
      RAILS_DEFAULT_LOGGER.debug "** RFACEBOOK INFO: using MD5 of fb_sig_session_key [#{options['session_id']}] for the Rails session id"
    end
  end
  
  # now call the default Rails session initialization
  initialize__ALIASED(request, options)
end

#new_session__RFACEBOOKObject

:section: Base Overrides



46
47
48
49
50
51
52
# File 'lib/rfacebook_on_rails/session_extensions.rb', line 46

def new_session__RFACEBOOK # :nodoc:
  if @force_to_be_new
    return true
  else
    return new_session__ALIASED
  end
end

#using_facebook_session_id?Boolean

:nodoc:

Returns:

  • (Boolean)


40
41
42
# File 'lib/rfacebook_on_rails/session_extensions.rb', line 40

def using_facebook_session_id? # :nodoc:
  return (@fb_sig_session_id != nil)
end