rain 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE.md +20 -0
- data/README.md +128 -0
- data/Rakefile +38 -0
- data/bin/rain +11 -0
- data/lib/generators/rain/install/USAGE +10 -0
- data/lib/generators/rain/install/install_generator.rb +24 -0
- data/lib/generators/rain/install/templates/versions.yml +3 -0
- data/lib/rain.rb +17 -0
- data/lib/rain/capistrano.rb +25 -0
- data/lib/rain/config.rb +21 -0
- data/lib/rain/deployer.rb +54 -0
- data/lib/rain/git_tools.rb +109 -0
- data/lib/rain/git_tools/release_tag.rb +46 -0
- data/lib/rain/semantic_version.rb +20 -0
- data/lib/rain/version.rb +3 -0
- data/lib/tasks/rain_tasks.rake +5 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +15 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +59 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +20 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +58 -0
- data/test/dummy/config/versions.yml +4 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/rain/config_test.rb +13 -0
- data/test/rain/deployer_test.rb +49 -0
- data/test/rain/git_tools/release_tag_test.rb +21 -0
- data/test/rain/git_tools_test.rb +101 -0
- data/test/rain_test.rb +7 -0
- data/test/test_helper.rb +35 -0
- metadata +304 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class GitTools::ReleaseTagTest < ActiveSupport::TestCase
|
4
|
+
include GitTools
|
5
|
+
|
6
|
+
describe "ReleaseTag: Comparison" do
|
7
|
+
should "compare numerically with the other tag" do
|
8
|
+
pre_release = ReleaseTag.new("rel_0.5.0.0")
|
9
|
+
final_release = ReleaseTag.new("rel_1.0.0.0")
|
10
|
+
|
11
|
+
refute_equal pre_release, final_release
|
12
|
+
|
13
|
+
pre_release.major = 1
|
14
|
+
pre_release.minor = 0
|
15
|
+
pre_release.patch = 0
|
16
|
+
pre_release.other = 0
|
17
|
+
|
18
|
+
assert_equal pre_release, final_release
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'rain/git_tools'
|
3
|
+
|
4
|
+
class Rain::GitToolsTest < ActiveSupport::TestCase
|
5
|
+
include GitTools
|
6
|
+
|
7
|
+
describe "GitTools: working_directory_copasetic?" do
|
8
|
+
should "return true when forced" do
|
9
|
+
assert working_directory_copasetic?(force: true)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "GitTools: on_master?" do
|
14
|
+
should "return true when we are on the master branch" do
|
15
|
+
assert %x(git checkout master > /dev/null), "master not checked out"
|
16
|
+
assert on_master?
|
17
|
+
end
|
18
|
+
|
19
|
+
should "return false when we are on any other branch" do
|
20
|
+
original_branch = %x(git branch | grep '*').gsub! /\*\s|\n/, ""
|
21
|
+
assert_equal 'master', original_branch
|
22
|
+
assert %x(git checkout -b some-branch > /dev/null), "some-branch not checked out"
|
23
|
+
refute on_master?
|
24
|
+
|
25
|
+
assert %x(git checkout #{original_branch} > /dev/null), "master not checked out"
|
26
|
+
assert %x(git branch -d some-branch > /dev/null), "some-branch was not deleted"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "GitTools: no_changes_pending?" do
|
31
|
+
should "return false when there are uncommitted changes" do
|
32
|
+
assert %x(echo "test" >> LICENSE.md), "LICENSE.md was not edited"
|
33
|
+
refute no_changes_pending?, "LICENSE.md is still clean"
|
34
|
+
end
|
35
|
+
|
36
|
+
should "return true when the directory is clean" do
|
37
|
+
assert %x(git checkout HEAD LICENSE.md), "LICENSE.md not reset to HEAD state"
|
38
|
+
assert no_changes_pending?, "LICENSE.md is still dirty. Make sure you commit everything else!"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "GitTools: last_release_tag" do
|
43
|
+
setup { %x(git tag rel_9.9.999) }
|
44
|
+
|
45
|
+
should "return the last release_tag entered into git" do
|
46
|
+
assert_equal ReleaseTag.latest, last_release_tag
|
47
|
+
end
|
48
|
+
|
49
|
+
teardown { %x(git tag -d rel_9.9.999) }
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "GitTools: git_name" do
|
53
|
+
setup { @original_name = %x(git config user.name); %x(git config user.name "OJ Simpson") }
|
54
|
+
|
55
|
+
should "return the name set in ~/.gitconfig" do
|
56
|
+
assert_equal "OJ Simpson", git_name
|
57
|
+
end
|
58
|
+
|
59
|
+
teardown { %x(git config user.name "#{@original_name}") }
|
60
|
+
end
|
61
|
+
|
62
|
+
describe "GitTools: tagged_latest_version?" do
|
63
|
+
setup { %x(git tag rel_0.0.1) }
|
64
|
+
|
65
|
+
should "return true when the current tag and the latest-released tag are the same" do
|
66
|
+
refute_nil ReleaseTag.current
|
67
|
+
refute_nil ReleaseTag.latest
|
68
|
+
assert tagged_latest_version?, "Latest version not tagged"
|
69
|
+
end
|
70
|
+
|
71
|
+
should "return false when the current tag has not been pushed" do
|
72
|
+
assert %x(git tag rel_0.0.2), "Couldn't create latest tag"
|
73
|
+
refute tagged_latest_version?, "Latest version tagged"
|
74
|
+
assert %x(git tag -d rel_0.0.2), "Couldn't delete tag"
|
75
|
+
end
|
76
|
+
|
77
|
+
teardown { %x(git tag -d rel_0.0.1) }
|
78
|
+
end
|
79
|
+
|
80
|
+
#describe "GitTools: push_tag" do
|
81
|
+
#should "push the tag to origin/master"
|
82
|
+
#should "log an error if tag is nil"
|
83
|
+
#end
|
84
|
+
|
85
|
+
#describe "GitTools: run_cmd" do
|
86
|
+
#should "execute the given shell command"
|
87
|
+
#end
|
88
|
+
|
89
|
+
#describe "GitTools: versions_path" do
|
90
|
+
#should "return the full path to the versions.yml file"
|
91
|
+
#end
|
92
|
+
|
93
|
+
#describe "GitTools: versions_hash" do
|
94
|
+
#should "return a YAML Hash of the versions.yml file"
|
95
|
+
#end
|
96
|
+
|
97
|
+
#describe "GitTools: update_release_tag" do
|
98
|
+
#should "write the versions_hash to versions.yml"
|
99
|
+
#should "commit and push that change to origin/master"
|
100
|
+
#end
|
101
|
+
end
|
data/test/rain_test.rb
ADDED
data/test/test_helper.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# Configure Rails Environment
|
2
|
+
ENV["RAILS_ENV"] = "test"
|
3
|
+
|
4
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
5
|
+
require "rails/test_help"
|
6
|
+
|
7
|
+
Rails.backtrace_cleaner.remove_silencers!
|
8
|
+
|
9
|
+
require 'bundler'
|
10
|
+
Bundler.require :default, :development
|
11
|
+
|
12
|
+
# Load support files
|
13
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
14
|
+
|
15
|
+
# Load fixtures from the engine
|
16
|
+
if ActiveSupport::TestCase.method_defined?(:fixture_path=)
|
17
|
+
ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
|
18
|
+
end
|
19
|
+
|
20
|
+
class ActiveSupport::TestCase
|
21
|
+
setup do
|
22
|
+
%x(mkdir -p config)
|
23
|
+
File.open File.expand_path('./config/versions.yml'), 'w' do |f|
|
24
|
+
f.puts <<YAML
|
25
|
+
---
|
26
|
+
stage: rel_0.0.1
|
27
|
+
production: rel_0.0.1
|
28
|
+
YAML
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
teardown do
|
33
|
+
%(rm -rf config/)
|
34
|
+
end
|
35
|
+
end
|
metadata
ADDED
@@ -0,0 +1,304 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rain
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Tom Scott
|
9
|
+
- Rob Di Marco
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2012-11-20 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rails
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ~>
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.2.8
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 3.2.8
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: thor
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
type: :runtime
|
40
|
+
prerelease: false
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: capistrano
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: minitest
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
type: :development
|
72
|
+
prerelease: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: guard-minitest
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ! '>='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
type: :development
|
88
|
+
prerelease: false
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: guard-bundler
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ! '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pg
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
115
|
+
requirements:
|
116
|
+
- - ! '>='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
123
|
+
requirements:
|
124
|
+
- - ! '>='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
- !ruby/object:Gem::Dependency
|
128
|
+
name: mini_specunit
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
131
|
+
requirements:
|
132
|
+
- - ! '>='
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '0'
|
135
|
+
type: :development
|
136
|
+
prerelease: false
|
137
|
+
version_requirements: !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
name: mini_shoulda
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
type: :development
|
152
|
+
prerelease: false
|
153
|
+
version_requirements: !ruby/object:Gem::Requirement
|
154
|
+
none: false
|
155
|
+
requirements:
|
156
|
+
- - ! '>='
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: jquery-rails
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
none: false
|
163
|
+
requirements:
|
164
|
+
- - ! '>='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
type: :development
|
168
|
+
prerelease: false
|
169
|
+
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
171
|
+
requirements:
|
172
|
+
- - ! '>='
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
175
|
+
description: ! " Rain is a single-command deployment engine for Rails applications.
|
176
|
+
It defines a set of conventions for\n deploying the same app version to multiple
|
177
|
+
servers in multiple environments. Leveraging Git tags, it\n automatically increments
|
178
|
+
versions according to the Semantic Versioning standard and deploys those versions\n
|
179
|
+
\ using Capistrano to as many servers and environments as you wish.\"\n"
|
180
|
+
email:
|
181
|
+
- tom.scott@elocal.com
|
182
|
+
- rob@elocal.com
|
183
|
+
executables:
|
184
|
+
- rain
|
185
|
+
extensions: []
|
186
|
+
extra_rdoc_files: []
|
187
|
+
files:
|
188
|
+
- lib/generators/rain/install/install_generator.rb
|
189
|
+
- lib/generators/rain/install/templates/versions.yml
|
190
|
+
- lib/generators/rain/install/USAGE
|
191
|
+
- lib/rain/capistrano.rb
|
192
|
+
- lib/rain/config.rb
|
193
|
+
- lib/rain/deployer.rb
|
194
|
+
- lib/rain/git_tools/release_tag.rb
|
195
|
+
- lib/rain/git_tools.rb
|
196
|
+
- lib/rain/semantic_version.rb
|
197
|
+
- lib/rain/version.rb
|
198
|
+
- lib/rain.rb
|
199
|
+
- lib/tasks/rain_tasks.rake
|
200
|
+
- LICENSE.md
|
201
|
+
- Rakefile
|
202
|
+
- README.md
|
203
|
+
- test/dummy/app/assets/javascripts/application.js
|
204
|
+
- test/dummy/app/assets/stylesheets/application.css
|
205
|
+
- test/dummy/app/controllers/application_controller.rb
|
206
|
+
- test/dummy/app/helpers/application_helper.rb
|
207
|
+
- test/dummy/app/views/layouts/application.html.erb
|
208
|
+
- test/dummy/config/application.rb
|
209
|
+
- test/dummy/config/boot.rb
|
210
|
+
- test/dummy/config/database.yml
|
211
|
+
- test/dummy/config/environment.rb
|
212
|
+
- test/dummy/config/environments/development.rb
|
213
|
+
- test/dummy/config/environments/production.rb
|
214
|
+
- test/dummy/config/environments/test.rb
|
215
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
216
|
+
- test/dummy/config/initializers/inflections.rb
|
217
|
+
- test/dummy/config/initializers/mime_types.rb
|
218
|
+
- test/dummy/config/initializers/secret_token.rb
|
219
|
+
- test/dummy/config/initializers/session_store.rb
|
220
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
221
|
+
- test/dummy/config/locales/en.yml
|
222
|
+
- test/dummy/config/routes.rb
|
223
|
+
- test/dummy/config/versions.yml
|
224
|
+
- test/dummy/config.ru
|
225
|
+
- test/dummy/public/404.html
|
226
|
+
- test/dummy/public/422.html
|
227
|
+
- test/dummy/public/500.html
|
228
|
+
- test/dummy/public/favicon.ico
|
229
|
+
- test/dummy/Rakefile
|
230
|
+
- test/dummy/README.rdoc
|
231
|
+
- test/dummy/script/rails
|
232
|
+
- test/rain/config_test.rb
|
233
|
+
- test/rain/deployer_test.rb
|
234
|
+
- test/rain/git_tools/release_tag_test.rb
|
235
|
+
- test/rain/git_tools_test.rb
|
236
|
+
- test/rain_test.rb
|
237
|
+
- test/test_helper.rb
|
238
|
+
- bin/rain
|
239
|
+
homepage: http://github.com/eLocal/rain
|
240
|
+
licenses: []
|
241
|
+
post_install_message:
|
242
|
+
rdoc_options: []
|
243
|
+
require_paths:
|
244
|
+
- lib
|
245
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
246
|
+
none: false
|
247
|
+
requirements:
|
248
|
+
- - ! '>='
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
251
|
+
segments:
|
252
|
+
- 0
|
253
|
+
hash: 206482086383758645
|
254
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
255
|
+
none: false
|
256
|
+
requirements:
|
257
|
+
- - ! '>='
|
258
|
+
- !ruby/object:Gem::Version
|
259
|
+
version: '0'
|
260
|
+
segments:
|
261
|
+
- 0
|
262
|
+
hash: 206482086383758645
|
263
|
+
requirements: []
|
264
|
+
rubyforge_project:
|
265
|
+
rubygems_version: 1.8.24
|
266
|
+
signing_key:
|
267
|
+
specification_version: 3
|
268
|
+
summary: Rain is a single-command deployment engine for Rails applications.
|
269
|
+
test_files:
|
270
|
+
- test/dummy/app/assets/javascripts/application.js
|
271
|
+
- test/dummy/app/assets/stylesheets/application.css
|
272
|
+
- test/dummy/app/controllers/application_controller.rb
|
273
|
+
- test/dummy/app/helpers/application_helper.rb
|
274
|
+
- test/dummy/app/views/layouts/application.html.erb
|
275
|
+
- test/dummy/config/application.rb
|
276
|
+
- test/dummy/config/boot.rb
|
277
|
+
- test/dummy/config/database.yml
|
278
|
+
- test/dummy/config/environment.rb
|
279
|
+
- test/dummy/config/environments/development.rb
|
280
|
+
- test/dummy/config/environments/production.rb
|
281
|
+
- test/dummy/config/environments/test.rb
|
282
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
283
|
+
- test/dummy/config/initializers/inflections.rb
|
284
|
+
- test/dummy/config/initializers/mime_types.rb
|
285
|
+
- test/dummy/config/initializers/secret_token.rb
|
286
|
+
- test/dummy/config/initializers/session_store.rb
|
287
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
288
|
+
- test/dummy/config/locales/en.yml
|
289
|
+
- test/dummy/config/routes.rb
|
290
|
+
- test/dummy/config/versions.yml
|
291
|
+
- test/dummy/config.ru
|
292
|
+
- test/dummy/public/404.html
|
293
|
+
- test/dummy/public/422.html
|
294
|
+
- test/dummy/public/500.html
|
295
|
+
- test/dummy/public/favicon.ico
|
296
|
+
- test/dummy/Rakefile
|
297
|
+
- test/dummy/README.rdoc
|
298
|
+
- test/dummy/script/rails
|
299
|
+
- test/rain/config_test.rb
|
300
|
+
- test/rain/deployer_test.rb
|
301
|
+
- test/rain/git_tools/release_tag_test.rb
|
302
|
+
- test/rain/git_tools_test.rb
|
303
|
+
- test/rain_test.rb
|
304
|
+
- test/test_helper.rb
|