class OkComputer::AppVersionCheck

Display app version SHA

Constants

UnknownRevision

Attributes

env[RW]
file[RW]
transform[RW]

Public Class Methods

new(file: "REVISION", env: "SHA", &transform) click to toggle source

Public: Initialize a check for a backed-up Sidekiq queue

file - The path of the version file to check env - The key in ENV to check for a revision SHA transform - The block to optionally transform the version string

# File lib/ok_computer/built_in_checks/app_version_check.rb, line 17
def initialize(file: "REVISION", env: "SHA", &transform)
  self.file = file
  self.env = env
  self.transform = transform || proc { |v| v }
end

Public Instance Methods

check() click to toggle source

Public: Return the application version

# File lib/ok_computer/built_in_checks/app_version_check.rb, line 24
def check
  mark_message "Version: #{version}"
rescue UnknownRevision
  mark_failure
  mark_message "Unable to determine version"
end
version() click to toggle source

Public: The application version

Returns a String

# File lib/ok_computer/built_in_checks/app_version_check.rb, line 34
def version
  transform.call(version_from_env || version_from_file || raise(UnknownRevision))
end

Private Instance Methods

version_from_env() click to toggle source

Private: Version stored in environment variable

# File lib/ok_computer/built_in_checks/app_version_check.rb, line 41
def version_from_env
  ENV[env]
end
version_from_file() click to toggle source

Private: Version stored in Capistrano revision file

# File lib/ok_computer/built_in_checks/app_version_check.rb, line 46
def version_from_file
  path = Rails.root.join(file)
  File.read(path).chomp if File.exist?(path)
end