module RorVsWild::Deployment
Public Class Methods
description()
click to toggle source
# File lib/rorvswild/deployment.rb, line 21 def self.description @description end
email()
click to toggle source
# File lib/rorvswild/deployment.rb, line 29 def self.email @email end
load_config(config)
click to toggle source
# File lib/rorvswild/deployment.rb, line 7 def self.load_config(config) read if hash = config[:deployment] @description = hash[:description] @revision = hash[:revision] @author = hash[:author] @email = hash[:email] end end
normalize_string(string)
click to toggle source
# File lib/rorvswild/deployment.rb, line 86 def self.normalize_string(string) if string string = string.strip string.empty? ? nil : string end end
rails()
click to toggle source
# File lib/rorvswild/deployment.rb, line 37 def self.rails Rails.version if defined?(Rails) end
read()
click to toggle source
# File lib/rorvswild/deployment.rb, line 49 def self.read read_from_heroku || read_from_scalingo || read_from_git || read_from_capistrano end
read_from_capistrano()
click to toggle source
# File lib/rorvswild/deployment.rb, line 75 def self.read_from_capistrano return unless File.readable?("REVISION") return unless @revision = File.read("REVISION") return unless stdout = shell("git --git-dir ../../repo log --format=%an%n%ae%n%B -n 1 #{@revision}") lines = stdout.lines @author = normalize_string(lines[0]) @email = normalize_string(lines[1]) @description = lines[2..-1] && normalize_string(lines[2..-1].join) @revision end
read_from_git()
click to toggle source
# File lib/rorvswild/deployment.rb, line 65 def self.read_from_git return unless @revision = normalize_string(shell("git rev-parse HEAD")) return @revision unless log_stdout = shell("git log -1 --pretty=%an%n%ae%n%B") lines = log_stdout.lines @author = normalize_string(lines[0]) @email = normalize_string(lines[1]) @description = lines[2..-1] && normalize_string(lines[2..-1].join) @revision end
read_from_heroku()
click to toggle source
# File lib/rorvswild/deployment.rb, line 55 def self.read_from_heroku return unless ENV["HEROKU_SLUG_COMMIT"] @revision = ENV["HEROKU_SLUG_COMMIT"] @description = ENV["HEROKU_SLUG_DESCRIPTION"] end
read_from_scalingo()
click to toggle source
# File lib/rorvswild/deployment.rb, line 61 def self.read_from_scalingo @revision = ENV["CONTAINER_VERSION"] || ENV["SOURCE_VERSION"] end
revision()
click to toggle source
# File lib/rorvswild/deployment.rb, line 17 def self.revision @revision end
rorvswild()
click to toggle source
# File lib/rorvswild/deployment.rb, line 41 def self.rorvswild RorVsWild::VERSION end
ruby()
click to toggle source
# File lib/rorvswild/deployment.rb, line 33 def self.ruby RUBY_VERSION end
shell(command)
click to toggle source
# File lib/rorvswild/deployment.rb, line 93 def self.shell(command) stdout, stderr, process = Open3.capture3(command) rescue nil stdout if process && process.success? end
to_h()
click to toggle source
# File lib/rorvswild/deployment.rb, line 45 def self.to_h @to_h ||= {revision: revision, description: description, author: author, email: email, ruby: ruby, rails: rails, rorvswild: rorvswild}.compact end