abhiyerra-refacebook 0.3.3 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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