2015-02-24 23:10:20 +00:00
|
|
|
module FacebookHelper
|
|
|
|
|
|
|
|
# Returns a facebook-specific image for the current page.
|
|
|
|
def facebook_meta_image
|
|
|
|
resource = get_resource
|
|
|
|
@fb_meta_image ||= avatar_url(resource, :big) if resource.respond_to?(:avatar)
|
2015-02-26 22:39:51 +00:00
|
|
|
@fb_meta_image ||= asset_url('fb-image.png')
|
2015-02-24 23:10:20 +00:00
|
|
|
|
|
|
|
@fb_meta_image
|
|
|
|
end
|
|
|
|
|
|
|
|
# Returns a facebook-specific URL for the current page.
|
|
|
|
def facebook_meta_url
|
|
|
|
@fb_meta_url ||= fb_like_url(get_resource)
|
|
|
|
end
|
|
|
|
|
|
|
|
# Returns the facebook application id.
|
|
|
|
def facebook_meta_app_id
|
|
|
|
APP_CONFIG['keys']['facebook']['id']
|
|
|
|
end
|
|
|
|
|
|
|
|
# Returns the facebook site name - used for the site:og_name meta tag.
|
|
|
|
def facebook_site_name
|
|
|
|
APP_CONFIG['project_name']
|
|
|
|
end
|
|
|
|
|
|
|
|
# Creates a 'like' URL for the given object instance.
|
|
|
|
def fb_like_url(object=nil)
|
|
|
|
# All likes for resources go to referrers#like, which redirects them
|
|
|
|
# to the appropriate target.
|
|
|
|
begin
|
|
|
|
# Make sure we're using the correct domain. This should happen automatically,
|
|
|
|
# but is a bit flaky in cucumber so set it explicitly to be safe.
|
|
|
|
#domain = current_site.present? ? current_site.domain : request.host
|
|
|
|
url = object.respond_to?(:fb_like_url) ?
|
|
|
|
object.fb_like_url : polymorphic_url(object)#, host: domain)
|
|
|
|
rescue
|
|
|
|
end if object
|
|
|
|
url ||= request.url
|
|
|
|
# Clean up unnecessary params
|
|
|
|
url.gsub!(/\?.*/, '')
|
|
|
|
url << "?page=#{params[:page]}" if params[:page].to_i > 1
|
|
|
|
url
|
|
|
|
end
|
|
|
|
|
|
|
|
protected
|
|
|
|
|
|
|
|
# Gets the current resource.
|
|
|
|
def get_resource
|
|
|
|
case controller
|
|
|
|
when Groups::BaseController
|
|
|
|
@group
|
|
|
|
when Users::BaseController
|
|
|
|
@user
|
|
|
|
when Projects::Git::BaseController
|
|
|
|
@project
|
|
|
|
else
|
|
|
|
instance_variable_get "@#{controller_name.singularize}"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|