mmangino-facebooker 1.0.32 → 1.0.36

Sign up to get free protection for your applications and to get access to all the features.
data/Manifest.txt CHANGED
@@ -75,6 +75,7 @@ lib/facebooker/models/user.rb
75
75
  lib/facebooker/models/video.rb
76
76
  lib/facebooker/models/work_info.rb
77
77
  lib/facebooker/parser.rb
78
+ lib/facebooker/rails/backwards_compatible_param_checks.rb
78
79
  lib/facebooker/rails/controller.rb
79
80
  lib/facebooker/rails/cucumber.rb
80
81
  lib/facebooker/rails/cucumber/world.rb
@@ -84,6 +85,7 @@ lib/facebooker/rails/extensions/routing.rb
84
85
  lib/facebooker/rails/facebook_form_builder.rb
85
86
  lib/facebooker/rails/facebook_pretty_errors.rb
86
87
  lib/facebooker/rails/facebook_request_fix.rb
88
+ lib/facebooker/rails/facebook_request_fix_2-3.rb
87
89
  lib/facebooker/rails/facebook_session_handling.rb
88
90
  lib/facebooker/rails/facebook_url_helper.rb
89
91
  lib/facebooker/rails/facebook_url_rewriting.rb
@@ -114,9 +116,11 @@ test/facebooker/logging_test.rb
114
116
  test/facebooker/mobile_test.rb
115
117
  test/facebooker/model_test.rb
116
118
  test/facebooker/models/event_test.rb
119
+ test/facebooker/models/photo_test.rb
117
120
  test/facebooker/models/user_test.rb
118
121
  test/facebooker/rails/publisher_test.rb
119
122
  test/facebooker/rails_integration_test.rb
123
+ test/facebooker/rails/facebook_request_fix_2-3_test.rb
120
124
  test/facebooker/server_cache_test.rb
121
125
  test/facebooker/session_test.rb
122
126
  test/facebooker_test.rb
data/facebooker.gemspec CHANGED
@@ -2,15 +2,15 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{facebooker}
5
- s.version = "1.0.32"
5
+ s.version = "1.0.36"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Chad Fowler", "Patrick Ewing", "Mike Mangino", "Shane Vitarana", "Corey Innis"]
9
- s.date = %q{2009-05-12}
9
+ s.date = %q{2009-05-28}
10
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: * Idiomatic Ruby * No dependencies outside of the Ruby standard library (This is true with Rails 2.1. Previous Rails versions require the JSON gem) * Concrete classes and methods modeling the Facebook data, so it's easy for a Rubyist to understand what's available * Well tested}
11
11
  s.email = %q{mmangino@elevatedrails.com}
12
12
  s.extra_rdoc_files = ["Manifest.txt", "CHANGELOG.rdoc", "COPYING.rdoc", "README.rdoc", "TODO.rdoc"]
13
- 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"]
13
+ 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/backwards_compatible_param_checks.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_request_fix_2-3.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/photo_test.rb", "test/facebooker/models/user_test.rb", "test/facebooker/rails/publisher_test.rb", "test/facebooker/rails_integration_test.rb", "test/facebooker/rails/facebook_request_fix_2-3_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", "test/facebooker/rails/facebook_url_rewriting_test.rb"]
14
14
  s.has_rdoc = true
