module Clemency
Constants
- VERSION
Public Class Methods
config()
click to toggle source
# File lib/clemency.rb, line 15 def self.config @config end
configure(&blk)
click to toggle source
# File lib/clemency.rb, line 44 def self.configure(&blk) @config.instance_eval(&blk) end
define_release(&blk)
click to toggle source
# File lib/clemency.rb, line 23 def self.define_release(&blk) release = Release.new release.instance_eval(&blk) Clemency.releases[release.get(:version)] = release release end
latest_release()
click to toggle source
# File lib/clemency.rb, line 34 def self.latest_release latest_verion = @releases.keys.sort{|a, b| Gem::Version.new(a) <=> Gem::Version.new(b) }.last puts latest_verion @releases.fetch(latest_verion, nil) end
load_config()
click to toggle source
# File lib/clemency.rb, line 30 def self.load_config load "#{Rails.root}/config/clemency.rb" end
load_release_files()
click to toggle source
# File lib/clemency.rb, line 40 def self.load_release_files Dir.glob("#{Rails.root}/releases/*.rb").each { |f| load f } end
migrate!(version)
click to toggle source
# File lib/clemency.rb, line 48 def self.migrate!(version) puts "Clemency is migrating release #{version}" release = @releases.fetch(version, nil) if release.nil? puts "We could not find release #{version}" return end @config.call!(:before_up, release) release.call!(:up, release) @config.call!(:after_up, release) end
releases()
click to toggle source
# File lib/clemency.rb, line 19 def self.releases @releases end
rollback!(version)
click to toggle source
# File lib/clemency.rb, line 60 def self.rollback!(version) puts "Clemency is migrating release #{version}" release = @releases.fetch(version, nil) if release.nil? puts "We could not find release #{version}" return end @config.call!(:before_down, release) release.call!(:down, release) @config.call!(:after_down, release) end
to_markdown()
click to toggle source
# File lib/clemency.rb, line 72 def self.to_markdown @releases.map { |release| release.to_markdown }.join("\n\n") end