facebooker 1.0.29 → 1.0.30
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/.autotest +15 -0
- data/Manifest.txt +129 -0
- data/Rakefile +2 -3
- data/examples/desktop_login.rb +14 -0
- data/facebooker.gemspec +43 -0
- data/lib/facebooker.rb +41 -39
- data/lib/facebooker/adapters/adapter_base.rb +3 -2
- data/lib/facebooker/adapters/bebo_adapter.rb +6 -4
- data/lib/facebooker/batch_request.rb +11 -10
- data/lib/facebooker/logging.rb +6 -13
- data/lib/facebooker/mobile.rb +2 -2
- data/lib/facebooker/model.rb +15 -13
- data/lib/facebooker/models/applicationproperties.rb +1 -1
- data/lib/facebooker/models/applicationrestrictions.rb +3 -3
- data/lib/facebooker/models/event.rb +2 -2
- data/lib/facebooker/models/friend_list.rb +2 -2
- data/lib/facebooker/models/group.rb +4 -4
- data/lib/facebooker/models/page.rb +3 -2
- data/lib/facebooker/models/photo.rb +2 -2
- data/lib/facebooker/models/user.rb +13 -5
- data/lib/facebooker/models/work_info.rb +3 -2
- data/lib/facebooker/rails/controller.rb +6 -1
- data/lib/facebooker/rails/facebook_request_fix.rb +12 -8
- data/lib/facebooker/rails/facebook_session_handling.rb +1 -2
- data/lib/facebooker/rails/facebook_url_rewriting.rb +14 -11
- data/lib/facebooker/rails/helpers.rb +4 -3
- data/lib/facebooker/rails/helpers/fb_connect.rb +8 -2
- data/lib/facebooker/rails/publisher.rb +36 -30
- data/lib/facebooker/session.rb +81 -73
- data/lib/facebooker/version.rb +1 -1
- data/test/facebooker/adapters_test.rb +23 -23
- data/test/facebooker/model_test.rb +10 -0
- data/test/facebooker/rails/publisher_test.rb +97 -88
- data/test/facebooker/rails_integration_test.rb +44 -43
- data/test/facebooker/session_test.rb +5 -5
- data/test/rack/facebook_test.rb +2 -3
- data/test/rails_test_helper.rb +14 -0
- data/test/test_helper.rb +5 -4
- metadata +31 -17
data/.autotest
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
Autotest.add_hook(:initialize) do |at|
|
2
|
+
at.clear_mappings
|
3
|
+
at.find_directories = %w(lib test)
|
4
|
+
|
5
|
+
at.add_exception("test/test_helper.rb")
|
6
|
+
at.add_exception("test/rails_test_helper.rb")
|
7
|
+
|
8
|
+
at.add_mapping(/^lib\/.*\.rb$/) do |file, _|
|
9
|
+
at.files_matching(/^test\/.*_test\.rb$/)
|
10
|
+
end
|
11
|
+
|
12
|
+
at.add_mapping(/^test\/.*_test\.rb$/) do |file, _|
|
13
|
+
file
|
14
|
+
end
|
15
|
+
end
|
data/Manifest.txt
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
.autotest
|
2
|
+
CHANGELOG.rdoc
|
3
|
+
COPYING.rdoc
|
4
|
+
Manifest.txt
|
5
|
+
README.rdoc
|
6
|
+
Rakefile
|
7
|
+
TODO.rdoc
|
8
|
+
examples/desktop_login.rb
|
9
|
+
facebooker.gemspec
|
10
|
+
generators/facebook/facebook_generator.rb
|
11
|
+
generators/facebook/templates/config/facebooker.yml
|
12
|
+
generators/facebook/templates/public/javascripts/facebooker.js
|
13
|
+
generators/facebook_controller/USAGE
|
14
|
+
generators/facebook_controller/facebook_controller_generator.rb
|
15
|
+
generators/facebook_controller/templates/controller.rb
|
16
|
+
generators/facebook_controller/templates/functional_test.rb
|
17
|
+
generators/facebook_controller/templates/helper.rb
|
18
|
+
generators/facebook_controller/templates/view.fbml.erb
|
19
|
+
generators/facebook_controller/templates/view.html.erb
|
20
|
+
generators/facebook_publisher/facebook_publisher_generator.rb
|
21
|
+
generators/facebook_publisher/templates/create_facebook_templates.rb
|
22
|
+
generators/facebook_publisher/templates/publisher.rb
|
23
|
+
generators/facebook_scaffold/USAGE
|
24
|
+
generators/facebook_scaffold/facebook_scaffold_generator.rb
|
25
|
+
generators/facebook_scaffold/templates/controller.rb
|
26
|
+
generators/facebook_scaffold/templates/facebook_style.css
|
27
|
+
generators/facebook_scaffold/templates/functional_test.rb
|
28
|
+
generators/facebook_scaffold/templates/helper.rb
|
29
|
+
generators/facebook_scaffold/templates/layout.fbml.erb
|
30
|
+
generators/facebook_scaffold/templates/layout.html.erb
|
31
|
+
generators/facebook_scaffold/templates/style.css
|
32
|
+
generators/facebook_scaffold/templates/view_edit.fbml.erb
|
33
|
+
generators/facebook_scaffold/templates/view_edit.html.erb
|
34
|
+
generators/facebook_scaffold/templates/view_index.fbml.erb
|
35
|
+
generators/facebook_scaffold/templates/view_index.html.erb
|
36
|
+
generators/facebook_scaffold/templates/view_new.fbml.erb
|
37
|
+
generators/facebook_scaffold/templates/view_new.html.erb
|
38
|
+
generators/facebook_scaffold/templates/view_show.fbml.erb
|
39
|
+
generators/facebook_scaffold/templates/view_show.html.erb
|
40
|
+
generators/publisher/publisher_generator.rb
|
41
|
+
generators/xd_receiver/templates/xd_receiver.html
|
42
|
+
generators/xd_receiver/xd_receiver_generator.rb
|
43
|
+
init.rb
|
44
|
+
install.rb
|
45
|
+
lib/facebooker.rb
|
46
|
+
lib/facebooker/adapters/adapter_base.rb
|
47
|
+
lib/facebooker/adapters/bebo_adapter.rb
|
48
|
+
lib/facebooker/adapters/facebook_adapter.rb
|
49
|
+
lib/facebooker/admin.rb
|
50
|
+
lib/facebooker/batch_request.rb
|
51
|
+
lib/facebooker/data.rb
|
52
|
+
lib/facebooker/feed.rb
|
53
|
+
lib/facebooker/logging.rb
|
54
|
+
lib/facebooker/mobile.rb
|
55
|
+
lib/facebooker/mock/service.rb
|
56
|
+
lib/facebooker/mock/session.rb
|
57
|
+
lib/facebooker/model.rb
|
58
|
+
lib/facebooker/models/affiliation.rb
|
59
|
+
lib/facebooker/models/album.rb
|
60
|
+
lib/facebooker/models/applicationproperties.rb
|
61
|
+
lib/facebooker/models/applicationrestrictions.rb
|
62
|
+
lib/facebooker/models/cookie.rb
|
63
|
+
lib/facebooker/models/education_info.rb
|
64
|
+
lib/facebooker/models/event.rb
|
65
|
+
lib/facebooker/models/friend_list.rb
|
66
|
+
lib/facebooker/models/group.rb
|
67
|
+
lib/facebooker/models/info_item.rb
|
68
|
+
lib/facebooker/models/info_section.rb
|
69
|
+
lib/facebooker/models/location.rb
|
70
|
+
lib/facebooker/models/notifications.rb
|
71
|
+
lib/facebooker/models/page.rb
|
72
|
+
lib/facebooker/models/photo.rb
|
73
|
+
lib/facebooker/models/tag.rb
|
74
|
+
lib/facebooker/models/user.rb
|
75
|
+
lib/facebooker/models/video.rb
|
76
|
+
lib/facebooker/models/work_info.rb
|
77
|
+
lib/facebooker/parser.rb
|
78
|
+
lib/facebooker/rails/controller.rb
|
79
|
+
lib/facebooker/rails/cucumber.rb
|
80
|
+
lib/facebooker/rails/cucumber/world.rb
|
81
|
+
lib/facebooker/rails/extensions/action_controller.rb
|
82
|
+
lib/facebooker/rails/extensions/rack_setup.rb
|
83
|
+
lib/facebooker/rails/extensions/routing.rb
|
84
|
+
lib/facebooker/rails/facebook_form_builder.rb
|
85
|
+
lib/facebooker/rails/facebook_pretty_errors.rb
|
86
|
+
lib/facebooker/rails/facebook_request_fix.rb
|
87
|
+
lib/facebooker/rails/facebook_session_handling.rb
|
88
|
+
lib/facebooker/rails/facebook_url_helper.rb
|
89
|
+
lib/facebooker/rails/facebook_url_rewriting.rb
|
90
|
+
lib/facebooker/rails/helpers.rb
|
91
|
+
lib/facebooker/rails/helpers/fb_connect.rb
|
92
|
+
lib/facebooker/rails/integration_session.rb
|
93
|
+
lib/facebooker/rails/profile_publisher_extensions.rb
|
94
|
+
lib/facebooker/rails/publisher.rb
|
95
|
+
lib/facebooker/rails/routing.rb
|
96
|
+
lib/facebooker/rails/test_helpers.rb
|
97
|
+
lib/facebooker/rails/utilities.rb
|
98
|
+
lib/facebooker/server_cache.rb
|
99
|
+
lib/facebooker/service.rb
|
100
|
+
lib/facebooker/session.rb
|
101
|
+
lib/facebooker/version.rb
|
102
|
+
lib/net/http_multipart_post.rb
|
103
|
+
lib/rack/facebook.rb
|
104
|
+
lib/tasks/facebooker.rake
|
105
|
+
lib/tasks/tunnel.rake
|
106
|
+
rails/init.rb
|
107
|
+
setup.rb
|
108
|
+
templates/layout.erb
|
109
|
+
test/facebooker/adapters_test.rb
|
110
|
+
test/facebooker/admin_test.rb
|
111
|
+
test/facebooker/batch_request_test.rb
|
112
|
+
test/facebooker/data_test.rb
|
113
|
+
test/facebooker/logging_test.rb
|
114
|
+
test/facebooker/mobile_test.rb
|
115
|
+
test/facebooker/model_test.rb
|
116
|
+
test/facebooker/models/event_test.rb
|
117
|
+
test/facebooker/models/user_test.rb
|
118
|
+
test/facebooker/rails/publisher_test.rb
|
119
|
+
test/facebooker/rails_integration_test.rb
|
120
|
+
test/facebooker/server_cache_test.rb
|
121
|
+
test/facebooker/session_test.rb
|
122
|
+
test/facebooker_test.rb
|
123
|
+
test/fixtures/multipart_post_body_with_only_parameters.txt
|
124
|
+
test/fixtures/multipart_post_body_with_single_file.txt
|
125
|
+
test/fixtures/multipart_post_body_with_single_file_that_has_nil_key.txt
|
126
|
+
test/net/http_multipart_post_test.rb
|
127
|
+
test/rack/facebook_test.rb
|
128
|
+
test/rails_test_helper.rb
|
129
|
+
test/test_helper.rb
|
data/Rakefile
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# -*- ruby -*-
|
2
2
|
#
|
3
3
|
require 'rubygems'
|
4
|
-
ENV['RUBY_FLAGS']="-I#{%w(lib ext bin test).join(File::PATH_SEPARATOR)}"
|
5
4
|
require 'hoe'
|
6
5
|
begin
|
7
6
|
require 'load_multi_rails_rake_tasks'
|
@@ -20,13 +19,13 @@ HOE = Hoe.new('facebooker', Facebooker::VERSION::STRING) do |p|
|
|
20
19
|
p.history_file = 'CHANGELOG.rdoc'
|
21
20
|
p.remote_rdoc_dir = '' # Release to root
|
22
21
|
p.test_globs = 'test/**/*_test.rb'
|
23
|
-
p.extra_deps << ['json', '>= 1.0.0']
|
22
|
+
p.extra_deps << ['json', '>= 1.0.0']
|
24
23
|
p.extra_rdoc_files = FileList['*.rdoc']
|
25
24
|
end
|
26
25
|
|
27
26
|
require 'rcov/rcovtask'
|
28
27
|
|
29
|
-
namespace :test do
|
28
|
+
namespace :test do
|
30
29
|
namespace :coverage do
|
31
30
|
desc "Delete aggregate coverage data."
|
32
31
|
task(:clean) { rm_f "coverage.data" }
|
@@ -0,0 +1,14 @@
|
|
1
|
+
$: << File.join(File.dirname(__FILE__), "..", 'lib')
|
2
|
+
require 'facebooker'
|
3
|
+
load "~/.facebooker" rescue fail("You'll need to specify API_KEY and SECRET_KEY to run this example. One way to do that would be to put them in ~/.facebooker")
|
4
|
+
session = Facebooker::Session::Desktop.create(API_KEY, SECRET_KEY)
|
5
|
+
puts session.login_url
|
6
|
+
gets
|
7
|
+
|
8
|
+
session.user.friends!.each do |user|
|
9
|
+
puts "#{user.id}:#{user.name}"
|
10
|
+
end
|
11
|
+
# This time all the data is there because friends! has already retrieved it.
|
12
|
+
session.user.friends.each do |user|
|
13
|
+
puts "#{user.id}:#{user.name}"
|
14
|
+
end
|
data/facebooker.gemspec
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{facebooker}
|
5
|
+
s.version = "1.0.30"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Chad Fowler", "Patrick Ewing", "Mike Mangino", "Shane Vitarana", "Corey Innis"]
|
9
|
+
s.date = %q{2009-04-29}
|
10
|
+
s.description = %q{Facebooker is a Ruby wrapper over the Facebook[http://facebook.com] {REST API}[http://wiki.developers.facebook.com/index.php/API]. Its goals are:
|
11
|
+
|
12
|
+
* Idiomatic Ruby
|
13
|
+
* No dependencies outside of the Ruby standard library (This is true with Rails 2.1. Previous Rails versions require the JSON gem)
|
14
|
+
* Concrete classes and methods modeling the Facebook data, so it's easy for a Rubyist to understand what's available
|
15
|
+
* Well tested}
|
16
|
+
s.email = %q{mmangino@elevatedrails.com}
|
17
|
+
s.extra_rdoc_files = ["Manifest.txt", "CHANGELOG.rdoc", "COPYING.rdoc", "README.rdoc", "TODO.rdoc"]
|
18
|
+
s.files = [".autotest", "CHANGELOG.rdoc", "COPYING.rdoc", "Manifest.txt", "README.rdoc", "Rakefile", "TODO.rdoc", "examples/desktop_login.rb", "facebooker.gemspec", "generators/facebook/facebook_generator.rb", "generators/facebook/templates/config/facebooker.yml", "generators/facebook/templates/public/javascripts/facebooker.js", "generators/facebook_controller/USAGE", "generators/facebook_controller/facebook_controller_generator.rb", "generators/facebook_controller/templates/controller.rb", "generators/facebook_controller/templates/functional_test.rb", "generators/facebook_controller/templates/helper.rb", "generators/facebook_controller/templates/view.fbml.erb", "generators/facebook_controller/templates/view.html.erb", "generators/facebook_publisher/facebook_publisher_generator.rb", "generators/facebook_publisher/templates/create_facebook_templates.rb", "generators/facebook_publisher/templates/publisher.rb", "generators/facebook_scaffold/USAGE", "generators/facebook_scaffold/facebook_scaffold_generator.rb", "generators/facebook_scaffold/templates/controller.rb", "generators/facebook_scaffold/templates/facebook_style.css", "generators/facebook_scaffold/templates/functional_test.rb", "generators/facebook_scaffold/templates/helper.rb", "generators/facebook_scaffold/templates/layout.fbml.erb", "generators/facebook_scaffold/templates/layout.html.erb", "generators/facebook_scaffold/templates/style.css", "generators/facebook_scaffold/templates/view_edit.fbml.erb", "generators/facebook_scaffold/templates/view_edit.html.erb", "generators/facebook_scaffold/templates/view_index.fbml.erb", "generators/facebook_scaffold/templates/view_index.html.erb", "generators/facebook_scaffold/templates/view_new.fbml.erb", "generators/facebook_scaffold/templates/view_new.html.erb", "generators/facebook_scaffold/templates/view_show.fbml.erb", "generators/facebook_scaffold/templates/view_show.html.erb", "generators/publisher/publisher_generator.rb", "generators/xd_receiver/templates/xd_receiver.html", "generators/xd_receiver/xd_receiver_generator.rb", "init.rb", "install.rb", "lib/facebooker.rb", "lib/facebooker/adapters/adapter_base.rb", "lib/facebooker/adapters/bebo_adapter.rb", "lib/facebooker/adapters/facebook_adapter.rb", "lib/facebooker/admin.rb", "lib/facebooker/batch_request.rb", "lib/facebooker/data.rb", "lib/facebooker/feed.rb", "lib/facebooker/logging.rb", "lib/facebooker/mobile.rb", "lib/facebooker/mock/service.rb", "lib/facebooker/mock/session.rb", "lib/facebooker/model.rb", "lib/facebooker/models/affiliation.rb", "lib/facebooker/models/album.rb", "lib/facebooker/models/applicationproperties.rb", "lib/facebooker/models/applicationrestrictions.rb", "lib/facebooker/models/cookie.rb", "lib/facebooker/models/education_info.rb", "lib/facebooker/models/event.rb", "lib/facebooker/models/friend_list.rb", "lib/facebooker/models/group.rb", "lib/facebooker/models/info_item.rb", "lib/facebooker/models/info_section.rb", "lib/facebooker/models/location.rb", "lib/facebooker/models/notifications.rb", "lib/facebooker/models/page.rb", "lib/facebooker/models/photo.rb", "lib/facebooker/models/tag.rb", "lib/facebooker/models/user.rb", "lib/facebooker/models/video.rb", "lib/facebooker/models/work_info.rb", "lib/facebooker/parser.rb", "lib/facebooker/rails/controller.rb", "lib/facebooker/rails/cucumber.rb", "lib/facebooker/rails/cucumber/world.rb", "lib/facebooker/rails/extensions/action_controller.rb", "lib/facebooker/rails/extensions/rack_setup.rb", "lib/facebooker/rails/extensions/routing.rb", "lib/facebooker/rails/facebook_form_builder.rb", "lib/facebooker/rails/facebook_pretty_errors.rb", "lib/facebooker/rails/facebook_request_fix.rb", "lib/facebooker/rails/facebook_session_handling.rb", "lib/facebooker/rails/facebook_url_helper.rb", "lib/facebooker/rails/facebook_url_rewriting.rb", "lib/facebooker/rails/helpers.rb", "lib/facebooker/rails/helpers/fb_connect.rb", "lib/facebooker/rails/integration_session.rb", "lib/facebooker/rails/profile_publisher_extensions.rb", "lib/facebooker/rails/publisher.rb", "lib/facebooker/rails/routing.rb", "lib/facebooker/rails/test_helpers.rb", "lib/facebooker/rails/utilities.rb", "lib/facebooker/server_cache.rb", "lib/facebooker/service.rb", "lib/facebooker/session.rb", "lib/facebooker/version.rb", "lib/net/http_multipart_post.rb", "lib/rack/facebook.rb", "lib/tasks/facebooker.rake", "lib/tasks/tunnel.rake", "rails/init.rb", "setup.rb", "templates/layout.erb", "test/facebooker/adapters_test.rb", "test/facebooker/admin_test.rb", "test/facebooker/batch_request_test.rb", "test/facebooker/data_test.rb", "test/facebooker/logging_test.rb", "test/facebooker/mobile_test.rb", "test/facebooker/model_test.rb", "test/facebooker/models/event_test.rb", "test/facebooker/models/user_test.rb", "test/facebooker/rails/publisher_test.rb", "test/facebooker/rails_integration_test.rb", "test/facebooker/server_cache_test.rb", "test/facebooker/session_test.rb", "test/facebooker_test.rb", "test/fixtures/multipart_post_body_with_only_parameters.txt", "test/fixtures/multipart_post_body_with_single_file.txt", "test/fixtures/multipart_post_body_with_single_file_that_has_nil_key.txt", "test/net/http_multipart_post_test.rb", "test/rack/facebook_test.rb", "test/rails_test_helper.rb", "test/test_helper.rb"]
|
19
|
+
s.has_rdoc = true
|
20
|
+
s.homepage = %q{http://facebooker.rubyforge.org}
|
21
|
+
s.rdoc_options = ["--main", "README.rdoc"]
|
22
|
+
s.require_paths = ["lib"]
|
23
|
+
s.rubyforge_project = %q{facebooker}
|
24
|
+
s.rubygems_version = %q{1.3.2}
|
25
|
+
s.summary = %q{Facebooker is a Ruby wrapper over the Facebook[http://facebook.com] {REST API}[http://wiki.developers.facebook.com/index.php/API]}
|
26
|
+
s.test_files = ["test/facebooker/adapters_test.rb", "test/facebooker/admin_test.rb", "test/facebooker/batch_request_test.rb", "test/facebooker/data_test.rb", "test/facebooker/logging_test.rb", "test/facebooker/mobile_test.rb", "test/facebooker/model_test.rb", "test/facebooker/models/event_test.rb", "test/facebooker/models/user_test.rb", "test/facebooker/rails/publisher_test.rb", "test/facebooker/rails_integration_test.rb", "test/facebooker/server_cache_test.rb", "test/facebooker/session_test.rb", "test/facebooker_test.rb", "test/net/http_multipart_post_test.rb", "test/rack/facebook_test.rb"]
|
27
|
+
|
28
|
+
if s.respond_to? :specification_version then
|
29
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
30
|
+
s.specification_version = 3
|
31
|
+
|
32
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
33
|
+
s.add_runtime_dependency(%q<json>, [">= 1.0.0"])
|
34
|
+
s.add_development_dependency(%q<hoe>, [">= 1.12.1"])
|
35
|
+
else
|
36
|
+
s.add_dependency(%q<json>, [">= 1.0.0"])
|
37
|
+
s.add_dependency(%q<hoe>, [">= 1.12.1"])
|
38
|
+
end
|
39
|
+
else
|
40
|
+
s.add_dependency(%q<json>, [">= 1.0.0"])
|
41
|
+
s.add_dependency(%q<hoe>, [">= 1.12.1"])
|
42
|
+
end
|
43
|
+
end
|
data/lib/facebooker.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
begin
|
2
2
|
unless Object.const_defined?("ActiveSupport") and ActiveSupport.const_defined?("JSON")
|
3
|
-
require 'json'
|
3
|
+
require 'json'
|
4
4
|
module Facebooker
|
5
5
|
def self.json_decode(str)
|
6
6
|
JSON.parse(str)
|
@@ -12,9 +12,9 @@ begin
|
|
12
12
|
ActiveSupport::JSON.decode(str)
|
13
13
|
end
|
14
14
|
end
|
15
|
-
end
|
15
|
+
end
|
16
16
|
rescue
|
17
|
-
require 'json'
|
17
|
+
require 'json'
|
18
18
|
end
|
19
19
|
require 'zlib'
|
20
20
|
require 'digest/md5'
|
@@ -22,9 +22,15 @@ require 'digest/md5'
|
|
22
22
|
|
23
23
|
|
24
24
|
module Facebooker
|
25
|
-
|
25
|
+
|
26
|
+
@facebooker_configuration = {}
|
27
|
+
@current_adapter = nil
|
28
|
+
@set_asset_host_to_callback_url = nil
|
29
|
+
@path_prefix = nil
|
30
|
+
@use_curl = false
|
31
|
+
|
26
32
|
class << self
|
27
|
-
|
33
|
+
|
28
34
|
def load_configuration(facebooker_yaml_file)
|
29
35
|
if File.exist?(facebooker_yaml_file)
|
30
36
|
if defined? RAILS_ENV
|
@@ -35,7 +41,7 @@ module Facebooker
|
|
35
41
|
apply_configuration(config)
|
36
42
|
end
|
37
43
|
end
|
38
|
-
|
44
|
+
|
39
45
|
# Sets the Facebook environment based on a hash of options.
|
40
46
|
# By default the hash passed in is loaded from facebooker.yml, but it can also be passed in
|
41
47
|
# manually every request to run multiple Facebook apps off one Rails app.
|
@@ -53,70 +59,66 @@ module Facebooker
|
|
53
59
|
Facebooker.timeout = config['timeout']
|
54
60
|
@facebooker_configuration = config
|
55
61
|
end
|
56
|
-
|
62
|
+
|
57
63
|
def facebooker_config
|
58
|
-
@facebooker_configuration
|
59
|
-
end
|
60
|
-
|
61
|
-
def current_adapter=(adapter_class)
|
62
|
-
@current_adapter = adapter_class
|
64
|
+
@facebooker_configuration
|
63
65
|
end
|
64
|
-
|
66
|
+
|
67
|
+
# TODO: This should be converted to attr_accessor, but we need to
|
68
|
+
# get all the require statements at the top of the file to work.
|
69
|
+
|
70
|
+
# Set the current adapter
|
71
|
+
attr_writer :current_adapter
|
72
|
+
|
73
|
+
# Get the current adapter
|
65
74
|
def current_adapter
|
66
75
|
@current_adapter || Facebooker::AdapterBase.default_adapter
|
67
76
|
end
|
68
|
-
|
77
|
+
|
69
78
|
def load_adapter(params)
|
70
79
|
self.current_adapter = Facebooker::AdapterBase.load_adapter(params)
|
71
80
|
end
|
72
|
-
|
81
|
+
|
73
82
|
def facebook_path_prefix=(path)
|
74
83
|
current_adapter.facebook_path_prefix = path
|
75
84
|
end
|
76
|
-
|
85
|
+
|
77
86
|
# Default is canvas_page_name in yml file
|
78
87
|
def facebook_path_prefix
|
79
88
|
current_adapter.facebook_path_prefix
|
80
89
|
end
|
81
|
-
|
90
|
+
|
82
91
|
def is_for?(application_container)
|
83
92
|
current_adapter.is_for?(application_container)
|
84
93
|
end
|
85
|
-
|
94
|
+
|
86
95
|
def set_asset_host_to_callback_url=(val)
|
87
96
|
@set_asset_host_to_callback_url=val
|
88
97
|
end
|
89
|
-
|
98
|
+
|
90
99
|
def set_asset_host_to_callback_url
|
91
|
-
@set_asset_host_to_callback_url
|
92
|
-
end
|
93
|
-
|
94
|
-
def use_curl=(val)
|
95
|
-
@use_curl=val
|
96
|
-
end
|
97
|
-
|
98
|
-
def use_curl?
|
99
|
-
@use_curl
|
100
|
+
@set_asset_host_to_callback_url || true
|
100
101
|
end
|
101
|
-
|
102
|
+
|
103
|
+
attr_accessor :use_curl
|
104
|
+
alias :use_curl? :use_curl
|
105
|
+
|
102
106
|
def timeout=(val)
|
103
107
|
@timeout = val.to_i
|
104
108
|
end
|
105
|
-
|
109
|
+
|
106
110
|
def timeout
|
107
111
|
@timeout
|
108
112
|
end
|
109
|
-
|
113
|
+
|
110
114
|
[:api_key,:secret_key, :www_server_base_url,:login_url_base,:install_url_base,:api_rest_path,:api_server_base,:api_server_base_url,:canvas_server_base, :video_server_base].each do |delegated_method|
|
111
115
|
define_method(delegated_method){ return current_adapter.send(delegated_method)}
|
112
116
|
end
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
117
|
+
|
118
|
+
|
119
|
+
attr_reader :path_prefix
|
120
|
+
|
121
|
+
|
120
122
|
# Set the asset path to the canvas path for just this one request
|
121
123
|
# by definition, we will make this a canvas request
|
122
124
|
def with_asset_path_for_canvas
|
@@ -130,7 +132,7 @@ module Facebooker
|
|
130
132
|
ActionController::Base.asset_host = original_asset_host
|
131
133
|
end
|
132
134
|
end
|
133
|
-
|
135
|
+
|
134
136
|
# If this request is_canvas_request
|
135
137
|
# then use the application name as the url root
|
136
138
|
def request_for_canvas(is_canvas_request)
|
@@ -26,6 +26,7 @@ module Facebooker
|
|
26
26
|
|
27
27
|
def initialize(config)
|
28
28
|
@config = config
|
29
|
+
@facebook_path_prefix = nil
|
29
30
|
end
|
30
31
|
|
31
32
|
def self.facebooker_config
|
@@ -36,7 +37,7 @@ module Facebooker
|
|
36
37
|
def self.load_adapter(params)
|
37
38
|
|
38
39
|
config_key_base = params[:config_key_base] # This allows for loading of a aspecific adapter
|
39
|
-
config_key_base += "_"
|
40
|
+
config_key_base += "_" if config_key_base && config_key_base.length > 0
|
40
41
|
|
41
42
|
unless api_key = (params[:fb_sig_api_key] || facebooker_config["#{config_key_base}api_key"])
|
42
43
|
raise Facebooker::AdapterBase::UnableToLoadAdapter
|
@@ -51,7 +52,7 @@ module Facebooker
|
|
51
52
|
|
52
53
|
key_base = key.match(/(.*)[_]?api_key/)[1]
|
53
54
|
|
54
|
-
adapter_class_name = if key_base.
|
55
|
+
adapter_class_name = if !key_base || key_base.length == 0
|
55
56
|
"FacebookAdapter"
|
56
57
|
else
|
57
58
|
facebooker_config[key_base + "adapter"]
|
@@ -12,16 +12,16 @@ module Facebooker
|
|
12
12
|
def api_rest_path
|
13
13
|
"/restserver.php"
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
def is_for?(application_context)
|
17
17
|
application_context == :bebo
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
def www_server_base_url
|
21
21
|
"www.bebo.com"
|
22
22
|
end
|
23
23
|
|
24
|
-
|
24
|
+
|
25
25
|
def login_url_base
|
26
26
|
"http://#{www_server_base_url}/SignIn.jsp?ApiKey=#{api_key}&v=1.0"
|
27
27
|
end
|
@@ -33,7 +33,6 @@ module Facebooker
|
|
33
33
|
end
|
34
34
|
|
35
35
|
# Things that don't actually work as expected in BEBO
|
36
|
-
Facebooker::PublishTemplatizedAction
|
37
36
|
module Facebooker
|
38
37
|
class User
|
39
38
|
def set_profile_fbml_with_bebo_adapter(profile_fbml, mobile_fbml, profile_action_fbml, profile_main = nil)
|
@@ -49,6 +48,9 @@ module Facebooker
|
|
49
48
|
private
|
50
49
|
|
51
50
|
BEBO_FIELDS = FIELDS - [:meeting_sex, :wall_count, :meeting_for]
|
51
|
+
|
52
|
+
remove_method :collect
|
53
|
+
|
52
54
|
def collect(fields)
|
53
55
|
if(Facebooker.is_for?(:bebo) )
|
54
56
|
BEBO_FIELDS.reject{|field_name| !fields.empty? && !fields.include?(field_name)}.join(',')
|
@@ -5,19 +5,21 @@ module Facebooker
|
|
5
5
|
attr_reader :method
|
6
6
|
class UnexecutedRequest < StandardError; end
|
7
7
|
def initialize(params,proc)
|
8
|
-
@
|
9
|
-
@
|
10
|
-
@
|
8
|
+
@exception = nil
|
9
|
+
@result = nil
|
10
|
+
@method = params[:method]
|
11
|
+
@uri = params.map{|k,v| "#{k}=#{CGI.escape(v.to_s)}"}.join("&")
|
12
|
+
@proc = proc
|
11
13
|
end
|
12
|
-
|
14
|
+
|
13
15
|
def result=(result_object)
|
14
16
|
@result = @proc.nil? ? result_object : @proc.call(result_object)
|
15
17
|
end
|
16
|
-
|
18
|
+
|
17
19
|
def exception_raised=(ex)
|
18
20
|
@exception=ex
|
19
21
|
end
|
20
|
-
|
22
|
+
|
21
23
|
def exception_raised?
|
22
24
|
@exception.nil? ? false : raise(@exception)
|
23
25
|
end
|
@@ -25,12 +27,11 @@ module Facebooker
|
|
25
27
|
def respond_to?(name)
|
26
28
|
super || @result.respond_to?(name)
|
27
29
|
end
|
28
|
-
|
30
|
+
|
29
31
|
def ===(other)
|
30
32
|
other === @result
|
31
33
|
end
|
32
|
-
|
33
|
-
|
34
|
+
|
34
35
|
def method_missing(name,*args,&proc)
|
35
36
|
if @exception
|
36
37
|
raise @exception
|
@@ -41,4 +42,4 @@ module Facebooker
|
|
41
42
|
end
|
42
43
|
end
|
43
44
|
end
|
44
|
-
end
|
45
|
+
end
|