shoe 0.1.10 → 0.1.11
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/Rakefile +1 -1
- data/features/release.feature +44 -0
- data/features/step_definitions/shoe_steps.rb +4 -0
- data/features/support/env.rb +9 -3
- data/lib/shoe.rb +3 -3
- data/shoe.gemspec +4 -4
- metadata +4 -3
data/Rakefile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
2
2
|
require 'shoe'
|
3
3
|
|
4
|
-
Shoe.tie('shoe', '0.1.
|
4
|
+
Shoe.tie('shoe', '0.1.11', 'Another take on hoe, jeweler & friends.') do |spec|
|
5
5
|
spec.remove_development_dependency_on_shoe
|
6
6
|
spec.requirements = ['git']
|
7
7
|
spec.add_runtime_dependency 'cucumber'
|
@@ -0,0 +1,44 @@
|
|
1
|
+
Feature: Release
|
2
|
+
In order to conveniently make a release of my project
|
3
|
+
As a developer
|
4
|
+
I want shoe to give me a rake task
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given I have created a directory called "origin"
|
8
|
+
And I have run git init inside "origin"
|
9
|
+
Given I have created a directory called "my_project"
|
10
|
+
And I have run shoe inside "my_project"
|
11
|
+
And I have run git init inside "my_project"
|
12
|
+
And I have run git add . inside "my_project"
|
13
|
+
And I have run git commit -m "Initial commit" inside "my_project"
|
14
|
+
And I have run git remote add origin ../origin inside "my_project"
|
15
|
+
|
16
|
+
Scenario: I can release
|
17
|
+
When I run git push origin master inside "my_project"
|
18
|
+
And I replace "0.0.0" with "0.1.0" in the file "my_project/Rakefile"
|
19
|
+
And I run rake --tasks inside "my_project"
|
20
|
+
Then I should see "rake release" on standard out
|
21
|
+
|
22
|
+
Scenario: I cannot release when the version is 0.0.0
|
23
|
+
When I run git push origin master inside "my_project"
|
24
|
+
And I run rake --tasks inside "my_project"
|
25
|
+
Then I should not see "rake release" on standard out
|
26
|
+
|
27
|
+
Scenario: I cannot release when I already have a tag for the current version
|
28
|
+
When I run git push origin master inside "my_project"
|
29
|
+
And I run git tag 0.1.0 inside "my_project"
|
30
|
+
And I replace "0.0.0" with "0.1.0" in the file "my_project/Rakefile"
|
31
|
+
And I run rake --tasks inside "my_project"
|
32
|
+
Then I should not see "rake release" on standard out
|
33
|
+
|
34
|
+
Scenario: I cannot release when I have not yet pushed master to origin
|
35
|
+
When I replace "0.0.0" with "0.1.0" in the file "my_project/Rakefile"
|
36
|
+
And I run rake --tasks inside "my_project"
|
37
|
+
Then I should not see "rake release" on standard out
|
38
|
+
|
39
|
+
Scenario: I cannot release from a branch other than master
|
40
|
+
When I run git push origin master inside "my_project"
|
41
|
+
And I run git checkout -b topic inside "my_project"
|
42
|
+
And I replace "0.0.0" with "0.1.0" in the file "my_project/Rakefile"
|
43
|
+
And I run rake --tasks inside "my_project"
|
44
|
+
Then I should not see "rake release" on standard out
|
@@ -10,6 +10,10 @@ Given /^I have created a file called "([^\"]*)" containing:$/ do |path, contents
|
|
10
10
|
create_file(path, contents)
|
11
11
|
end
|
12
12
|
|
13
|
+
When /^I replace "([^\"]*)" with "([^\"]*)" in the file "([^\"]*)"$/ do |search, replace, path|
|
14
|
+
edit_file(path, search, replace)
|
15
|
+
end
|
16
|
+
|
13
17
|
When /^I (?:have )?run (.*) inside "([^\"]*)"$/ do |command, path|
|
14
18
|
run(command, path)
|
15
19
|
end
|
data/features/support/env.rb
CHANGED
@@ -13,12 +13,18 @@ class WorkingDirectory
|
|
13
13
|
@working_directory = Pathname.new(Dir.mktmpdir)
|
14
14
|
end
|
15
15
|
|
16
|
-
def create_directory(
|
17
|
-
|
16
|
+
def create_directory(path)
|
17
|
+
file(path).mkpath
|
18
18
|
end
|
19
19
|
|
20
20
|
def create_file(path, contents)
|
21
|
-
|
21
|
+
file(path).open('w') { |file| file.write(contents) }
|
22
|
+
end
|
23
|
+
|
24
|
+
def edit_file(path, search, replace)
|
25
|
+
old_contents = file(path).read
|
26
|
+
new_contents = old_contents.gsub(search, replace)
|
27
|
+
create_file(path, new_contents)
|
22
28
|
end
|
23
29
|
|
24
30
|
def file(path)
|
data/lib/shoe.rb
CHANGED
@@ -100,7 +100,7 @@ class Shoe
|
|
100
100
|
puts spec.to_ruby
|
101
101
|
end
|
102
102
|
|
103
|
-
if
|
103
|
+
if the_current_version_is_greater_than_zero && there_is_no_tag_for_the_current_version && we_are_on_the_master_branch && we_have_already_pushed_the_master_branch_to_a_remote_called_origin
|
104
104
|
desc "Release #{spec.name}-#{spec.version}"
|
105
105
|
task :release do
|
106
106
|
File.open("#{spec.name}.gemspec", 'w') { |f| f.write spec.to_ruby }
|
@@ -126,8 +126,8 @@ class Shoe
|
|
126
126
|
File.directory?('bin') ? Dir.entries('bin') - ['.', '..'] : []
|
127
127
|
end
|
128
128
|
|
129
|
-
def
|
130
|
-
spec.version
|
129
|
+
def the_current_version_is_greater_than_zero
|
130
|
+
spec.version > Gem::Version.new('0.0.0')
|
131
131
|
end
|
132
132
|
|
133
133
|
def there_are_any_work_in_progress_features
|
data/shoe.gemspec
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{shoe}
|
5
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.11"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Matthew Todd"]
|
9
|
-
s.date = %q{2009-10-
|
9
|
+
s.date = %q{2009-10-20}
|
10
10
|
s.default_executable = %q{shoe}
|
11
11
|
s.email = %q{matthew.todd@gmail.com}
|
12
12
|
s.executables = ["shoe"]
|
13
13
|
s.extra_rdoc_files = ["README.rdoc"]
|
14
|
-
s.files = ["Rakefile", "shoe.gemspec", "README.rdoc", "bin/shoe", "features/cucumber.feature", "features/getting_started.feature", "features/step_definitions", "features/step_definitions/shoe_steps.rb", "features/support", "features/support/env.rb", "lib/shoe.rb"]
|
15
|
-
s.rdoc_options = ["--main", "README.rdoc", "--title", "shoe-0.1.
|
14
|
+
s.files = ["Rakefile", "shoe.gemspec", "README.rdoc", "bin/shoe", "features/cucumber.feature", "features/getting_started.feature", "features/release.feature", "features/step_definitions", "features/step_definitions/shoe_steps.rb", "features/support", "features/support/env.rb", "lib/shoe.rb"]
|
15
|
+
s.rdoc_options = ["--main", "README.rdoc", "--title", "shoe-0.1.11", "--inline-source"]
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
s.requirements = ["git"]
|
18
18
|
s.rubygems_version = %q{1.3.5}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shoe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Todd
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-20 00:00:00 +03:00
|
13
13
|
default_executable: shoe
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -57,6 +57,7 @@ files:
|
|
57
57
|
- bin/shoe
|
58
58
|
- features/cucumber.feature
|
59
59
|
- features/getting_started.feature
|
60
|
+
- features/release.feature
|
60
61
|
- features/step_definitions/shoe_steps.rb
|
61
62
|
- features/support/env.rb
|
62
63
|
- lib/shoe.rb
|
@@ -69,7 +70,7 @@ rdoc_options:
|
|
69
70
|
- --main
|
70
71
|
- README.rdoc
|
71
72
|
- --title
|
72
|
-
- shoe-0.1.
|
73
|
+
- shoe-0.1.11
|
73
74
|
- --inline-source
|
74
75
|
require_paths:
|
75
76
|
- lib
|