Sha256: 5623dfe8ad3a4a4493893d55e05d66f167d0455d21243d8c2c5d0cac7912c23b

Contents?: true

Size: 970 Bytes

Versions: 14

Compression:

Stored size: 970 Bytes

Contents

module Errdo
  class Exception

    def initialize(env)
      user_parser = Errdo::Models::UserParser.new(env)
      @env_parser = Errdo::Models::ErrorEnvParser.new(env, user_parser)

      error = nil
      error = create_errors(@env_parser) unless Errdo.error_name.blank?
      unless too_soon? error
        Errdo.notify_with.each do |notifier|
          notifier.notify(@env_parser, error: error)
        end
      end
    end

    private

    def create_errors(parser)
      error = Errdo::Error.find_or_create(parser.error_hash)
      error.try(:error_occurrences).try(:create, parser.error_occurrence_hash)
      return error
    end

    def too_soon?(error)
      return false if error.nil?

      last_occurrence = error.error_occurrences.offset(1).order("created_at asc").last
      if last_occurrence && Errdo.ignore_time && last_occurrence.created_at > (Time.current - Errdo.ignore_time)
        return true
      end
      return false
    end

  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
errdo-0.12.14 app/models/errdo/exception.rb
errdo-0.12.13 app/models/errdo/exception.rb
errdo-0.12.12 app/models/errdo/exception.rb
errdo-0.12.11 app/models/errdo/exception.rb
errdo-0.12.10 app/models/errdo/exception.rb
errdo-0.12.9 app/models/errdo/exception.rb
errdo-0.12.8 app/models/errdo/exception.rb
errdo-0.12.7 app/models/errdo/exception.rb
errdo-0.12.6 app/models/errdo/exception.rb
errdo-0.12.5 app/models/errdo/exception.rb
errdo-0.12.4 app/models/errdo/exception.rb
errdo-0.12.3 app/models/errdo/exception.rb
errdo-0.12.2 app/models/errdo/exception.rb
errdo-0.12.1 app/models/errdo/exception.rb