shoe 0.6.2 → 0.7.0
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/{data/shoe/templates/gitignore.erb → .gitignore} +1 -1
- data/.rvmrc +1 -0
- data/CHANGELOG.rdoc +9 -1
- data/Gemfile +2 -0
- data/Gemfile.lock +39 -0
- data/README.rdoc +20 -72
- data/Rakefile +6 -0
- data/TODO.rdoc +10 -5
- data/lib/shoe.rb +29 -13
- data/lib/shoe/extensions.rb +0 -4
- data/lib/shoe/extensions/specification.rb +0 -4
- data/lib/shoe/extensions/validator.rb +40 -11
- data/lib/shoe/tasks.rb +13 -22
- data/lib/shoe/tasks/clean.rb +4 -4
- data/lib/shoe/tasks/compile.rb +2 -4
- data/lib/shoe/tasks/cucumber.rb +5 -9
- data/lib/shoe/tasks/rdoc.rb +2 -3
- data/lib/shoe/tasks/ronn.rb +5 -5
- data/lib/shoe/tasks/{abstract.rb → task.rb} +1 -1
- data/lib/shoe/tasks/test.rb +17 -57
- data/lib/shoe/util/minitest_colors.rb +60 -0
- data/lib/shoe/version.rb +3 -0
- data/man/shoe.3 +5 -11
- data/man/shoe.3.ronn +4 -13
- data/shoe.gemspec +35 -0
- data/test/helper.rb +6 -12
- data/test/support/assertions.rb +45 -0
- data/test/support/command_runner.rb +11 -0
- data/test/support/declarative_tests.rb +24 -0
- data/test/support/example_project.rb +37 -0
- data/test/support/file_manipulation.rb +43 -0
- data/test/support/gemspec_manipulation.rb +24 -0
- data/test/support/project_files.rb +60 -0
- data/test/support/redgreen.rb +6 -0
- data/test/system/rake_test.rb +124 -0
- metadata +75 -96
- data/bin/shoe +0 -18
- data/data/shoe/templates/application.erb +0 -23
- data/data/shoe/templates/executable.erb +0 -18
- data/data/shoe/templates/extconf.erb +0 -2
- data/data/shoe/templates/extension.erb +0 -25
- data/data/shoe/templates/gemspec.erb +0 -44
- data/data/shoe/templates/gitkeep.erb +0 -0
- data/data/shoe/templates/manpage_1.erb +0 -29
- data/data/shoe/templates/manpage_3.erb +0 -19
- data/data/shoe/templates/module.erb +0 -31
- data/data/shoe/templates/module_test.rb +0 -7
- data/data/shoe/templates/rakefile.erb +0 -3
- data/data/shoe/templates/readme.erb +0 -3
- data/data/shoe/templates/test_helper.erb +0 -9
- data/lib/shoe/extensions/option_parser.rb +0 -52
- data/lib/shoe/extensions/pathname.rb +0 -16
- data/lib/shoe/extensions/source_index.rb +0 -17
- data/lib/shoe/extensions/test_runner.rb +0 -28
- data/lib/shoe/generator.rb +0 -147
- data/lib/shoe/tasks/release.rb +0 -81
- data/man/shoe.1 +0 -63
- data/man/shoe.1.ronn +0 -60
- data/test/extensions/fake_rubygems_server.rb +0 -62
- data/test/extensions/helper_methods.rb +0 -73
- data/test/extensions/isolated_environment.rb +0 -50
- data/test/extensions/test_case.rb +0 -40
- data/test/system/rake_clean_test.rb +0 -36
- data/test/system/rake_compile_test.rb +0 -25
- data/test/system/rake_cucumber_test.rb +0 -51
- data/test/system/rake_rdoc_test.rb +0 -26
- data/test/system/rake_release_test.rb +0 -94
- data/test/system/rake_ronn_test.rb +0 -25
- data/test/system/rake_test_test.rb +0 -45
- data/test/system/shoe_test.rb +0 -79
data/lib/shoe/tasks/release.rb
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
module Shoe
|
2
|
-
module Tasks
|
3
|
-
|
4
|
-
# Defines <tt>`rake release`</tt> to release your gem.
|
5
|
-
#
|
6
|
-
# To release is to: commit, tag, optionally push (with tags), and then
|
7
|
-
# build and push your gem.
|
8
|
-
#
|
9
|
-
# This task is enabled under very specific circumstances, to safeguard
|
10
|
-
# against accidental releases:
|
11
|
-
# 1. Your <tt>version[http://docs.rubygems.org/read/chapter/20#version]</tt> is greater than <tt>0.0.0</tt>.
|
12
|
-
# 2. There is no existing git tag <tt>"v#{version}"</tt>.
|
13
|
-
# 3. You are currently on the <tt>master</tt> branch.
|
14
|
-
#
|
15
|
-
# To configure, adjust the
|
16
|
-
# <tt>version[http://docs.rubygems.org/read/chapter/20#version]</tt> in
|
17
|
-
# your gemspec.
|
18
|
-
#
|
19
|
-
# = Semantic Versioning
|
20
|
-
#
|
21
|
-
# Shoe helps you follow the Tagging Specification of {Semantic
|
22
|
-
# Versioning}[http://semver.org] by tagging your releases as
|
23
|
-
# <tt>"v#{version}"</tt>, prefixing a <tt>"v"</tt> before the version
|
24
|
-
# number.
|
25
|
-
#
|
26
|
-
# Shoe additionally complains if you haven't yet created a <tt>semver</tt>
|
27
|
-
# tag to denote your compliance.
|
28
|
-
class Release < Abstract
|
29
|
-
def active?
|
30
|
-
spec.has_version_greater_than?('0.0.0') &&
|
31
|
-
there_is_no_tag_for(version_tag(spec.version)) &&
|
32
|
-
we_are_on_the_master_branch
|
33
|
-
end
|
34
|
-
|
35
|
-
def define
|
36
|
-
desc "Release #{spec.full_name}."
|
37
|
-
task :release do
|
38
|
-
sh "git commit -a -m 'Release #{spec.version}'"
|
39
|
-
sh "git tag #{version_tag(spec.version)}"
|
40
|
-
|
41
|
-
if there_is_no_tag_for('semver')
|
42
|
-
warn "WARN: Please `git tag semver`. <http://semver.org/>"
|
43
|
-
end
|
44
|
-
|
45
|
-
if there_is_a_remote_called('origin')
|
46
|
-
sh 'git push origin master'
|
47
|
-
sh 'git push --tags origin'
|
48
|
-
end
|
49
|
-
|
50
|
-
sh "gem build #{spec.name}.gemspec"
|
51
|
-
sh "gem push #{spec.file_name}"
|
52
|
-
end
|
53
|
-
|
54
|
-
namespace :prepare do
|
55
|
-
task :release
|
56
|
-
end
|
57
|
-
|
58
|
-
task :release => 'prepare:release'
|
59
|
-
end
|
60
|
-
|
61
|
-
private
|
62
|
-
|
63
|
-
def there_is_a_remote_called(name)
|
64
|
-
`git remote`.to_a.include?("#{name}\n")
|
65
|
-
end
|
66
|
-
|
67
|
-
def there_is_no_tag_for(tag)
|
68
|
-
!`git tag`.to_a.include?("#{tag}\n")
|
69
|
-
end
|
70
|
-
|
71
|
-
def version_tag(version)
|
72
|
-
"v#{spec.version}"
|
73
|
-
end
|
74
|
-
|
75
|
-
def we_are_on_the_master_branch
|
76
|
-
`git symbolic-ref HEAD`.strip == 'refs/heads/master'
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
end
|
81
|
-
end
|
data/man/shoe.1
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
.\" generated with Ronn/v0.5
|
2
|
-
.\" http://github.com/rtomayko/ronn/
|
3
|
-
.
|
4
|
-
.TH "SHOE" "1" "April 2010" "Matthew Todd" "RubyGems Manual"
|
5
|
-
.
|
6
|
-
.SH "NAME"
|
7
|
-
\fBshoe\fR \-\- generate a RubyGems project
|
8
|
-
.
|
9
|
-
.SH "SYNOPSIS"
|
10
|
-
\fBshoe\fR [\-\fBadehtv\fR] [\fIpath\fR]
|
11
|
-
.
|
12
|
-
.SH "DESCRIPTION"
|
13
|
-
The \fBshoe\fR command generates a new RubyGems project. Big deal, right? As
|
14
|
-
compared with other tools, \fBshoe\fR gently guides you toward hygenic packaging
|
15
|
-
standards and provides you with a sweet \fIshoe(3)\fR library of
|
16
|
-
on\-demand \fBrake(1)\fR tasks built around your (authoritative) gemspec.
|
17
|
-
.
|
18
|
-
.SH "OPTIONS"
|
19
|
-
By default, \fBshoe\fR generates a basic library, its \fBRakefile\fR, and some \fBTest::Unit\fR tests in the current directory. (You may pass a different \fIpath\fR
|
20
|
-
on the command line, if you like.)
|
21
|
-
.
|
22
|
-
.P
|
23
|
-
To generate additional files, use the following options:
|
24
|
-
.
|
25
|
-
.TP
|
26
|
-
\fB\-a\fR, \fB\-\-[no\-]application\fR
|
27
|
-
Generate a command\-line application. Create a simple executable script in
|
28
|
-
the \fBbin\fR directory and an \fBoptparse\fR\-based \fBApplication\fR class.
|
29
|
-
.
|
30
|
-
.TP
|
31
|
-
\fB\-d\fR, \fB\-\-[no\-]data\fR
|
32
|
-
Generate a data directory. Create a \fBdata\fR directory (perfect for HTML
|
33
|
-
templates and other static assets) and a \fBdatadir\fR method in your top\-level
|
34
|
-
module to access it.
|
35
|
-
.
|
36
|
-
.TP
|
37
|
-
\fB\-e\fR, \fB\-\-[no\-]extension\fR
|
38
|
-
Generate a C extension. Create an \fBext\fR directory with an \fBextconf.rb\fR and
|
39
|
-
a bare\-bones \fBextension.c\fR defining a module named \fBExtension\fR.
|
40
|
-
.
|
41
|
-
.TP
|
42
|
-
\fB\-t\fR, \fB\-\-[no\-]test\-unit\fR
|
43
|
-
Generate Test::Unit tests. Create a \fBtest\fR directory with a \fBhelper.rb\fR
|
44
|
-
and a single passing test.
|
45
|
-
.
|
46
|
-
.P
|
47
|
-
\fBshoe\fR also responds to the following standard options:
|
48
|
-
.
|
49
|
-
.TP
|
50
|
-
\fB\-h\fR, \fB\-\-help\fR
|
51
|
-
Print a help message and exit.
|
52
|
-
.
|
53
|
-
.TP
|
54
|
-
\fB\-v\fR, \fB\-\-version\fR[=all]
|
55
|
-
Print \fBshoe\fR's version number and exit. If \fB=all\fR is given, also print
|
56
|
-
version numbers of \fBshoe\fR's dependencies.
|
57
|
-
.
|
58
|
-
.SH "AUTHOR"
|
59
|
-
Matthew Todd, \fImatthewtodd\fR on GitHub. Do drop
|
60
|
-
me a line if you use \fBshoe\fR \-\- I'd love to hear from you!
|
61
|
-
.
|
62
|
-
.SH "SEE ALSO"
|
63
|
-
\fIshoe(3)\fR, \fIhttp://chneukirchen.github.com/rps/\fR, \fIhttp://gembundler.com/\fR, \fIhttp://defunkt.github.com/rip/\fR, \fIhttp://github.com/rtomayko/rpg\fR
|
data/man/shoe.1.ronn
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
shoe(1) -- generate a RubyGems project
|
2
|
-
======================================
|
3
|
-
|
4
|
-
## SYNOPSIS
|
5
|
-
|
6
|
-
`shoe` [-`adehtv`] [_path_]
|
7
|
-
|
8
|
-
## DESCRIPTION
|
9
|
-
|
10
|
-
The `shoe` command generates a new RubyGems project. Big deal, right? As
|
11
|
-
compared with other tools, `shoe` gently guides you toward hygenic packaging
|
12
|
-
standards and provides you with a sweet [shoe(3)](shoe.3.html) library of
|
13
|
-
on-demand `rake(1)` tasks built around your (authoritative) gemspec.
|
14
|
-
|
15
|
-
## OPTIONS
|
16
|
-
|
17
|
-
By default, `shoe` generates a basic library, its `Rakefile`, and some
|
18
|
-
`Test::Unit` tests in the current directory. (You may pass a different _path_
|
19
|
-
on the command line, if you like.)
|
20
|
-
|
21
|
-
To generate additional files, use the following options:
|
22
|
-
|
23
|
-
* `-a`, `--[no-]application`:
|
24
|
-
Generate a command-line application. Create a simple executable script in
|
25
|
-
the `bin` directory and an `optparse`-based `Application` class.
|
26
|
-
|
27
|
-
* `-d`, `--[no-]data`:
|
28
|
-
Generate a data directory. Create a `data` directory (perfect for HTML
|
29
|
-
templates and other static assets) and a `datadir` method in your top-level
|
30
|
-
module to access it.
|
31
|
-
|
32
|
-
* `-e`, `--[no-]extension`:
|
33
|
-
Generate a C extension. Create an `ext` directory with an `extconf.rb` and
|
34
|
-
a bare-bones `extension.c` defining a module named `Extension`.
|
35
|
-
|
36
|
-
* `-t`, `--[no-]test-unit`:
|
37
|
-
Generate Test::Unit tests. Create a `test` directory with a `helper.rb`
|
38
|
-
and a single passing test.
|
39
|
-
|
40
|
-
`shoe` also responds to the following standard options:
|
41
|
-
|
42
|
-
* `-h`, `--help`:
|
43
|
-
Print a help message and exit.
|
44
|
-
|
45
|
-
* `-v`, `--version`[=all]:
|
46
|
-
Print `shoe`'s version number and exit. If `=all` is given, also print
|
47
|
-
version numbers of `shoe`'s dependencies.
|
48
|
-
|
49
|
-
## AUTHOR
|
50
|
-
|
51
|
-
Matthew Todd, [matthewtodd](http://github.com/matthewtodd) on GitHub. Do drop
|
52
|
-
me a line if you use `shoe` -- I'd love to hear from you!
|
53
|
-
|
54
|
-
## SEE ALSO
|
55
|
-
|
56
|
-
[shoe(3)](shoe.3.html),
|
57
|
-
<http://chneukirchen.github.com/rps/>,
|
58
|
-
<http://gembundler.com/>,
|
59
|
-
<http://defunkt.github.com/rip/>,
|
60
|
-
<http://github.com/rtomayko/rpg>
|
@@ -1,62 +0,0 @@
|
|
1
|
-
require 'logger'
|
2
|
-
require 'rubygems/format'
|
3
|
-
require 'stringio'
|
4
|
-
require 'webrick'
|
5
|
-
|
6
|
-
module Shoe
|
7
|
-
module TestExtensions
|
8
|
-
|
9
|
-
class FakeRubygemsServer
|
10
|
-
def self.start(&block)
|
11
|
-
new.start(&block)
|
12
|
-
end
|
13
|
-
|
14
|
-
def initialize(host='127.0.0.1', port=48484)
|
15
|
-
@initial_rubygems_host = ENV['RUBYGEMS_HOST']
|
16
|
-
@fake_rubygems_host = "http://#{host}:#{port}"
|
17
|
-
|
18
|
-
@message_bus = Queue.new
|
19
|
-
@webrick = WEBrick::HTTPServer.new(
|
20
|
-
# Ruby is super slow to create the underlying Socket if
|
21
|
-
# (my ISP's upstream connection is flakey? and) we don't
|
22
|
-
# specify a BindAddress.
|
23
|
-
:BindAddress => host,
|
24
|
-
:Port => port,
|
25
|
-
:Logger => Logger.new(nil),
|
26
|
-
:AccessLog => [],
|
27
|
-
:StartCallback => lambda { @message_bus.push(:ready) }
|
28
|
-
)
|
29
|
-
|
30
|
-
@webrick.mount_proc('/api/v1/gems') do |req, res|
|
31
|
-
@uploaded_gem = req.body
|
32
|
-
@uploaded_gem.extend(GemEntries)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def start(&block)
|
37
|
-
ENV['RUBYGEMS_HOST'] = @fake_rubygems_host
|
38
|
-
thread = Thread.new { @webrick.start }
|
39
|
-
@message_bus.pop
|
40
|
-
block.call
|
41
|
-
return @uploaded_gem
|
42
|
-
ensure
|
43
|
-
ENV['RUBYGEMS_HOST'] = @initial_rubygems_host
|
44
|
-
@webrick.shutdown
|
45
|
-
thread.join
|
46
|
-
end
|
47
|
-
|
48
|
-
private
|
49
|
-
|
50
|
-
module GemEntries
|
51
|
-
def contents
|
52
|
-
package.file_entries.map { |entry| entry.first['path'] }
|
53
|
-
end
|
54
|
-
|
55
|
-
def package
|
56
|
-
Gem::Format::from_io(StringIO.new(self))
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
62
|
-
end
|
@@ -1,73 +0,0 @@
|
|
1
|
-
require 'open3'
|
2
|
-
require 'pathname'
|
3
|
-
|
4
|
-
module Shoe
|
5
|
-
module TestExtensions
|
6
|
-
|
7
|
-
module HelperMethods
|
8
|
-
attr_reader :stdout, :stderr
|
9
|
-
|
10
|
-
def system(*args)
|
11
|
-
stdin, stdout, stderr = Open3.popen3(*args)
|
12
|
-
stdin.close
|
13
|
-
@stdout = stdout.read
|
14
|
-
@stderr = stderr.read
|
15
|
-
end
|
16
|
-
|
17
|
-
def find(string)
|
18
|
-
root = Pathname.new(string)
|
19
|
-
root.enum_for(:find).
|
20
|
-
select { |path| path.file? }.
|
21
|
-
collect { |path| path.relative_path_from(root).to_s }
|
22
|
-
end
|
23
|
-
|
24
|
-
def write_file(path, contents)
|
25
|
-
path = Pathname.new(path)
|
26
|
-
path.parent.mkpath
|
27
|
-
path.open('w') { |stream| stream.write(contents) }
|
28
|
-
end
|
29
|
-
|
30
|
-
def in_project(name)
|
31
|
-
Dir.mkdir(name)
|
32
|
-
Dir.chdir(name)
|
33
|
-
end
|
34
|
-
|
35
|
-
def assert_file(path)
|
36
|
-
assert Pathname.new(path).exist?, "#{path} does not exist."
|
37
|
-
end
|
38
|
-
|
39
|
-
def assert_find(path, expected)
|
40
|
-
assert_equal expected.sort, find(path).sort
|
41
|
-
end
|
42
|
-
|
43
|
-
def assert_no_task(name)
|
44
|
-
system 'rake --tasks'
|
45
|
-
assert_no_match /\srake #{name}\s/, stdout
|
46
|
-
end
|
47
|
-
|
48
|
-
def assert_task(name)
|
49
|
-
system 'rake --tasks'
|
50
|
-
assert_match /\srake #{name}\s/, stdout
|
51
|
-
end
|
52
|
-
|
53
|
-
def add_files_for_c_extension
|
54
|
-
write_file "ext/foo/extconf.rb", <<-END.gsub(/^ */, '')
|
55
|
-
require 'mkmf'
|
56
|
-
create_makefile 'foo/extension'
|
57
|
-
END
|
58
|
-
|
59
|
-
write_file "ext/foo/extension.c", <<-END.gsub(/^ */, '')
|
60
|
-
#include "ruby.h"
|
61
|
-
static VALUE mFoo;
|
62
|
-
static VALUE mExtension;
|
63
|
-
void Init_extension() {
|
64
|
-
mFoo = rb_define_module("Foo");
|
65
|
-
mExtension = rb_define_module_under(mFoo, "Extension");
|
66
|
-
}
|
67
|
-
END
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
71
|
-
|
72
|
-
end
|
73
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'tempfile'
|
2
|
-
|
3
|
-
module Shoe
|
4
|
-
module TestExtensions
|
5
|
-
|
6
|
-
module IsolatedEnvironment
|
7
|
-
def setup
|
8
|
-
@environment = Environment.new
|
9
|
-
@environment.setup do |env|
|
10
|
-
env.path('PATH') { |path| path.unshift Pathname.new('bin').expand_path }
|
11
|
-
env.path('RUBYLIB') { |path| path.unshift Pathname.new('lib').expand_path }
|
12
|
-
end
|
13
|
-
super
|
14
|
-
end
|
15
|
-
|
16
|
-
def teardown
|
17
|
-
super
|
18
|
-
@environment.teardown
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
class Environment
|
24
|
-
def setup
|
25
|
-
@initial_environment = {}
|
26
|
-
ENV.each { |name, value| @initial_environment[name] = value }
|
27
|
-
yield self
|
28
|
-
@initial_directory = Dir.pwd
|
29
|
-
@working_directory = Dir.mktmpdir
|
30
|
-
Dir.chdir(@working_directory)
|
31
|
-
end
|
32
|
-
|
33
|
-
def path(name)
|
34
|
-
path = ENV[name].to_s.split(File::PATH_SEPARATOR)
|
35
|
-
yield path
|
36
|
-
ENV[name] = path.join(File::PATH_SEPARATOR)
|
37
|
-
end
|
38
|
-
|
39
|
-
def teardown
|
40
|
-
Dir.chdir(@initial_directory)
|
41
|
-
FileUtils.remove_entry_secure(@working_directory)
|
42
|
-
ENV.clear
|
43
|
-
@initial_environment.each { |name, value| ENV[name] = value }
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
@@ -1,40 +0,0 @@
|
|
1
|
-
module Shoe
|
2
|
-
module TestExtensions
|
3
|
-
|
4
|
-
module TestCase
|
5
|
-
def isolate_environment
|
6
|
-
include IsolatedEnvironment
|
7
|
-
end
|
8
|
-
|
9
|
-
def include_helper_methods
|
10
|
-
include HelperMethods
|
11
|
-
end
|
12
|
-
|
13
|
-
def pending(name, options={}, &block)
|
14
|
-
warn "WARN: Pending test \"#{name}\""
|
15
|
-
end
|
16
|
-
|
17
|
-
def test(name, options={}, &block)
|
18
|
-
if !block_given?
|
19
|
-
pending(name, options, &block)
|
20
|
-
return
|
21
|
-
end
|
22
|
-
|
23
|
-
requires = Array(options[:require])
|
24
|
-
|
25
|
-
requires.each do |lib|
|
26
|
-
begin
|
27
|
-
require lib
|
28
|
-
rescue LoadError
|
29
|
-
warn "WARN: #{lib} is not available.\n Skipping test \"#{name}\""
|
30
|
-
define_method('default_test', lambda {})
|
31
|
-
return
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
define_method("test #{name}", &block)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require 'test/helper'
|
2
|
-
|
3
|
-
class RakeCleanTest < Test::Unit::TestCase
|
4
|
-
isolate_environment
|
5
|
-
include_helper_methods
|
6
|
-
|
7
|
-
def setup
|
8
|
-
super
|
9
|
-
in_project 'foo'
|
10
|
-
system 'shoe'
|
11
|
-
end
|
12
|
-
|
13
|
-
test 'rake clean is active only if there is a .git directory' do
|
14
|
-
assert_no_task 'clean'
|
15
|
-
system 'git init'
|
16
|
-
assert_task 'clean'
|
17
|
-
end
|
18
|
-
|
19
|
-
test 'rake clean removes ignored files, excluding .rvmrc and .bundler' do
|
20
|
-
system 'git init'
|
21
|
-
|
22
|
-
write_file '.gitignore', <<-END.gsub(/^ */, '')
|
23
|
-
.bundle
|
24
|
-
.rvmrc
|
25
|
-
bar
|
26
|
-
END
|
27
|
-
|
28
|
-
write_file '.bundle/config.rb', '# STAYING ALIVE'
|
29
|
-
write_file '.rvmrc', '# STAYING ALIVE'
|
30
|
-
write_file 'bar', 'NOT LONG FOR THIS WORLD'
|
31
|
-
|
32
|
-
files_before_clean = find('.')
|
33
|
-
system 'rake clean'
|
34
|
-
assert_find '.', files_before_clean - ['bar']
|
35
|
-
end
|
36
|
-
end
|