Module: ApplicationHelper

Defined in:
app/helpers/application_helper.rb

Instance Method Summary collapse

Instance Method Details

#deployment_percent(deployment) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
# File 'app/helpers/application_helper.rb', line 31

def deployment_percent(deployment)
  lsd = last_successful_duration(deployment)
  if !lsd
    return 100
  elsif !deployment.started?
    return 0
  elsif deployment.duration > lsd
    return 100
  else
    return deployment.duration * 100 / lsd
  end
end

#duration_text(seconds) ⇒ Object



59
60
61
62
63
64
65
66
67
68
# File 'app/helpers/application_helper.rb', line 59

def duration_text(seconds)
  minutes = (seconds / 60.floor)
  seconds %= 60
  
  string = ""
  string << "#{minutes}m " if minutes
  string << "#{seconds}s"
  
  string
end

#in_progressObject



7
8
9
# File 'app/helpers/application_helper.rb', line 7

def in_progress
  @in_progress ||= Deployment.in_progress.all
end

#last_successful_duration(deployment) ⇒ Object



11
12
13
14
# File 'app/helpers/application_helper.rb', line 11

def last_successful_duration(deployment)
  deployment.environment.last_successful_deployment &&
    deployment.environment.last_successful_deployment.duration
end

#progress_classes(deployment) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/helpers/application_helper.rb', line 16

def progress_classes(deployment)
  lsd = last_successful_duration(deployment)
  ["progress", "progress-striped"].tap do |classes|
    if !lsd
      classes << "progress-warning"
    elsif !deployment.started?
    elsif deployment.duration > lsd
      classes << "progress-danger"
    else
      classes << "progress-success"
    end
    classes << "active" unless deployment.completed?
  end
end

#recent_failuresObject



3
4
5
# File 'app/helpers/application_helper.rb', line 3

def recent_failures
  @recent_failures ||= Environment.includes(:last_deployment).map(&:last_deployment).compact.select(&:failed?)
end

#time_remaining(deployment) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'app/helpers/application_helper.rb', line 44

def time_remaining(deployment)
  if last_successful_deployment = deployment.environment.last_successful_deployment
    time_remaining = last_successful_deployment.duration - deployment.duration
    if time_remaining < 0
      "unknown"
    elsif time_remaining < 60
      "< 1 minute"
    else
      pluralize((time_remaining / 60).round, 'minute')
    end
  else
    "unknown"
  end
end