tumbler 0.0.11 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -1
- data/CHANGELOG +28 -0
- data/Gemfile +3 -1
- data/README.rdoc +5 -1
- data/Rakefile +9 -10
- data/Tumbler +0 -1
- data/bin/tumbler +2 -3
- data/lib/template/generic.gemspec.erb +1 -6
- data/lib/template/generic.rb.erb +4 -0
- data/lib/tumbler/cli.rb +18 -60
- data/lib/tumbler/generate.rb +32 -33
- data/lib/tumbler/manager.rb +2 -4
- data/lib/tumbler/version.rb +1 -1
- data/test/changelog_test.rb +59 -0
- data/test/cli_test.rb +68 -0
- data/test/gemspec_test.rb +23 -0
- data/test/generate_test.rb +81 -0
- data/test/tasks_test.rb +76 -0
- data/test/teststrap.rb +72 -0
- data/test/updater_test.rb +80 -0
- data/test/version_test.rb +31 -0
- data/tumbler.gemspec +2 -12
- metadata +49 -30
- data/Gemfile.lock +0 -57
- data/spec/bin_tumbler_spec.rb +0 -67
- data/spec/changelog_spec.rb +0 -52
- data/spec/gemspec_spec.rb +0 -38
- data/spec/generate_spec.rb +0 -64
- data/spec/spec.opts +0 -7
- data/spec/spec_helper.rb +0 -84
- data/spec/tasks_spec.rb +0 -71
- data/spec/updater_spec.rb +0 -60
- data/spec/version_spec.rb +0 -53
@@ -0,0 +1,23 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__),'teststrap')
|
2
|
+
|
3
|
+
context "GemspecHelper" do
|
4
|
+
setup { @dir, @app = create_bare_app('test') }
|
5
|
+
setup { @helper = Tumbler::GemspecHelper.new(@app) }
|
6
|
+
teardown { FileUtils.rm_rf(@dir) }
|
7
|
+
|
8
|
+
asserts(:name).equals 'test'
|
9
|
+
asserts(:version).equals '0.0.0'
|
10
|
+
asserts(:files).equivalent_to ["CHANGELOG", "Gemfile", "Rakefile", "Tumbler", "lib/test.rb", "lib/test/version.rb", "test.gemspec"]
|
11
|
+
asserts(:date).equals Time.new.strftime("%Y-%m-%d")
|
12
|
+
|
13
|
+
context "inject_dependencies" do
|
14
|
+
setup do
|
15
|
+
spec = Gem::Specification.new
|
16
|
+
File.open("#{@app.base}/Gemfile", 'a') {|f| f.puts "gem 'test', '>= 0.0.5'"}
|
17
|
+
@app.reload
|
18
|
+
@helper.inject_dependencies(spec) ; spec
|
19
|
+
end
|
20
|
+
asserts(:runtime_dependencies).equals [Gem::Dependency.new('test', '>= 0.0.5')]
|
21
|
+
asserts(:development_dependencies).equals [Gem::Dependency.new('tumbler', '>= 0', :development)]
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__),'teststrap')
|
2
|
+
|
3
|
+
context "Generate" do
|
4
|
+
setup { @test_dir = temp_dir('test') }
|
5
|
+
teardown { $".delete "tumbler/gemspec.rb" } # we need to delete this so each gemspec can be generated fresh
|
6
|
+
teardown{ FileUtils.rm_rf(@test_dir) }
|
7
|
+
|
8
|
+
context "suppress changelog creation if disabled" do
|
9
|
+
setup { Tumbler::Generate.app(@test_dir, 'mygem', :changelog => nil).write }
|
10
|
+
asserts("has changelog") { File.exist? File.join(@test_dir, "CHANGELOG") }.not!
|
11
|
+
end
|
12
|
+
|
13
|
+
context "generate mygem directory" do
|
14
|
+
setup { Tumbler::Generate.app(@test_dir, 'mygem').write }
|
15
|
+
asserts("dir exists") { File.exist? File.join(@test_dir, "lib", "mygem") }
|
16
|
+
end
|
17
|
+
|
18
|
+
context "generate the mygem.rb file" do
|
19
|
+
setup do
|
20
|
+
Tumbler::Generate.app(@test_dir, 'my_gem').write
|
21
|
+
File.join(@test_dir, "lib", 'my_gem.rb')
|
22
|
+
end
|
23
|
+
asserts("it exists") { File.exist? topic }
|
24
|
+
asserts("has module") { File.read(topic) }.matches %r{module MyGem #:nodoc}
|
25
|
+
asserts("has require") { File.read(topic) }.matches %r{require 'my_gem/version'\n}
|
26
|
+
end
|
27
|
+
|
28
|
+
context "generate the mygem.rb file without the version require if no version is being used" do
|
29
|
+
setup do
|
30
|
+
Tumbler::Generate.app(@test_dir, 'my_gem', :version => nil).write
|
31
|
+
File.join(@test_dir, "lib", 'my_gem.rb')
|
32
|
+
end
|
33
|
+
asserts("exists") { File.exists? topic }
|
34
|
+
asserts("module") { File.read topic }.matches %r{module MyGem #:nodoc}
|
35
|
+
asserts("require") { File.read(topic) =~ %r{require 'my_gem/version'\n} }
|
36
|
+
end
|
37
|
+
|
38
|
+
context "generate the gem constant correctly with -" do
|
39
|
+
setup { Tumbler::Generate.app(@test_dir, 'my-gem').write }
|
40
|
+
asserts("My::Gem") { File.read File.join(@test_dir, 'lib','my-gem','version.rb') }.matches %r{My::Gem}
|
41
|
+
end
|
42
|
+
|
43
|
+
context "generate the gem constant correctly with _" do
|
44
|
+
setup { Tumbler::Generate.app(@test_dir, 'my_gem').write }
|
45
|
+
asserts("MyGem") { File.read File.join(@test_dir, 'lib','my_gem','version.rb') }.matches %r{MyGem}
|
46
|
+
end
|
47
|
+
|
48
|
+
context "generate a gemspec" do
|
49
|
+
setup do
|
50
|
+
Tumbler::Generate.app(@test_dir, 'mygem').write
|
51
|
+
Gem::Specification.load("#{@test_dir}/mygem.gemspec")
|
52
|
+
end
|
53
|
+
asserts(:dependencies).equals [Gem::Dependency.new('tumbler', '>=0', :development)]
|
54
|
+
end
|
55
|
+
|
56
|
+
context "generate a Rakefile" do
|
57
|
+
setup { Tumbler::Generate.app(@test_dir, 'mygem').write }
|
58
|
+
asserts("Rakefile") { File.exist?("#{@test_dir}/Rakefile") }
|
59
|
+
end
|
60
|
+
|
61
|
+
context "accepts an extra dependency" do
|
62
|
+
setup do
|
63
|
+
Tumbler::Generate.app(@test_dir, 'mygem', :dependencies => 'eventmachine').write
|
64
|
+
Gem::Specification.load("#{@test_dir}/mygem.gemspec")
|
65
|
+
end
|
66
|
+
asserts(:dependencies).includes Gem::Dependency.new('tumbler', '>=0', :development)
|
67
|
+
asserts(:dependencies).includes Gem::Dependency.new('eventmachine', '>=0', :runtime)
|
68
|
+
asserts(:dependencies).size 2
|
69
|
+
end
|
70
|
+
|
71
|
+
context "accepts an extra dependency with a version" do
|
72
|
+
setup do
|
73
|
+
Tumbler::Generate.app(@test_dir, 'mygem', :dependencies => [['eventmachine', '>=1.0.0']]).write
|
74
|
+
Gem::Specification.load("#{@test_dir}/mygem.gemspec")
|
75
|
+
end
|
76
|
+
asserts(:dependencies).includes Gem::Dependency.new('tumbler', '>=0', :development)
|
77
|
+
asserts(:dependencies).includes Gem::Dependency.new('eventmachine', '>=1.0.0', :runtime)
|
78
|
+
asserts(:dependencies).size 2
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
data/test/tasks_test.rb
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__),'teststrap')
|
2
|
+
|
3
|
+
context "Tasks" do
|
4
|
+
setup { ENV['RUBYLIB'] = File.expand_path(File.join(__DIR__, '..', 'lib')) }
|
5
|
+
|
6
|
+
context "should gem.build" do
|
7
|
+
setup { @tumbler, @dir, @remote_dir = create_app }
|
8
|
+
teardown { FileUtils.rm_rf @dir ; FileUtils.rm_rf @remote_dir }
|
9
|
+
setup { @tumbler.gem.build }
|
10
|
+
asserts("gem exists") { File.exist?("#{@tumbler.base}/pkg/test-0.0.0.gem") }
|
11
|
+
end
|
12
|
+
|
13
|
+
context "version bumping" do
|
14
|
+
|
15
|
+
context "shouldn't write a new tag" do
|
16
|
+
setup { @tumbler, @dir, @remote_dir = create_app }
|
17
|
+
teardown { FileUtils.rm_rf @dir ; FileUtils.rm_rf @remote_dir }
|
18
|
+
setup { @tumbler.bump_and_commit(:minor) }
|
19
|
+
asserts("has tag") { @tumbler.tags }.equals ['0.0.0']
|
20
|
+
end
|
21
|
+
|
22
|
+
context "should increment the locally stored version" do
|
23
|
+
setup { @tumbler, @dir, @remote_dir = create_app }
|
24
|
+
teardown { FileUtils.rm_rf @dir ; FileUtils.rm_rf @remote_dir }
|
25
|
+
setup { @tumbler.bump_and_commit(:minor) ; @tumbler.reload }
|
26
|
+
asserts("has right version") { @tumbler.version.to_s }.equals '0.1.0'
|
27
|
+
end
|
28
|
+
|
29
|
+
context "should successfully push after a bump" do
|
30
|
+
setup { @tumbler, @dir, @remote_dir = create_app }
|
31
|
+
teardown { FileUtils.rm_rf @dir ; FileUtils.rm_rf @remote_dir }
|
32
|
+
setup do
|
33
|
+
Tumbler::Gem.any_instance.stubs(:push).once.returns(true)
|
34
|
+
@tumbler.bump_and_commit(:minor)
|
35
|
+
@tumbler.tag_and_push
|
36
|
+
@tumbler.reload
|
37
|
+
end
|
38
|
+
asserts("has right version") { @tumbler.version.to_s }.equals '0.1.0'
|
39
|
+
asserts("has right tags") { @tumbler.tags }.equals %w(0.0.0 0.1.0)
|
40
|
+
end
|
41
|
+
|
42
|
+
context "shouldn't commit the changed changelog on a simple bump" do
|
43
|
+
setup { @tumbler, @dir, @remote_dir = create_app }
|
44
|
+
teardown { FileUtils.rm_rf @dir ; FileUtils.rm_rf @remote_dir }
|
45
|
+
setup { @tumbler.bump_and_commit(:minor) }
|
46
|
+
asserts("git status") { @tumbler.sh('git status') }.matches %r{modified:\s+CHANGELOG}
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
context "version bumping & pushing" do
|
52
|
+
context "should create a nice changelog" do
|
53
|
+
setup { @tumbler, @dir, @remote_dir = create_app }
|
54
|
+
teardown { FileUtils.rm_rf @dir ; FileUtils.rm_rf @remote_dir }
|
55
|
+
setup do
|
56
|
+
Tumbler::Gem.any_instance.stubs(:push).times(4).returns(true)
|
57
|
+
@tumbler.sh 'touch test1; git add test1; git commit test1 -m"Added test1"'
|
58
|
+
@tumbler.bump_and_push(:minor)
|
59
|
+
@tumbler.sh 'touch test2; git add test2; git commit test2 -m"Added test2"'
|
60
|
+
@tumbler.sh 'touch test2-1; git add test2-1; git commit test2-1 -m"Added test2-1"'
|
61
|
+
@tumbler.bump_and_push(:minor)
|
62
|
+
@tumbler.sh 'touch test3; git add test3; git commit test3 -m"Added test3"'
|
63
|
+
@tumbler.bump_and_push(:minor)
|
64
|
+
@tumbler.sh 'touch test4; git add test4; git commit test4 -m"Added test4"'
|
65
|
+
@tumbler.bump_and_push(:minor)
|
66
|
+
@tumbler.reload
|
67
|
+
File.read(@tumbler.changelog.file)
|
68
|
+
end
|
69
|
+
asserts_topic.matches %r{== 0\.4\.0\s+\* Added test4 \(.*?\)\n\n==}
|
70
|
+
asserts_topic.matches %r{== 0\.3\.0\s+\* Added test3 \(.*?\)\n\n==}
|
71
|
+
asserts_topic.matches %r{== 0\.2\.0\s+\* Added test2-1 \(.*?\)\n\* Added test2 \(.*?\)\n\n==}
|
72
|
+
asserts_topic.matches %r{== 0\.1\.0\s+\* Added test1 \(.*?\)\n\n$}
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
data/test/teststrap.rb
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'tempfile'
|
3
|
+
require 'fileutils'
|
4
|
+
require 'riot'
|
5
|
+
require 'mocha'
|
6
|
+
|
7
|
+
$LOAD_PATH << File.basename(__FILE__)
|
8
|
+
$LOAD_PATH << File.join(File.basename(__FILE__), '..', 'lib')
|
9
|
+
require 'tumbler'
|
10
|
+
|
11
|
+
Tumbler::Gem.any_instance.stubs(:install).raises
|
12
|
+
Tumbler::Gem.any_instance.stubs(:push).raises
|
13
|
+
|
14
|
+
|
15
|
+
Riot.reporter = Riot::DotMatrixReporter
|
16
|
+
class Riot::Situation
|
17
|
+
|
18
|
+
def create_app(name='test', opts={})
|
19
|
+
@dir = temp_dir(name)
|
20
|
+
@remote_dir = temp_dir("remote-#{name}.git")
|
21
|
+
Tumbler::Generate.app(@dir, name, opts).write
|
22
|
+
Dir.chdir(@remote_dir) { `git --bare init` }
|
23
|
+
remote = opts[:remote] || "file://#{@remote_dir}"
|
24
|
+
Dir.chdir(@dir) {
|
25
|
+
`git remote add origin #{remote}`
|
26
|
+
`git push origin master`
|
27
|
+
}
|
28
|
+
[Tumbler::Manager.new(@dir), @dir, @remote_dir]
|
29
|
+
end
|
30
|
+
|
31
|
+
def create_bare_app(name, opts = {})
|
32
|
+
dir = temp_dir(name)
|
33
|
+
Tumbler::Generate.app(dir, name, opts).write
|
34
|
+
tumbler = Tumbler::Manager.new(dir)
|
35
|
+
[dir, tumbler]
|
36
|
+
end
|
37
|
+
|
38
|
+
def temp_dir(name)
|
39
|
+
dir = File.join(Dir.tmpdir, rand(10000).to_s, "#{Process.pid}-#{name}")
|
40
|
+
FileUtils.rm_rf(dir)
|
41
|
+
FileUtils.mkdir_p(dir)
|
42
|
+
if block_given?
|
43
|
+
begin
|
44
|
+
yield dir
|
45
|
+
ensure
|
46
|
+
FileUtils.rm_rf(dir)
|
47
|
+
end
|
48
|
+
else
|
49
|
+
dir
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
class Riot::Context
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
class Object
|
60
|
+
def capture(stream)
|
61
|
+
begin
|
62
|
+
stream = stream.to_s
|
63
|
+
eval "$#{stream} = StringIO.new"
|
64
|
+
yield
|
65
|
+
result = eval("$#{stream}").string
|
66
|
+
ensure
|
67
|
+
eval("$#{stream} = #{stream.upcase}")
|
68
|
+
end
|
69
|
+
result
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__),'teststrap')
|
2
|
+
require 'fakeweb'
|
3
|
+
FakeWeb.allow_net_connect = false
|
4
|
+
|
5
|
+
|
6
|
+
context "Updater" do
|
7
|
+
setup do
|
8
|
+
@bin = File.expand_path(File.join(File.dirname(__FILE__), '..', 'bin', 'tumbler'))
|
9
|
+
@target = '/tmp/test'
|
10
|
+
FileUtils.mkdir_p(@target)
|
11
|
+
capture(:stdout) { Tumbler::Cli.start(['rails',"-r=#{@target}"]) }
|
12
|
+
end
|
13
|
+
teardown do
|
14
|
+
FileUtils.rm_rf @target
|
15
|
+
$".delete "tumbler/gemspec.rb" # we need to delete this so each gemspec can be generated fresh
|
16
|
+
end
|
17
|
+
|
18
|
+
context "fetches the version number" do
|
19
|
+
setup do
|
20
|
+
FakeWeb.register_uri(:get, "http://rubygems.org/api/v1/gems/rails.json", :body => '{ "name": "rails", "info": "Rails is a framework for building web-application using CGI, FCGI, mod_ruby, or WEBrick on top of either MySQL, PostgreSQL, SQLite, DB2, SQL Server, or Oracle with eRuby- or Builder-based templates.", "version": "2.3.5", "version_downloads": 2451, "authors": "David Heinemeier Hansson", "downloads": 134451, "project_uri": "http://rubygems.org/gems/rails", "gem_uri": "http://rubygems.org/gems/rails-2.3.5.gem", "dependencies": { "runtime": [ { "name": "activesupport", "requirements": ">= 2.3.5" } ], "development": [ ] }}')
|
21
|
+
File.unlink("#{@target}/rails/lib/rails/version.rb")
|
22
|
+
Tumbler::Updater.new("#{@target}/rails", :name => 'rails').update
|
23
|
+
File.read("#{@target}/rails/lib/rails/version.rb")
|
24
|
+
end
|
25
|
+
asserts_topic.matches %r{2\.3\.5}
|
26
|
+
end
|
27
|
+
|
28
|
+
context "generates a CHANGELOG" do
|
29
|
+
setup do
|
30
|
+
File.unlink("#{@target}/rails/CHANGELOG")
|
31
|
+
Tumbler::Updater.new("#{@target}/rails", :name => 'rails').update
|
32
|
+
end
|
33
|
+
asserts("file exists") { File.exist?("#{@target}/rails/CHANGELOG") }
|
34
|
+
end
|
35
|
+
|
36
|
+
context "does not append anything to the Rakefile as it already has the tumbler tasks in it" do
|
37
|
+
setup do
|
38
|
+
@rakefile = File.read("#{@target}/rails/Rakefile")
|
39
|
+
Tumbler::Updater.new("#{@target}/rails", :name => 'rails').update
|
40
|
+
end
|
41
|
+
asserts("same rakefile") { @rakefile == File.read("/tmp/test/rails/Rakefile") }
|
42
|
+
end
|
43
|
+
|
44
|
+
context "append the Tumbler tasks if they don't already exist" do
|
45
|
+
setup do
|
46
|
+
File.open("#{@target}/rails/Rakefile", 'w') {|f| f.puts '# Some other rake file'}
|
47
|
+
Tumbler::Updater.new("#{@target}/rails", :name => 'rails').update
|
48
|
+
end
|
49
|
+
asserts("finds use_rake_tasks once") do
|
50
|
+
File.read("#{@target}/rails/Rakefile").scan(/require 'tumbler'\nTumbler\.use_rake_tasks/)
|
51
|
+
end.size 1
|
52
|
+
end
|
53
|
+
|
54
|
+
context "does not append anything to the gemspec if it already is using tumbler" do
|
55
|
+
setup do
|
56
|
+
@gemspec = File.read("#{@target}/rails/rails.gemspec")
|
57
|
+
Tumbler::Updater.new("#{@target}/rails", :name => 'rails').update
|
58
|
+
end
|
59
|
+
asserts("doesn't change") { File.read("#{@target}/rails/rails.gemspec") == @gemspec }
|
60
|
+
end
|
61
|
+
|
62
|
+
context "append inject_dependencies if its doesn't exist" do
|
63
|
+
setup do
|
64
|
+
File.open("#{@target}/rails/Rakefile", 'w') {|f| f.puts '# Some other gemspec file'}
|
65
|
+
Tumbler::Updater.new("#{@target}/rails", :name => 'rails').update
|
66
|
+
end
|
67
|
+
asserts("finds inject_dependencies once") do
|
68
|
+
File.read("#{@target}/rails/rails.gemspec").scan(/Tumbler::Gemspec.inject_dependencies/)
|
69
|
+
end.size 1
|
70
|
+
end
|
71
|
+
|
72
|
+
context "add a Tumbler config file if it doesn't exist" do
|
73
|
+
setup do
|
74
|
+
File.unlink("#{@target}/rails/Tumbler")
|
75
|
+
Tumbler::Updater.new("#{@target}/rails", :name => 'rails').update
|
76
|
+
end
|
77
|
+
asserts("adds Tumbler file") { File.exist?("#{@target}/rails/Tumbler") }
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__),'teststrap')
|
2
|
+
|
3
|
+
context 'Version' do
|
4
|
+
setup { @tumbler, @dir, @remote_dir = create_app('test', :version => '0.1.2') }
|
5
|
+
setup { Tumbler::Gem.any_instance.stubs(:push).once.returns(true) }
|
6
|
+
teardown { FileUtils.rm_rf @dir ; FileUtils.rm_rf @remote_dir }
|
7
|
+
asserts("right version") { @tumbler.version.to_s }.equals '0.1.2'
|
8
|
+
|
9
|
+
context "should bump the current version by minor" do
|
10
|
+
setup { @tumbler.bump_and_push(:minor) }
|
11
|
+
asserts("right version") { @tumbler.version.to_s }.equals '0.2.0'
|
12
|
+
asserts("has tags") { @tumbler.tags }.includes '0.2.0'
|
13
|
+
end
|
14
|
+
|
15
|
+
context "should bump the current version by tiny" do
|
16
|
+
setup { @tumbler.bump_and_push(:tiny) }
|
17
|
+
asserts("right version") { @tumbler.version.to_s }.equals '0.1.3'
|
18
|
+
end
|
19
|
+
|
20
|
+
context "should bump the current version by major" do
|
21
|
+
setup { @tumbler.bump_and_push(:major) }
|
22
|
+
asserts("right version") { @tumbler.version.to_s }.equals '1.0.0'
|
23
|
+
end
|
24
|
+
|
25
|
+
context "should not let you tag the same version twice" do
|
26
|
+
setup { @tumbler.bump_and_push(:major) }
|
27
|
+
asserts("right version") { @tumbler.version.to_s }.equals '1.0.0'
|
28
|
+
asserts("should fail") { @tumbler.tag_and_push(:major) }.raises ArgumentError
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
data/tumbler.gemspec
CHANGED
@@ -10,7 +10,8 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.rubyforge_project = Tumbler::Gemspec.name
|
11
11
|
s.authors = ["Joshua Hull"]
|
12
12
|
s.date = Tumbler::Gemspec.date
|
13
|
-
s.description =
|
13
|
+
s.description = "Let's make gem development fun and remove all the repetition! Tumbler provides support for common gem management tasks which helps you spend less time dealing with gem releases and more time focusing on your gem functionality!"
|
14
|
+
s.summary = "Common gem generation and management tasks"
|
14
15
|
s.email = %q{joshbuddy@gmail.com}
|
15
16
|
s.extra_rdoc_files = Tumbler::Gemspec.files('README.rdoc')
|
16
17
|
s.files = Tumbler::Gemspec.files
|
@@ -18,20 +19,9 @@ Gem::Specification.new do |s|
|
|
18
19
|
s.rdoc_options = ["--charset=UTF-8"]
|
19
20
|
s.require_paths = ["lib"]
|
20
21
|
s.rubygems_version = %q{1.3.7}
|
21
|
-
s.summary = %q{This is awesome.}
|
22
22
|
s.test_files = Tumbler::Gemspec.files(/^spec/)
|
23
23
|
s.executables = Tumbler::Gemspec.bin_files
|
24
24
|
|
25
25
|
# dependencies
|
26
26
|
Tumbler::Gemspec.inject_dependencies(s)
|
27
|
-
|
28
|
-
if s.respond_to? :specification_version then
|
29
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
30
|
-
s.specification_version = 3
|
31
|
-
|
32
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
33
|
-
else
|
34
|
-
end
|
35
|
-
else
|
36
|
-
end
|
37
27
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tumbler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 12
|
10
|
+
version: 0.0.12
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Joshua Hull
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-06-
|
18
|
+
date: 2010-06-20 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -86,8 +86,8 @@ dependencies:
|
|
86
86
|
- 0
|
87
87
|
version: "0"
|
88
88
|
requirement: *id005
|
89
|
-
type: :
|
90
|
-
name:
|
89
|
+
type: :runtime
|
90
|
+
name: thor
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
@@ -101,7 +101,7 @@ dependencies:
|
|
101
101
|
version: "0"
|
102
102
|
requirement: *id006
|
103
103
|
type: :development
|
104
|
-
name:
|
104
|
+
name: rake
|
105
105
|
- !ruby/object:Gem::Dependency
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: &id007 !ruby/object:Gem::Requirement
|
@@ -115,7 +115,7 @@ dependencies:
|
|
115
115
|
version: "0"
|
116
116
|
requirement: *id007
|
117
117
|
type: :development
|
118
|
-
name:
|
118
|
+
name: riot
|
119
119
|
- !ruby/object:Gem::Dependency
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: &id008 !ruby/object:Gem::Requirement
|
@@ -129,8 +129,36 @@ dependencies:
|
|
129
129
|
version: "0"
|
130
130
|
requirement: *id008
|
131
131
|
type: :development
|
132
|
+
name: fakeweb
|
133
|
+
- !ruby/object:Gem::Dependency
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
136
|
+
none: false
|
137
|
+
requirements:
|
138
|
+
- - ">="
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
hash: 3
|
141
|
+
segments:
|
142
|
+
- 0
|
143
|
+
version: "0"
|
144
|
+
requirement: *id009
|
145
|
+
type: :development
|
132
146
|
name: mocha
|
133
|
-
|
147
|
+
- !ruby/object:Gem::Dependency
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
150
|
+
none: false
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
hash: 3
|
155
|
+
segments:
|
156
|
+
- 0
|
157
|
+
version: "0"
|
158
|
+
requirement: *id010
|
159
|
+
type: :development
|
160
|
+
name: blockenspiel
|
161
|
+
description: Let's make gem development fun and remove all the repetition! Tumbler provides support for common gem management tasks which helps you spend less time dealing with gem releases and more time focusing on your gem functionality!
|
134
162
|
email: joshbuddy@gmail.com
|
135
163
|
executables:
|
136
164
|
- tumbler
|
@@ -142,7 +170,6 @@ files:
|
|
142
170
|
- .gitignore
|
143
171
|
- CHANGELOG
|
144
172
|
- Gemfile
|
145
|
-
- Gemfile.lock
|
146
173
|
- README.rdoc
|
147
174
|
- Rakefile
|
148
175
|
- Tumbler
|
@@ -151,6 +178,7 @@ files:
|
|
151
178
|
- lib/template/Rakefile
|
152
179
|
- lib/template/Tumbler.erb
|
153
180
|
- lib/template/generic.gemspec.erb
|
181
|
+
- lib/template/generic.rb.erb
|
154
182
|
- lib/template/version.rb.erb
|
155
183
|
- lib/tumbler.rb
|
156
184
|
- lib/tumbler/cli.rb
|
@@ -165,15 +193,14 @@ files:
|
|
165
193
|
- lib/tumbler/runner.rb
|
166
194
|
- lib/tumbler/updater.rb
|
167
195
|
- lib/tumbler/version.rb
|
168
|
-
-
|
169
|
-
-
|
170
|
-
-
|
171
|
-
-
|
172
|
-
-
|
173
|
-
-
|
174
|
-
-
|
175
|
-
-
|
176
|
-
- spec/version_spec.rb
|
196
|
+
- test/changelog_test.rb
|
197
|
+
- test/cli_test.rb
|
198
|
+
- test/gemspec_test.rb
|
199
|
+
- test/generate_test.rb
|
200
|
+
- test/tasks_test.rb
|
201
|
+
- test/teststrap.rb
|
202
|
+
- test/updater_test.rb
|
203
|
+
- test/version_test.rb
|
177
204
|
- tumbler.gemspec
|
178
205
|
has_rdoc: true
|
179
206
|
homepage: http://github.com/joshbuddy/tumbler
|
@@ -208,14 +235,6 @@ rubyforge_project: tumbler
|
|
208
235
|
rubygems_version: 1.3.7
|
209
236
|
signing_key:
|
210
237
|
specification_version: 3
|
211
|
-
summary:
|
212
|
-
test_files:
|
213
|
-
|
214
|
-
- spec/changelog_spec.rb
|
215
|
-
- spec/gemspec_spec.rb
|
216
|
-
- spec/generate_spec.rb
|
217
|
-
- spec/spec.opts
|
218
|
-
- spec/spec_helper.rb
|
219
|
-
- spec/tasks_spec.rb
|
220
|
-
- spec/updater_spec.rb
|
221
|
-
- spec/version_spec.rb
|
238
|
+
summary: Common gem generation and management tasks
|
239
|
+
test_files: []
|
240
|
+
|