class Freshenary
Public Class Methods
freshen_up(*fresheners) { |name, freshener, FRESHENING| ... }
click to toggle source
Call the update method on either all or the specified fresheners.
Arguments:
fresheners: (Array)
Example:
>> Freshenary.freshen_up => nil
# File lib/freshenary.rb, line 16 def self.freshen_up(*fresheners, &block) if fresheners.empty? fresheners = Freshener.all else Freshener.ensure_installed!(*fresheners) fresheners = Freshener.instances_of(*fresheners) end duration = Time.duration_of do fresheners.each do |name, freshener| if freshener.needs_freshening? cleaning = false begin yield name, freshener, Freshenary::Status::FRESHENING if block_given? freshener.freshen if freshener.respond_to? :cleanup yield name, freshener, Freshenary::Status::CLEANING_UP if block_given? cleaning = true freshener.cleanup(true) end yield name, freshener, Freshenary::Status::FRESHENED if block_given? rescue Freshen::ExecutableError => e if false == cleaning and freshener.respond_to? :cleanup yield name, freshener, Freshenary::Status::CLEANING_UP if block_given? freshener.cleanup(false) end raise e end else yield name, freshener, Freshenary::Status::SKIPPED if block_given? end end end end