problems_helper.rb 1.01 KB
module ProblemsHelper
  def problem_confirm
    Errbit::Config.confirm_resolve_err === false ? nil : 'Seriously?'
  end

  def truncated_problem_message(problem)
    unless (msg = problem.message).blank?
      # Truncate & insert invisible chars so that firefox can emulate 'word-wrap: break-word' CSS rule
      truncate(msg, :length => 300).scan(/.{1,5}/).map { |s| h(s) }.join("​").html_safe
    end
  end

  def gravatar_tag(email, options = {})
    return nil unless email.present?

    image_tag gravatar_url(email, options), :alt => email, :class => 'gravatar'
  end

  def gravatar_url(email, options = {})
    return nil unless email.present?

    default_options = {
      :d => Errbit::Config.gravatar_default,
    }
    options.reverse_merge! default_options
    params = options.extract!(:s, :d).delete_if { |k, v| v.blank? }
    email_hash = Digest::MD5.hexdigest(email)
    url = request.ssl? ? "https://secure.gravatar.com" : "http://www.gravatar.com"
    "#{url}/avatar/#{email_hash}?#{params.to_query}"
  end
end