Sha256: 0c678fff0f02920fc9bb8d59a96b8d4eab923a285edd965bf038b72ea777d07d

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

class ErrorReporter
  def self.report_error(sender_name, error, facebook_connection: nil)
    raise error unless report_error?

    Storage.set(:last_error_reported_time, Time.now)

    screenshot = include_screenshot?(facebook_connection) ? create_screenshot(facebook_connection) : nil

    Senders.by_name(sender_name).send_error(error, screenshot: screenshot)
    raise error
  end

  private_class_method def self.include_screenshot?(facebook_connection)
    Config.option(:errors, :include_screenshot) && facebook_connection.present?
  end

  private_class_method def self.create_screenshot(facebook_connection)
    facebook_connection.driver.screenshot_as(:png)
  rescue StandardError
    nil
  end

  private_class_method def self.report_error?
    min_minutes_between_reports = Config.option(:errors, :min_minutes_between_reports, default: 0)

    last_error_reported_time = Storage.get(:last_error_reported_time, default: Time.new(2000))

    next_report_time = last_error_reported_time + min_minutes_between_reports.minutes

    Time.now > next_report_time
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fuck_facebook-0.5.0 src/error_reporter.rb