abhiyerra-refacebook 0.3.3 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Rakefile CHANGED
@@ -12,6 +12,7 @@ begin
12
12
  gemspec.homepage = "http://github.com/abhiyerra/refacebook"
13
13
  gemspec.description = "ReFacebook is a facebook library and Sinatra extension."
14
14
  gemspec.authors = ["Abhi Yerra"]
15
+ gemspec.rubyforge_project = "refacebook"
15
16
 
16
17
  if defined?(JRUBY_VERSION)
17
18
  gemspec.add_dependency("json-jruby", [">= 1.1.3"])
@@ -25,4 +26,30 @@ rescue LoadError
25
26
  puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
26
27
  end
27
28
 
29
+ begin
30
+ require 'rake/contrib/sshpublisher'
31
+ namespace :rubyforge do
32
+
33
+ desc "Release gem and RDoc documentation to RubyForge"
34
+ task :release => ["rubyforge:release:gem", "rubyforge:release:docs"]
35
+
36
+ namespace :release do
37
+ desc "Publish RDoc to RubyForge."
38
+ task :docs => [:rdoc] do
39
+ config = YAML.load(
40
+ File.read(File.expand_path('~/.rubyforge/user-config.yml'))
41
+ )
42
+
43
+ host = "#{config['username']}@rubyforge.org"
44
+ remote_dir = "/var/www/gforge-projects/the-perfect-gem/"
45
+ local_dir = 'rdoc'
46
+
47
+ Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
48
+ end
49
+ end
50
+ end
51
+ rescue LoadError
52
+ puts "Rake SshDirPublisher is unavailable or your rubyforge environment is not configured."
53
+ end
54
+
28
55
  # vim: syntax=Ruby
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :minor: 3
2
+ :minor: 4
3
3
  :major: 0
4
- :patch: 3
4
+ :patch: 0
data/lib/refacebook.rb CHANGED
@@ -3,9 +3,8 @@ require 'uri'
3
3
  require 'md5'
4
4
  require 'json'
5
5
 
6
+ # ReFacebook the main store for a facebook session.
6
7
  module ReFacebook
7
- VERSION = "0.3.2"
8
-
9
8
  APIRestServer = "http://api.facebook.com/restserver.php"
10
9
  LoginUrl = "http://www.facebook.com/login.php"
11
10
 
@@ -25,40 +24,16 @@ module ReFacebook
25
24
  end
26
25
  end
27
26
 
28
- # FIXME: Currently the store is relying on the idea that we have a memcache
29
- # store. Abstract this so that it uses rack/session/abstract/id.
30
- def self.create api_key, secret, params, *args
31
- store = args[0][:store]
32
- unless store
33
- # TODO: Exception or error.
34
- end
35
-
36
- session = nil
37
-
38
- if params['fb_sig_session_key']
39
- # TODO: Maybe we can only reset the items that need to be reset,
40
- # since I doubt that all of these change all the time.
41
- session = store.get(params['fb_sig_session_key'])
42
- session = new(api_key, secret) if session.nil?
43
-
44
- session.user = params['fb_sig_user']
45
- session.friends = params['fb_sig_friends'].split(',')
27
+ def update_session_params params
28
+ @user = params['fb_sig_user']
29
+ @friends = params['fb_sig_friends'].split(',')
46
30
 
47
- session.session_key = params['fb_sig_session_key']
31
+ @session_key = params['fb_sig_session_key']
48
32
 
49
- session.expires = params['fb_sig_expires']
50
- session.time = params['fb_sig_time']
51
-
52
- session.profile_update_time = params['fb_sig_profile_update_time']
53
-
54
- expiry = session.expires.to_i - session.time.to_i
55
- store.set(params['fb_sig_session_key'], session, expiry)
56
- else
57
- # Just return a session, even if it's not a lasting session.
58
- session = new(api_key, secret)
59
- end
33
+ @expires = params['fb_sig_expires']
34
+ @time = params['fb_sig_time']
60
35
 
61
- session
36
+ @profile_update_time = params['fb_sig_profile_update_time']
62
37
  end
63
38
 
64
39
  def get_login_url *args
@@ -1,5 +1,4 @@
1
1
  require 'sinatra/base'
2
- require 'rack'
3
2
  require 'refacebook'
4
3
 
5
4
  module Sinatra
@@ -30,10 +29,21 @@ module Sinatra
30
29
  before do
31
30
  # Passes the request to the correct request method since canvas requests
32
31
  # come in as POSTs.
33
- request.env['REQUEST_METHOD'] = 'GET' if params["fb_sig_in_canvas"].eql? "1" \
34
- and params["fb_sig_request_method"].eql? "GET"
32
+ if params["fb_sig_in_canvas"].eql? "1" and params["fb_sig_request_method"].eql? "GET"
33
+ request.env['REQUEST_METHOD'] = 'GET'
34
+ end
35
+
36
+ if params['fb_sig_session_key']
37
+ @fbsession = settings[:store].get(params['fb_sig_session_key'])
38
+ @fbsession = ReFacebook::Session.new(settings[:api_key], settings[:secret_key]) unless @fbsession
39
+ @fbsession.update_session_params(params)
35
40
 
36
- @fbsession = ReFacebook::Session.create(settings[:api_key], settings[:secret_key], params, :store => settings[:store])
41
+ expiry = @fbsession.expires.to_i - @fbsession.time.to_i
42
+ settings[:store].set(params['fb_sig_session_key'], @fbsession, expiry)
43
+ else
44
+ # Just return a session, even if it's not a lasting session.
45
+ @fbsession = ReFacebook::Session.new(settings[:api_key], settings[:secret_key])
46
+ end
37
47
 
38
48
  if settings[:require_login] and !params['fb_sig_session_key']
39
49
  fbml_redirect(@fbsession.get_login_url(:next => link_from_canvas(request.fullpath),
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: abhiyerra-refacebook
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abhi Yerra
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
72
  version:
73
73
  requirements: []
74
74
 
75
- rubyforge_project:
75
+ rubyforge_project: refacebook
76
76
  rubygems_version: 1.2.0
77
77
  signing_key:
78
78
  specification_version: 2