module Capistrano::ReleaseParty
Public Class Methods
extended(configuration)
click to toggle source
# File lib/release_party/release_party.rb, line 26 def self.extended(configuration) configuration.load do before 'deploy', 'release_party:starting' after 'deploy', 'release_party:finished' namespace :release_party do task :starting do env = Capistrano::ReleaseParty.instance(Capistrano::ReleaseParty, configuration) do |environment| begin environment.load_release_file rescue ReleaseFile::FileNotFoundError => error announce error.message end end announce "Beginning deployment, project details obtained." # Record when the release began env.release_started = Time.now # Load all the celebrations env.celebrations = \ Celebration.celebrations.collect do |celebration_class| begin celebration_class.new(env).tap(&:before_deploy) rescue LoadError => error announce "Unable to load #{celebration_class}, message: #{error.message} you may have to install a gem" rescue ArgumentError => error announce error.message end end.compact self end task :finished do env = Capistrano::ReleaseParty.instance announce "Performing post deploy celebrations!" # Record when the release finished env.release_finished = Time.now # Do after deploy env.celebrations.each(&:after_deploy) self end end end end
instance(party = nil, cap_config = nil) { |env| ... }
click to toggle source
Singleton instance of the release party environment
# File lib/release_party/release_party.rb, line 16 def self.instance(party = nil, cap_config = nil, &block) return @env unless @env.nil? raise ArgumentError, "Release finished without being started" if party.nil? || cap_config.nil? @env = Environment.new party, cap_config yield(@env) if block_given? @env end