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.
Files changed (39) hide show
  1. data/.autotest +15 -0
  2. data/Manifest.txt +129 -0
  3. data/Rakefile +2 -3
  4. data/examples/desktop_login.rb +14 -0
  5. data/facebooker.gemspec +43 -0
  6. data/lib/facebooker.rb +41 -39
  7. data/lib/facebooker/adapters/adapter_base.rb +3 -2
  8. data/lib/facebooker/adapters/bebo_adapter.rb +6 -4
  9. data/lib/facebooker/batch_request.rb +11 -10
  10. data/lib/facebooker/logging.rb +6 -13
  11. data/lib/facebooker/mobile.rb +2 -2
  12. data/lib/facebooker/model.rb +15 -13
  13. data/lib/facebooker/models/applicationproperties.rb +1 -1
  14. data/lib/facebooker/models/applicationrestrictions.rb +3 -3
  15. data/lib/facebooker/models/event.rb +2 -2
  16. data/lib/facebooker/models/friend_list.rb +2 -2
  17. data/lib/facebooker/models/group.rb +4 -4
  18. data/lib/facebooker/models/page.rb +3 -2
  19. data/lib/facebooker/models/photo.rb +2 -2
  20. data/lib/facebooker/models/user.rb +13 -5
  21. data/lib/facebooker/models/work_info.rb +3 -2
  22. data/lib/facebooker/rails/controller.rb +6 -1
  23. data/lib/facebooker/rails/facebook_request_fix.rb +12 -8
  24. data/lib/facebooker/rails/facebook_session_handling.rb +1 -2
  25. data/lib/facebooker/rails/facebook_url_rewriting.rb +14 -11
  26. data/lib/facebooker/rails/helpers.rb +4 -3
  27. data/lib/facebooker/rails/helpers/fb_connect.rb +8 -2
  28. data/lib/facebooker/rails/publisher.rb +36 -30
  29. data/lib/facebooker/session.rb +81 -73
  30. data/lib/facebooker/version.rb +1 -1
  31. data/test/facebooker/adapters_test.rb +23 -23
  32. data/test/facebooker/model_test.rb +10 -0
  33. data/test/facebooker/rails/publisher_test.rb +97 -88
  34. data/test/facebooker/rails_integration_test.rb +44 -43
  35. data/test/facebooker/session_test.rb +5 -5
  36. data/test/rack/facebook_test.rb +2 -3
  37. data/test/rails_test_helper.rb +14 -0
  38. data/test/test_helper.rb +5 -4
  39. metadata +31 -17
@@ -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
@@ -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
@@ -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
@@ -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 || {} # to prevent pretty_errors error if the config hasn't been set yet
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.nil? ? true : @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
- def path_prefix
116
- @path_prefix
117
- end
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 += "_" unless config_key_base.blank?
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.blank?
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
- @method=params[:method]
9
- @uri=params.map{|k,v| "#{k}=#{CGI.escape(v.to_s)}"}.join("&")
10
- @proc=proc
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