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 +27 -0
- data/VERSION.yml +2 -2
- data/lib/refacebook.rb +8 -33
- data/lib/refacebook/sinatra.rb +14 -4
- metadata +2 -2
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
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
|
-
|
29
|
-
|
30
|
-
|
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
|
-
|
31
|
+
@session_key = params['fb_sig_session_key']
|
48
32
|
|
49
|
-
|
50
|
-
|
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
|
-
|
36
|
+
@profile_update_time = params['fb_sig_profile_update_time']
|
62
37
|
end
|
63
38
|
|
64
39
|
def get_login_url *args
|
data/lib/refacebook/sinatra.rb
CHANGED
@@ -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
|
-
|
34
|
-
|
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
|
-
|
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.
|
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
|