eukaliptus 0.8.4 → 0.8.7
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/README.rdoc +1 -1
- data/lib/eukaliptus/templates/fb_init.erb +54 -0
- data/lib/eukaliptus/version.rb +1 -1
- data/lib/eukaliptus/view_helpers/facebook_helpers.rb +32 -59
- metadata +47 -51
data/README.rdoc
CHANGED
@@ -37,7 +37,7 @@ Your rails application must be using jQuery as it will be the default JS library
|
|
37
37
|
|
38
38
|
Just behind the <body> tag in your application.html.erb write:
|
39
39
|
|
40
|
-
<%=
|
40
|
+
<%= fb_init %>
|
41
41
|
|
42
42
|
This generates the necessary JS code to perform request to Eukaliptus that fixes cookies security problems involved in running iframe applications in Safari and IE6+
|
43
43
|
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<div id="fb-root"></div>
|
2
|
+
<script type="text/javascript">
|
3
|
+
window.fbAsyncInit = function() {
|
4
|
+
FB.init({
|
5
|
+
appId: '<%= Facebook::APP_ID.to_s %>',
|
6
|
+
status: true,
|
7
|
+
cookie: true,
|
8
|
+
xfbml: true
|
9
|
+
});
|
10
|
+
|
11
|
+
FB.Canvas.setAutoResize(100);
|
12
|
+
};
|
13
|
+
|
14
|
+
(function() {
|
15
|
+
var e = document.createElement('script'); e.async = true;
|
16
|
+
e.src = document.location.protocol +
|
17
|
+
'//connect.facebook.net/<%= locale %>/all.js';
|
18
|
+
document.getElementById('fb-root').appendChild(e);
|
19
|
+
}());
|
20
|
+
|
21
|
+
var login = function(targetUrl, perms) {
|
22
|
+
if (perms == null) {
|
23
|
+
perms = "<%= perms %>"
|
24
|
+
}
|
25
|
+
FB.login(function(response) {
|
26
|
+
if (response.session) {
|
27
|
+
fixSession(JSON.stringify(response.session), targetUrl);
|
28
|
+
} else {
|
29
|
+
//pending to do when not logged in
|
30
|
+
}
|
31
|
+
}, {perms: perms});
|
32
|
+
}
|
33
|
+
|
34
|
+
var fixSession = function(fbSession, targetUrl) {
|
35
|
+
$("body").prepend('<form id="fixSession"></form>');
|
36
|
+
|
37
|
+
var f = $('form')[0];
|
38
|
+
f.method = 'POST';
|
39
|
+
f.action = "/cookie_fix";
|
40
|
+
var m = document.createElement('input');
|
41
|
+
m.setAttribute('type', 'hidden');
|
42
|
+
m.setAttribute('name', '_session_id');
|
43
|
+
m.setAttribute('value', fbSession);
|
44
|
+
f.appendChild(m);
|
45
|
+
|
46
|
+
m = document.createElement('input');
|
47
|
+
m.setAttribute('type', 'hidden');
|
48
|
+
m.setAttribute('name', 'redirect_to');
|
49
|
+
m.setAttribute('value', targetUrl);
|
50
|
+
f.appendChild(m);
|
51
|
+
|
52
|
+
f.submit();
|
53
|
+
}
|
54
|
+
</script>
|
data/lib/eukaliptus/version.rb
CHANGED
@@ -1,74 +1,47 @@
|
|
1
1
|
module Eukaliptus
|
2
2
|
module FacebookHelpers
|
3
|
+
#Deprecated
|
4
|
+
def fb_login(perms = %w{email publish_stream})
|
5
|
+
raise 'fb_login is a deprecated method. Please use use fb_init instead.'
|
6
|
+
end
|
7
|
+
|
3
8
|
# Renders the HTML + JS that enables the app to log in to Facebook using
|
4
9
|
# the Javascript method.
|
5
10
|
#
|
6
11
|
# Accepts the permissions that your application needs to work.
|
12
|
+
# Use the second parameter to inject some JS that will be executed in fbAsyncInit.
|
7
13
|
#
|
8
|
-
# Use it one time in your layout header or
|
14
|
+
# Use it one time in your layout header for all pages, or add it to individual templates
|
9
15
|
# to ask the user for different permissions depending on the context, page, etc.
|
10
|
-
def
|
11
|
-
|
12
|
-
|
13
|
-
<script type="text/javascript">
|
14
|
-
window.fbAsyncInit = function() {
|
15
|
-
FB.init({
|
16
|
-
appId: '#{Facebook::APP_ID.to_s}',
|
17
|
-
status: true,
|
18
|
-
cookie: true,
|
19
|
-
xfbml: true
|
20
|
-
});
|
21
|
-
|
22
|
-
FB.Canvas.setAutoResize(100);
|
23
|
-
};
|
24
|
-
|
25
|
-
(function() {
|
26
|
-
var e = document.createElement('script'); e.async = true;
|
27
|
-
e.src = document.location.protocol +
|
28
|
-
'//connect.facebook.net/es_ES/all.js';
|
29
|
-
document.getElementById('fb-root').appendChild(e);
|
30
|
-
}());
|
31
|
-
|
32
|
-
var login = function(targetUrl, perms) {
|
33
|
-
if (perms == null) {
|
34
|
-
perms = "#{perms.join(',')}"
|
35
|
-
}
|
36
|
-
FB.login(function(response) {
|
37
|
-
if (response.session) {
|
38
|
-
fixSession(JSON.stringify(response.session), targetUrl);
|
39
|
-
} else {
|
40
|
-
//pending to do when not logged in
|
41
|
-
}
|
42
|
-
}, {perms: perms});
|
43
|
-
}
|
44
|
-
|
16
|
+
def fb_init(options = {})
|
17
|
+
perms = (options[:perms] || %w{email publish_stream}).join(",")
|
18
|
+
locale = options[:locale] || "en_US"
|
45
19
|
|
46
|
-
|
47
|
-
|
48
|
-
$("body").prepend('<form id="fixSession"></form>');
|
49
|
-
|
50
|
-
var f = $('form')[0];
|
51
|
-
f.method = 'POST';
|
52
|
-
f.action = "/cookie_fix";
|
53
|
-
var m = document.createElement('input');
|
54
|
-
m.setAttribute('type', 'hidden');
|
55
|
-
m.setAttribute('name', '_session_id');
|
56
|
-
m.setAttribute('value', fbSession);
|
57
|
-
f.appendChild(m);
|
58
|
-
|
59
|
-
m = document.createElement('input');
|
60
|
-
m.setAttribute('type', 'hidden');
|
61
|
-
m.setAttribute('name', 'redirect_to');
|
62
|
-
m.setAttribute('value', targetUrl);
|
63
|
-
f.appendChild(m);
|
64
|
-
|
65
|
-
f.submit();
|
66
|
-
}
|
67
|
-
</script>
|
68
|
-
DATA
|
20
|
+
template = Erubis::Eruby.new File.new(File.dirname(__FILE__) + "/../templates/fb_init.erb").read
|
21
|
+
js = template.result(:perms => perms, :locale => locale)
|
69
22
|
|
70
23
|
js.html_safe
|
71
24
|
end
|
25
|
+
|
26
|
+
def with_fb(script = nil, &script_block)
|
27
|
+
code = script_block.try(:call) || script || ""
|
28
|
+
scriptlet = <<-DATA
|
29
|
+
<script>
|
30
|
+
(function() {
|
31
|
+
var oldFBInit = window.fbAsyncInit;
|
32
|
+
var fn = function() {
|
33
|
+
if (typeof(oldFBInit) === "function") {
|
34
|
+
oldFBInit();
|
35
|
+
}
|
36
|
+
#{code}
|
37
|
+
}
|
38
|
+
|
39
|
+
typeof(FB) !== "undefined" ? fn() : (window.fbAsyncInit = fn);
|
40
|
+
}())
|
41
|
+
</script>
|
42
|
+
DATA
|
43
|
+
scriptlet.html_safe
|
44
|
+
end
|
72
45
|
|
73
46
|
# Function to create a new FB.ui dialog link
|
74
47
|
def fb_ui(name, options ={})
|
metadata
CHANGED
@@ -1,62 +1,59 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: eukaliptus
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.8.7
|
4
5
|
prerelease:
|
5
|
-
version: 0.8.4
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- season
|
9
9
|
- victorcoder
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
|
14
|
-
date: 2011-06-20 00:00:00 +02:00
|
13
|
+
date: 2011-06-25 00:00:00.000000000 +02:00
|
15
14
|
default_executable:
|
16
|
-
dependencies:
|
17
|
-
- !ruby/object:Gem::Dependency
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
18
17
|
name: koala
|
19
|
-
|
20
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
18
|
+
requirement: &2156881700 !ruby/object:Gem::Requirement
|
21
19
|
none: false
|
22
|
-
requirements:
|
20
|
+
requirements:
|
23
21
|
- - ~>
|
24
|
-
- !ruby/object:Gem::Version
|
22
|
+
- !ruby/object:Gem::Version
|
25
23
|
version: 1.0.0
|
26
24
|
type: :runtime
|
27
|
-
version_requirements: *id001
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: minitest
|
30
25
|
prerelease: false
|
31
|
-
|
26
|
+
version_requirements: *2156881700
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
29
|
+
requirement: &2156881280 !ruby/object:Gem::Requirement
|
32
30
|
none: false
|
33
|
-
requirements:
|
34
|
-
- -
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version:
|
31
|
+
requirements:
|
32
|
+
- - ! '>='
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
37
35
|
type: :development
|
38
|
-
version_requirements: *id002
|
39
|
-
- !ruby/object:Gem::Dependency
|
40
|
-
name: rack-test
|
41
36
|
prerelease: false
|
42
|
-
|
37
|
+
version_requirements: *2156881280
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: rack-test
|
40
|
+
requirement: &2156880800 !ruby/object:Gem::Requirement
|
43
41
|
none: false
|
44
|
-
requirements:
|
45
|
-
- -
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version:
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
48
46
|
type: :development
|
49
|
-
|
50
|
-
|
51
|
-
|
47
|
+
prerelease: false
|
48
|
+
version_requirements: *2156880800
|
49
|
+
description: Eukaliptus is a set of helpers and bug fixes for browsers to help you
|
50
|
+
build Facebook iframe applications or user fan tabs.
|
51
|
+
email:
|
52
52
|
- victorcoder@gmail.com
|
53
53
|
executables: []
|
54
|
-
|
55
54
|
extensions: []
|
56
|
-
|
57
55
|
extra_rdoc_files: []
|
58
|
-
|
59
|
-
files:
|
56
|
+
files:
|
60
57
|
- .gitignore
|
61
58
|
- Gemfile
|
62
59
|
- LICENSE.txt
|
@@ -68,6 +65,7 @@ files:
|
|
68
65
|
- lib/eukaliptus/middleware.rb
|
69
66
|
- lib/eukaliptus/railtie.rb
|
70
67
|
- lib/eukaliptus/request.rb
|
68
|
+
- lib/eukaliptus/templates/fb_init.erb
|
71
69
|
- lib/eukaliptus/version.rb
|
72
70
|
- lib/eukaliptus/view_helpers/facebook_helpers.rb
|
73
71
|
- lib/generators/eukaliptus/config_generator.rb
|
@@ -78,33 +76,31 @@ files:
|
|
78
76
|
- test/view_helpers/facebook_helpers_test.rb
|
79
77
|
has_rdoc: true
|
80
78
|
homepage: http://github.com/seasonlabs/eukaliptus
|
81
|
-
licenses:
|
79
|
+
licenses:
|
82
80
|
- MIT
|
83
81
|
post_install_message:
|
84
82
|
rdoc_options: []
|
85
|
-
|
86
|
-
require_paths:
|
83
|
+
require_paths:
|
87
84
|
- lib
|
88
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
85
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
89
86
|
none: false
|
90
|
-
requirements:
|
91
|
-
- -
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version:
|
94
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ! '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
92
|
none: false
|
96
|
-
requirements:
|
97
|
-
- -
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
version:
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
100
97
|
requirements: []
|
101
|
-
|
102
98
|
rubyforge_project: eukaliptus
|
103
|
-
rubygems_version: 1.6.
|
99
|
+
rubygems_version: 1.6.2
|
104
100
|
signing_key:
|
105
101
|
specification_version: 3
|
106
102
|
summary: Eukaliptus Facebook API Helpers
|
107
|
-
test_files:
|
103
|
+
test_files:
|
108
104
|
- test/middleware_test.rb
|
109
105
|
- test/test_helper.rb
|
110
106
|
- test/view_helpers/facebook_helpers_test.rb
|