Refactor methods for environments in project model

This commit is contained in:
Grzegorz Bizon 2016-11-16 10:54:20 +01:00
parent c95b88e649
commit e49229aa04
3 changed files with 15 additions and 7 deletions

View File

@ -37,7 +37,7 @@ class Environment < ActiveRecord::Base
state :stopped
end
def recently_updated_on?(ref)
def recently_updated_on_branch?(ref)
ref.to_s == last_deployment.ref
end

View File

@ -1296,12 +1296,19 @@ class Project < ActiveRecord::Base
.group(:environment_id)
.select(:environment_id)
envs = environments.available.where(id: environment_ids)
environments_found = environments.available
.where(id: environment_ids).to_a
if commit
envs.select { |environment| env.includes_commit?(commit) }
else
envs.select { |environment| env.recently_updated_on?(ref) }
return environments_found unless commit
environments_found.select do |environment|
environment.includes_commit?(commit)
end
end
def environments_recently_updated_on_branch(branch)
environments_for(branch).select do |environment|
environment.recently_updated_on_branch?(branch)
end
end

View File

@ -27,7 +27,8 @@ module Ci
end
def environments
@environments ||= project.environments_for(@ref)
@environments ||= project
.environments_recently_updated_on_branch(@ref)
end
end
end