Module: Clemency
- Defined in:
- lib/clemency.rb,
lib/clemency/railtie.rb,
lib/clemency/release.rb,
lib/clemency/version.rb,
lib/clemency/callbacks.rb,
lib/clemency/configuration.rb,
lib/generators/clemency/install_generator.rb,
lib/generators/clemency/release_generator.rb
Defined Under Namespace
Modules: Generators
Classes: Callbacks, Configuration, Error, Railtie, Release
Constant Summary
collapse
- VERSION =
"0.2.0"
Class Method Summary
collapse
Class Method Details
.config ⇒ Object
15
16
17
|
# File 'lib/clemency.rb', line 15
def self.config
@config
end
|
44
45
46
|
# File 'lib/clemency.rb', line 44
def self.configure(&blk)
@config.instance_eval(&blk)
end
|
.define_release(&blk) ⇒ Object
23
24
25
26
27
28
|
# 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 ⇒ Object
34
35
36
37
38
|
# 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 ⇒ Object
30
31
32
|
# File 'lib/clemency.rb', line 30
def self.load_config
load "#{Rails.root}/config/clemency.rb"
end
|
.load_release_files ⇒ Object
40
41
42
|
# File 'lib/clemency.rb', line 40
def self.load_release_files
Dir.glob("#{Rails.root}/releases/*.rb").each { |f| load f }
end
|
.migrate!(version) ⇒ Object
48
49
50
51
52
53
54
55
56
57
58
|
# 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 ⇒ Object
19
20
21
|
# File 'lib/clemency.rb', line 19
def self.releases
@releases
end
|
.rollback!(version) ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
|
# 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 ⇒ Object
72
73
74
|
# File 'lib/clemency.rb', line 72
def self.to_markdown
@releases.map { |release| release.to_markdown }.join("\n\n")
end
|