class SiteHealth::FacebookShareLink

Constants

DEPRECATION_NOTICE
DOC_REF
DOC_URL

Public Instance Methods

should_check?() click to toggle source
Calls superclass method SiteHealth::Checker#should_check?
# File lib/site_health/checkers/facebook_share_link.rb, line 53
def should_check?
  return false unless super
  return false unless look_like_facebook_share_url?

  true
end

Protected Instance Methods

check() click to toggle source
# File lib/site_health/checkers/facebook_share_link.rb, line 62
def check
  unless url.absolute?
    temp_url = url.to_s.start_with?('//') ? URI.parse("http:#{url}") : url

    unless temp_url.absolute?
      return add_issue_type(:not_absolute_url)
    end
  end

  if url.path.include?('/share')
    return check_url_deprecated
  end

  check_url
end
look_like_facebook_share_url?() click to toggle source

@return [Boolean] true if the link looks like a Facebook share URL

# File lib/site_health/checkers/facebook_share_link.rb, line 79
def look_like_facebook_share_url?
  base_url = "#{url.host}#{url.path}"

  base_url.include?('facebook.com/share') ||
    base_url.include?('facebook.com/dialog/feed')
end

Private Instance Methods

check_url() click to toggle source
# File lib/site_health/checkers/facebook_share_link.rb, line 92
def check_url
  unless query.key?('app_id')
    add_issue_type(:app_id_query_param)
  end

  # IIRC the only valid values for a regular web page are page and popup
  unless query['display'] == 'page' || query['display'] == 'popup'
    add_issue_type(:display_query_param)
  end

  if query['link'] && !Link.valid?(query['link'])
    add_issue_type(:link_query_param)
  end

  if query['redirect_uri'] && !Link.valid?(query['redirect_uri'])
    add_issue_type(:redirect_uri_query_param)
  end
end
check_url_deprecated() click to toggle source
# File lib/site_health/checkers/facebook_share_link.rb, line 111
def check_url_deprecated
  add_issue_type(:deprecated_url_style)

  unless url.path.include?('/sharer/sharer.php') || url.path.include?('/sharer.php')
    add_issue_type(:sharer_path)
  end

  unless Link.valid?(query['u'])
    add_issue_type(:u_query_param)
  end
end
query() click to toggle source
# File lib/site_health/checkers/facebook_share_link.rb, line 88
def query
  @query ||= URI.decode_www_form(url.query.to_s).to_h
end