err.rb
735 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class Err
include Mongoid::Document
include Mongoid::Timestamps
field :klass
field :message
field :component
field :action
field :environment
field :resolved, :type => Boolean, :default => false
referenced_in :project
embeds_many :notices
validates_presence_of :klass, :environment
scope :resolved, where(:resolved => true)
scope :unresolved, where(:resolved => false)
def self.for(attrs)
project = attrs.delete(:project)
project.errs.unresolved.where(attrs).first || project.errs.create!(attrs)
end
def resolve!
self.update_attributes(:resolved => true)
end
def unresolved?
!resolved?
end
def last_notice_at
notices.last.try(:created_at)
end
end