deploy.rb
798 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
38
class Deploy
include Mongoid::Document
include Mongoid::Timestamps
field :username
field :repository
field :environment
field :revision
field :message
index :created_at, Mongo::DESCENDING
embedded_in :app, :inverse_of => :deploys
after_create :resolve_app_errs, :if => :should_resolve_app_errs?
after_create :store_cached_attributes_on_problems
validates_presence_of :username, :environment
def resolve_app_errs
app.problems.unresolved.in_env(environment).each {|problem| problem.resolve!}
end
def short_revision
revision.to_s[0,7]
end
protected
def should_resolve_app_errs?
app.resolve_errs_on_deploy?
end
def store_cached_attributes_on_problems
Problem.where(:app_id => app.id).each(&:cache_app_attributes)
end
end