Skip to content

Instantly share code, notes, and snippets.

@cbaclig
Created February 19, 2010 04:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cbaclig/308403 to your computer and use it in GitHub Desktop.
Save cbaclig/308403 to your computer and use it in GitHub Desktop.
C:\InstantRails\rails_apps\test-gem-bundles>gem list | grep bundler
bundler (0.9.6, 0.9.5)
C:\InstantRails\rails_apps\test-gem-bundles>cat Gemfile
source 'http://gemcutter.org'
source 'http://gems.github.com'
gem 'rails', '2.3.5', :require => nil
gem 'facebooker'
group :development do
gem 'mysql'
end
C:\InstantRails\rails_apps\test-gem-bundles>
C:\InstantRails\rails_apps\test-gem-bundles>bundle lock
The bundle is now locked. Use `bundle show` to list the gems in the environment.
C:\InstantRails\rails_apps\test-gem-bundles>ruby script/runner 'p ApplicationController.new.respond_to?("set_facebook_session")'
false
[[[ After adding config.gem 'facebooker' to environment.rb ]]]
C:\InstantRails\rails_apps\test-gem-bundles>bundle lock
The bundle is now locked. Use `bundle show` to list the gems in the environment.
C:\InstantRails\rails_apps\test-gem-bundles>ruby script/runner 'p ApplicationController.new.respond_to?("set_facebook_session")'
true
========= Facebooker files ==============
facebooker/init.rb
# Added support to the Facebooker.yml file for switching to the new profile design..
# Config parsing needs to happen before files are required.
facebook_config = "#{RAILS_ROOT}/config/facebooker.yml"
require 'facebooker'
FACEBOOKER = Facebooker.load_configuration(facebook_config)
# enable logger before including everything else, in case we ever want to log initialization
Facebooker.logger = RAILS_DEFAULT_LOGGER if Object.const_defined? :RAILS_DEFAULT_LOGGER
require 'net/http_multipart_post'
if defined? Rails
require 'facebooker/rails/backwards_compatible_param_checks'
require 'facebooker/rails/controller'
require 'facebooker/rails/facebook_url_rewriting'
require 'facebooker/rails/facebook_session_handling' if Rails.version < '2.3'
require 'facebooker/rails/facebook_request_fix' if Rails.version < '2.3'
require 'facebooker/rails/facebook_request_fix_2-3' if Rails.version >= '2.3'
require 'facebooker/rails/routing'
require 'facebooker/rails/facebook_pretty_errors' rescue nil
require 'facebooker/rails/facebook_url_helper'
require 'facebooker/rails/extensions/rack_setup' if Rails.version > '2.3'
require 'facebooker/rails/extensions/action_controller'
#require 'facebooker/rails/extensions/action_view'
require 'facebooker/rails/extensions/routing'
end
facebooker/lib/facebooker/rails/extensions/action_controller.rb
module ::ActionController
class Base
def self.inherited_with_facebooker(subclass)
inherited_without_facebooker(subclass)
if subclass.to_s == "ApplicationController"
subclass.send(:include,Facebooker::Rails::Controller)
subclass.helper Facebooker::Rails::Helpers
end
end
class << self
alias_method_chain :inherited, :facebooker
end
end
end
# When making get requests, Facebook sends fb_sig parameters both in the query string
# and also in the post body. We want to ignore the query string ones because they are one
# request out of date
# We only do thise when there are POST parameters so that IFrame linkage still works
if Rails.version < '2.3'
class ActionController::AbstractRequest
def query_parameters_with_facebooker
if request_parameters.blank?
query_parameters_without_facebooker
else
(query_parameters_without_facebooker||{}).reject {|key,value| key.to_s =~ /^fb_sig/}
end
end
alias_method_chain :query_parameters, :facebooker
end
else
class ActionController::Request
def query_parameters_with_facebooker
if request_parameters.blank?
query_parameters_without_facebooker
else
(query_parameters_without_facebooker||{}).reject {|key,value| key.to_s =~ /^fb_sig/}
end
end
alias_method_chain :query_parameters, :facebooker
end
end
Mime::Type.register_alias "text/html", :fbml
Mime::Type.register_alias "text/javascript", :fbjs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment