55 lines
1.6 KiB
Ruby
55 lines
1.6 KiB
Ruby
# Facebooker2
|
|
require "mogli"
|
|
|
|
module Facebooker2
|
|
class NotConfigured < Exception; end
|
|
class << self
|
|
attr_accessor :api_key, :secret, :app_id, :canvas_page_name
|
|
end
|
|
|
|
def self.secret
|
|
@secret || raise_unconfigured_exception
|
|
end
|
|
|
|
def self.app_id
|
|
@app_id || raise_unconfigured_exception
|
|
end
|
|
|
|
def self.raise_unconfigured_exception
|
|
raise NotConfigured.new("No configuration provided for Facebooker2. Either set the app_id and secret or call Facebooker2.load_facebooker_yaml in an initializer")
|
|
end
|
|
|
|
def self.configuration=(hash)
|
|
self.api_key = hash[:api_key]
|
|
self.secret = hash[:secret]
|
|
self.app_id = hash[:app_id]
|
|
self.canvas_page_name = hash[:canvas_page_name]
|
|
end
|
|
|
|
def self.load_facebooker_yaml
|
|
config = YAML.load(File.read(File.join(::Rails.root,"config","facebooker.yml")))[::Rails.env]
|
|
raise NotConfigured.new("Unable to load configuration for #{::Rails.env} from facebooker.yml. Is it set up?") if config.nil?
|
|
self.configuration = config.with_indifferent_access
|
|
end
|
|
|
|
def self.cast_to_facebook_id(object)
|
|
if object.kind_of?(Mogli::Profile)
|
|
object.id
|
|
elsif object.respond_to?(:facebook_id)
|
|
object.facebook_id
|
|
else
|
|
object
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
require "facebooker2/rails/controller"
|
|
require "facebooker2/rails/controller/canvas_oauth"
|
|
require "facebooker2/rails/helpers/facebook_connect"
|
|
require "facebooker2/rails/helpers/javascript"
|
|
require "facebooker2/rails/helpers/request_forms"
|
|
require "facebooker2/rails/helpers/user"
|
|
require "facebooker2/rails/helpers"
|
|
require "facebooker2/oauth_exception"
|