15
15
  s.homepage = %q{http://facebooker.rubyforge.org}
16
16
  s.rdoc_options = ["--main", "README.rdoc"]
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.rubyforge_project = %q{facebooker}
19
19
  s.rubygems_version = %q{1.3.1}
20
20
  s.summary = %q{Facebooker is a Ruby wrapper over the Facebook[http://facebook.com] {REST API}[http://wiki.developers.facebook.com/index.php/API]}
21
- s.test_files = ["test/facebooker_test.rb", "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/rails_integration_test.rb", "test/facebooker/server_cache_test.rb", "test/facebooker/session_test.rb", "test/facebooker/models/event_test.rb", "test/facebooker/models/user_test.rb", "test/facebooker/rails/publisher_test.rb", "test/net/http_multipart_post_test.rb", "test/rack/facebook_test.rb"]
21
+ s.test_files = ["test/facebooker_test.rb", "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/rails_integration_test.rb", "test/facebooker/server_cache_test.rb", "test/facebooker/session_test.rb", "test/facebooker/models/event_test.rb", "test/facebooker/models/photo_test.rb", "test/facebooker/models/user_test.rb", "test/facebooker/rails/facebook_request_fix_2-3_test.rb", "test/facebooker/rails/facebook_url_rewriting_test.rb", "test/facebooker/rails/publisher_test.rb", "test/net/http_multipart_post_test.rb", "test/rack/facebook_test.rb"]
22
22
 
23
23
  if s.respond_to? :specification_version then
24
24
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
data/init.rb CHANGED
@@ -5,15 +5,17 @@ facebook_config = "#{RAILS_ROOT}/config/facebooker.yml"
5
5
  require 'facebooker'
6
6
  FACEBOOKER = Facebooker.load_configuration(facebook_config)
7
7
 
8
- # enable logger before including everything else, in case we ever want to log initialization
8
+ # enable logger before including everything else, in case we ever want to log initialization
9
9
  Facebooker.logger = RAILS_DEFAULT_LOGGER if Object.const_defined? :RAILS_DEFAULT_LOGGER
10
10
 
11
11
  require 'net/http_multipart_post'
12
12
  if defined? Rails
13
+ require 'facebooker/rails/backwards_compatible_param_checks'
13
14
  require 'facebooker/rails/controller'
14
15
  require 'facebooker/rails/facebook_url_rewriting'
15
16
  require 'facebooker/rails/facebook_session_handling' if Rails.version < '2.3'
16
17
  require 'facebooker/rails/facebook_request_fix' if Rails.version < '2.3'
18
+ require 'facebooker/rails/facebook_request_fix_2-3' if Rails.version >= '2.3'
17
19
  require 'facebooker/rails/routing'
18
20
  require 'facebooker/rails/facebook_pretty_errors' rescue nil
19
21
  require 'facebooker/rails/facebook_url_helper'
@@ -8,5 +8,12 @@ module Facebooker
8
8
  :story_fbid
9
9
 
10
10
  id_is :pid
11
+
12
+ #override the generated method for id_is to use a string
13
+ def pid=(val)
14
+ @pid = val
15
+ end
16
+
17
+ alias :id= :pid=
11
18
  end
12
19
  end
@@ -10,7 +10,7 @@ module Facebooker
10
10
  include Model
11
11
  attr_accessor :message, :time, :status_id
12
12
  end
13
- FIELDS = [:political, :pic_small, :name, :quotes, :is_app_user, :tv, :profile_update_time, :meeting_sex, :hs_info, :timezone, :relationship_status, :hometown_location, :about_me, :wall_count, :significant_other_id, :pic_big, :music, :work_history, :sex, :religion, :notes_count, :activities, :pic_square, :movies, :has_added_app, :education_history, :birthday, :first_name, :meeting_for, :last_name, :interests, :current_location, :pic, :books, :affiliations, :locale, :profile_url, :proxied_email, :email_hashes, :allowed_restrictions, :pic_with_logo, :pic_big_with_logo, :pic_small_with_logo, :pic_square_with_logo]
13
+ FIELDS = [:status, :political, :pic_small, :name, :quotes, :is_app_user, :tv, :profile_update_time, :meeting_sex, :hs_info, :timezone, :relationship_status, :hometown_location, :about_me, :wall_count, :significant_other_id, :pic_big, :music, :work_history, :sex, :religion, :notes_count, :activities, :pic_square, :movies, :has_added_app, :education_history, :birthday, :first_name, :meeting_for, :last_name, :interests, :current_location, :pic, :books, :affiliations, :locale, :profile_url, :proxied_email, :email_hashes, :allowed_restrictions, :pic_with_logo, :pic_big_with_logo, :pic_small_with_logo, :pic_square_with_logo]
14
14
  STANDARD_FIELDS = [:uid, :first_name, :last_name, :name, :timezone, :birthday, :sex, :affiliations, :locale, :profile_url, :pic_square]
15
15
  populating_attr_accessor(*FIELDS)
16
16
  attr_reader :affiliations
@@ -0,0 +1,31 @@
1
+ module Facebooker::Rails::BackwardsCompatibleParamChecks
2
+
3
+ def one_or_true( value )
4
+ case value
5
+ when String then
6
+ value == "1"
7
+ when Numeric then
8
+ value.to_f == 1.0
9
+ when TrueClass then
10
+ true
11
+ else
12
+ false
13
+ end
14
+ end
15
+
16
+ def zero_or_false( value )
17
+ case value
18
+ when String then
19
+ value == "0"
20
+ when Numeric then
21
+ value.to_f == 0.0
22
+ when FalseClass then
23
+ true
24
+ when NilClass then
25
+ true
26
+ else
27
+ false
28
+ end
29
+ end
30
+
31
+ end
@@ -3,6 +3,7 @@ require 'facebooker/rails/profile_publisher_extensions'
3
3
  module Facebooker
4
4
  module Rails
5
5
  module Controller
6
+ include Facebooker::Rails::BackwardsCompatibleParamChecks
6
7
  include Facebooker::Rails::ProfilePublisherExtensions
7
8
  def self.included(controller)
8
9
  controller.extend(ClassMethods)
@@ -205,6 +206,10 @@ module Facebooker
205
206
  end
206
207
 
207
208
  def verify_signature(facebook_sig_params,expected_signature)
209
+ # Don't verify the signature if rack has already done so.
210
+ if ::Rails.version >= "2.3"
211
+ return if ActionController::Dispatcher.middleware.include? Rack::Facebook
212
+ end
208
213
  raw_string = facebook_sig_params.map{ |*args| args.join('=') }.sort.join
209
214
  actual_sig = Digest::MD5.hexdigest([raw_string, Facebooker::Session.secret_key].join)
210
215
  raise Facebooker::Session::IncorrectSignature if actual_sig != expected_signature
@@ -249,14 +254,13 @@ module Facebooker
249
254
  end
250
255
 
251
256
  def request_is_facebook_ajax?
252
- params["fb_sig_is_mockajax"]=="1" || params["fb_sig_is_ajax"]=="1" || params["fb_sig_is_ajax"]==true || params["fb_sig_is_mockajax"]==true
257
+ one_or_true(params["fb_sig_is_mockajax"]) || one_or_true(params["fb_sig_is_ajax"])
253
258
  end
259
+
254
260
  def xml_http_request?
255
261
  request_is_facebook_ajax? || super
256
262
  end
257
263
 
258
-
259
-
260
264
  def application_is_installed?
261
265
  facebook_params['added']
262
266
  end
@@ -1,8 +1,6 @@
1
1
  # Somewhere in 2.3 RewindableInput was removed- rack supports it natively
2
2
  require 'rack/facebook'
3
- ActionController::Dispatcher.middleware.insert_after(
4
- (Object.const_get('ActionController::RewindableInput') rescue false) ?
5
- 'ActionController::RewindableInput' :
6
- 'ActionController::Session::CookieStore',
3
+ ActionController::Dispatcher.middleware.insert_before(
4
+ ActionController::ParamsParser,
7
5
  Rack::Facebook,
8
6
  Facebooker.secret_key )
@@ -1,5 +1,7 @@
1
1
  module ::ActionController
2
2
  class AbstractRequest
3
+ include Facebooker::Rails::BackwardsCompatibleParamChecks
4
+
3
5
  def request_method_with_facebooker
4
6
  if parameters[:_method].blank?
5
7
  if %w{GET HEAD}.include?(parameters[:fb_sig_request_method])
@@ -14,8 +16,8 @@ module ::ActionController
14
16
  end
15
17
 
16
18
  def xml_http_request_with_facebooker?
17
- parameters["fb_sig_is_mockajax"] == "1" ||
18
- parameters["fb_sig_is_ajax"] == "1" ||
19
+ one_or_true(parameters["fb_sig_is_mockajax"]) ||
20
+ one_or_true(parameters["fb_sig_is_ajax"]) ||
19
21
  xml_http_request_without_facebooker?
20
22
  end
21
23
  alias_method_chain :xml_http_request?, :facebooker
@@ -0,0 +1,31 @@
1
+ module ::ActionController
2
+
3
+ class Request
4
+
5
+ include Facebooker::Rails::BackwardsCompatibleParamChecks
6
+
7
+ def request_method_with_facebooker
8
+ if parameters[:_method].blank?
9
+ if %w{GET HEAD}.include?(parameters[:fb_sig_request_method])
10
+ parameters[:_method] = parameters[:fb_sig_request_method]
11
+ end
12
+ end
13
+ request_method_without_facebooker
14
+ end
15
+
16
+ if new({}).methods.include?("request_method")
17
+ alias_method_chain :request_method, :facebooker
18
+ end
19
+
20
+ def xml_http_request_with_facebooker?
21
+ one_or_true(parameters["fb_sig_is_mockajax"]) ||
22
+ one_or_true(parameters["fb_sig_is_ajax"]) ||
23
+ xml_http_request_without_facebooker?
24
+ end
25
+ alias_method_chain :xml_http_request?, :facebooker
26
+
27
+ # we have to re-alias xhr? since it was pointing to the old method
28
+ alias xhr? :xml_http_request?
29
+
30
+ end
31
+ end
@@ -23,14 +23,18 @@ module ::ActionController
23
23
  end
24
24
 
25
25
  class UrlRewriter
26
+ include Facebooker::Rails::BackwardsCompatibleParamChecks
27
+
26
28
  RESERVED_OPTIONS << :canvas
29
+
27
30
  def link_to_new_canvas?
28
- @request.parameters["fb_sig_in_new_facebook"] == "1"
31
+ one_or_true @request.parameters["fb_sig_in_new_facebook"]
29
32
  end
33
+
30
34
  def link_to_canvas?(params, options)
31
35
  option_override = options[:canvas]
32
36
  return false if option_override == false # important to check for false. nil should use default behavior
33
- option_override || (can_safely_access_request_parameters? && (@request.parameters["fb_sig_in_canvas"] == "1" || @request.parameters[:fb_sig_in_canvas] == "1" ))
37
+ option_override || (can_safely_access_request_parameters? && (one_or_true(@request.parameters["fb_sig_in_canvas"]) || one_or_true(@request.parameters[:fb_sig_in_canvas]) ))
34
38
  end
35
39
 
36
40
  #rails blindly tries to merge things that may be nil into the parameters. Make sure this won't break
@@ -51,5 +55,6 @@ module ::ActionController
51
55
  end
52
56
 
53
57
  alias_method_chain :rewrite_url, :facebooker
58
+
54
59
  end
55
60
  end
@@ -31,6 +31,7 @@ module Facebooker
31
31
  init_string = <<-FBML
32
32
  #{case options[:js]
33
33
  when :jquery then "$(document).ready("
34
+ when :dojo then "dojo.addOnLoad("
34
35
  else "Element.observe(window,'load',"
35
36
  end} function() {
36
37
  FB_RequireFeatures(#{required_features.to_json}, function() {
@@ -2,7 +2,7 @@ module Facebooker #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
4
  MINOR = 0
5
- TINY = 32
5
+ TINY = 36
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -0,0 +1,16 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../test_helper')
2
+ require 'active_support'
3
+
4
+ class Facebooker::UserTest < Test::Unit::TestCase
5
+
6
+ def test_pid_should_be_treated_as_a_string
7
+ @photo = Facebooker::Photo.new(:pid=>"100000025509592_6801")
8
+ assert_equal("100000025509592_6801",@photo.pid)
9
+ end
10
+
11
+ def test_setting_id_should_also_use_new_method
12
+ @photo = Facebooker::Photo.new(:id=>"100000025509592_6801")
13
+ assert_equal("100000025509592_6801",@photo.id)
14
+ end
15
+
16
+ end
@@ -0,0 +1,24 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../rails_test_helper')
2
+
3
+ class Facebooker::Rails::FacebookRequestFix23Test < Test::Unit::TestCase
4
+
5
+ def setup
6
+ ENV['FACEBOOK_API_KEY'] = '1234567'
7
+ ENV['FACEBOOK_SECRET_KEY'] = '7654321'
8
+ if Rails.version < '2.3'
9
+ @request = ActionController::TestRequest.new({"fb_sig_is_ajax"=>"1"}, {}, nil)
10
+ else
11
+ @request = ActionController::TestRequest.new
12
+ @request.query_parameters[:fb_sig_is_ajax] = "1"
13
+ end
14
+ end
15
+
16
+ def test_xhr_when_is_ajax
17
+ assert @request.xhr?
18
+ end
19
+
20
+ def test_xml_http_request_when_is_ajax
21
+ assert @request.xml_http_request?
22
+ end
23
+
24
+ end
@@ -0,0 +1,39 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../rails_test_helper')
2
+
3
+ class Facebooker::Rails::FacebookUrlRewritingTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @request = ActionController::TestRequest.new
7
+ @params = {}
8
+ @rewriter = ActionController::UrlRewriter.new(@request, @params)
9
+ end
10
+
11
+ def test_one_or_true_on_string_1
12
+ assert @rewriter.one_or_true( "1" )
13
+ end
14
+
15
+ def test_one_or_true_on_string_0
16
+ assert !@rewriter.one_or_true( "0" )
17
+ end
18
+
19
+ def test_one_or_true_on_integer_1
20
+ assert @rewriter.one_or_true( 1 )
21
+ end
22
+
23
+ def test_one_or_true_on_float_1
24
+ assert @rewriter.one_or_true( 1.0 )
25
+ end
26
+
27
+ def test_one_or_true_on_true
28
+ assert @rewriter.one_or_true( true )
29
+ end
30
+
31
+ def test_one_or_true_on_false
32
+ assert !@rewriter.one_or_true( false )
33
+ end
34
+
35
+ def test_one_or_true_on_nil
36
+ assert !@rewriter.one_or_true( nil )
37
+ end
38
+
39
+ end
@@ -232,7 +232,7 @@ class TestFacebooker < Test::Unit::TestCase
232
232
  photos = @session.get_photos([97503428461115590, 97503428461115573])
233
233
  assert_equal 2, photos.size
234
234
  assert_equal "Rooftop barbecues make me act funny", photos.first.caption
235
- assert_equal 97503428461115590, photos[0].id
235
+ assert_equal "97503428461115590", photos[0].id
236
236
  end
237
237
 
238
238
  def test_can_get_photos_by_subject_and_album
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mmangino-facebooker
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.32
4
+ version: 1.0.36
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chad Fowler
@@ -13,7 +13,7 @@ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
15
 
16
- date: 2009-05-12 00:00:00 -07:00
16
+ date: 2009-05-28 00:00:00 -07:00
17
17
  default_executable:
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
@@ -126,6 +126,7 @@ files:
126
126
  - lib/facebooker/models/video.rb
127
127
  - lib/facebooker/models/work_info.rb
128
128
  - lib/facebooker/parser.rb
129
+ - lib/facebooker/rails/backwards_compatible_param_checks.rb
129
130
  - lib/facebooker/rails/controller.rb
130
131
  - lib/facebooker/rails/cucumber.rb
131
132
  - lib/facebooker/rails/cucumber/world.rb
@@ -135,6 +136,7 @@ files:
135
136
  - lib/facebooker/rails/facebook_form_builder.rb
136
137
  - lib/facebooker/rails/facebook_pretty_errors.rb
137
138
  - lib/facebooker/rails/facebook_request_fix.rb
139
+ - lib/facebooker/rails/facebook_request_fix_2-3.rb
138
140
  - lib/facebooker/rails/facebook_session_handling.rb
139
141
  - lib/facebooker/rails/facebook_url_helper.rb
140
142
  - lib/facebooker/rails/facebook_url_rewriting.rb
@@ -165,9 +167,11 @@ files:
165
167
  - test/facebooker/mobile_test.rb
166
168
  - test/facebooker/model_test.rb
167
169
  - test/facebooker/models/event_test.rb
170
+ - test/facebooker/models/photo_test.rb
168
171
  - test/facebooker/models/user_test.rb
169
172
  - test/facebooker/rails/publisher_test.rb
170
173
  - test/facebooker/rails_integration_test.rb
174
+ - test/facebooker/rails/facebook_request_fix_2-3_test.rb
171
175
  - test/facebooker/server_cache_test.rb
172
176
  - test/facebooker/session_test.rb
173
177
  - test/facebooker_test.rb
@@ -178,6 +182,7 @@ files:
178
182
  - test/rack/facebook_test.rb
179
183
  - test/rails_test_helper.rb
180
184
  - test/test_helper.rb
185
+ - test/facebooker/rails/facebook_url_rewriting_test.rb
181
186
  has_rdoc: true
182
187
  homepage: http://facebooker.rubyforge.org
183
188
  post_install_message:
@@ -218,7 +223,10 @@ test_files:
218
223
  - test/facebooker/server_cache_test.rb
219
224
  - test/facebooker/session_test.rb
220
225
  - test/facebooker/models/event_test.rb
226
+ - test/facebooker/models/photo_test.rb
221
227
  - test/facebooker/models/user_test.rb
228
+ - test/facebooker/rails/facebook_request_fix_2-3_test.rb
229
+ - test/facebooker/rails/facebook_url_rewriting_test.rb
222
230
  - test/facebooker/rails/publisher_test.rb
223
231
  - test/net/http_multipart_post_test.rb
224
232
  - test/rack/facebook_test.rb