technicalpickles-jeweler 1.0.2 → 1.1.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/.gitignore +1 -0
- data/Rakefile +53 -7
- data/VERSION.yml +2 -2
- data/features/generator/rakefile.feature +42 -36
- data/features/step_definitions/filesystem_steps.rb +3 -0
- data/features/step_definitions/generator_steps.rb +9 -0
- data/features/support/env.rb +12 -2
- data/jeweler.gemspec +24 -6
- data/lib/jeweler/commands/install_gem.rb +16 -2
- data/lib/jeweler/commands/release.rb +10 -7
- data/lib/jeweler/commands/setup_rubyforge.rb +19 -0
- data/lib/jeweler/gemspec_helper.rb +3 -0
- data/lib/jeweler/generator/options.rb +10 -1
- data/lib/jeweler/generator.rb +15 -6
- data/lib/jeweler/rubyforge_tasks.rb +57 -5
- data/lib/jeweler/specification.rb +2 -2
- data/lib/jeweler/tasks.rb +22 -28
- data/lib/jeweler/templates/Rakefile +17 -5
- data/test/jeweler/commands/test_install_gem.rb +53 -0
- data/test/jeweler/commands/test_release.rb +101 -144
- data/test/jeweler/commands/test_setup_rubyforge.rb +102 -8
- data/test/test_application.rb +2 -2
- data/test/test_generator.rb +1 -1
- data/test/test_generator_initialization.rb +69 -26
- data/test/test_helper.rb +18 -12
- data/test/test_options.rb +15 -0
- data/test/test_tasks.rb +4 -20
- metadata +53 -3
data/test/test_application.rb
CHANGED
@@ -48,7 +48,7 @@ class TestApplication < Test::Unit::TestCase
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def build_generator(name = 'zomg', options = {:testing_framework => :shoulda})
|
51
|
-
stub
|
51
|
+
stub(Git).global_config() do
|
52
52
|
{'user.name' => 'John Doe', 'user.email' => 'john@example.com', 'github.user' => 'johndoe', 'github.token' => 'yyz'}
|
53
53
|
end
|
54
54
|
|
@@ -105,7 +105,7 @@ class TestApplication < Test::Unit::TestCase
|
|
105
105
|
|
106
106
|
context "when called with repo name" do
|
107
107
|
setup do
|
108
|
-
@options = {:testing_framework => :shoulda}
|
108
|
+
@options = {:testing_framework => :shoulda, :documentation_framework => :rdoc}
|
109
109
|
@generator = build_generator('zomg', @options)
|
110
110
|
|
111
111
|
stub(@generator).run
|
data/test/test_generator.rb
CHANGED
@@ -2,7 +2,7 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class TestGenerator < Test::Unit::TestCase
|
4
4
|
def build_generator(testing_framework = nil, options = {})
|
5
|
-
stub
|
5
|
+
stub(Git).global_config() do
|
6
6
|
{'user.name' => 'John Doe', 'user.email' => 'john@example.com', 'github.user' => 'johndoe', 'github.token' => 'yyz'}
|
7
7
|
end
|
8
8
|
|
@@ -10,7 +10,11 @@ class TestGeneratorInitialization < Test::Unit::TestCase
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def stub_git_config(options = {})
|
13
|
-
stub
|
13
|
+
stub(Git).global_config() { options }
|
14
|
+
end
|
15
|
+
|
16
|
+
def valid_git_config
|
17
|
+
{ 'user.name' => @git_name, 'user.email' => @git_email, 'github.user' => @github_user, 'github.token' => @github_token }
|
14
18
|
end
|
15
19
|
|
16
20
|
context "given a nil github repo name" do
|
@@ -74,40 +78,79 @@ class TestGeneratorInitialization < Test::Unit::TestCase
|
|
74
78
|
end
|
75
79
|
end
|
76
80
|
end
|
77
|
-
|
78
|
-
context "
|
81
|
+
|
82
|
+
context "default configuration" do
|
79
83
|
setup do
|
80
|
-
stub_git_config
|
84
|
+
stub_git_config valid_git_config
|
85
|
+
@generator = Jeweler::Generator.new(@project_name)
|
81
86
|
end
|
82
87
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
end
|
88
|
+
should "use shoulda for testing" do
|
89
|
+
assert_equal :shoulda, @generator.testing_framework
|
90
|
+
end
|
87
91
|
|
88
|
-
|
89
|
-
|
90
|
-
|
92
|
+
should "use rdoc for documentation" do
|
93
|
+
assert_equal :rdoc, @generator.documentation_framework
|
94
|
+
end
|
91
95
|
|
92
|
-
|
93
|
-
|
94
|
-
|
96
|
+
should "set todo in summary" do
|
97
|
+
assert_match /todo/i, @generator.summary
|
98
|
+
end
|
95
99
|
|
96
|
-
|
97
|
-
|
98
|
-
|
100
|
+
should "set todo in description" do
|
101
|
+
assert_match /todo/i, @generator.description
|
102
|
+
end
|
99
103
|
|
100
|
-
|
101
|
-
|
102
|
-
|
104
|
+
should "set target directory to the project name" do
|
105
|
+
assert_equal @project_name, @generator.target_dir
|
106
|
+
end
|
103
107
|
|
104
|
-
|
105
|
-
|
106
|
-
|
108
|
+
should "set user's name from git config" do
|
109
|
+
assert_equal @git_name, @generator.user_name
|
110
|
+
end
|
107
111
|
|
108
|
-
|
109
|
-
|
110
|
-
|
112
|
+
should "set email from git config" do
|
113
|
+
assert_equal @git_email, @generator.user_email
|
114
|
+
end
|
115
|
+
|
116
|
+
should "set a github remote based on username and project name" do
|
117
|
+
assert_equal "git@github.com:#{@github_user}/#{@project_name}.git", @generator.git_remote
|
118
|
+
end
|
119
|
+
|
120
|
+
should "set github username from git config" do
|
121
|
+
assert_equal @github_user, @generator.github_username
|
122
|
+
end
|
123
|
+
|
124
|
+
should "set project name as the-perfect-gem" do
|
125
|
+
assert_equal @project_name, @generator.project_name
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
context "using yard" do
|
130
|
+
setup do
|
131
|
+
@generator = Jeweler::Generator.new(@project_name, :documentation_framework => :yard)
|
132
|
+
end
|
133
|
+
|
134
|
+
should "set the doc_task to yardoc" do
|
135
|
+
assert_equal "yardoc", @generator.doc_task
|
136
|
+
end
|
137
|
+
|
138
|
+
end
|
139
|
+
|
140
|
+
context "using yard" do
|
141
|
+
setup do
|
142
|
+
@generator = Jeweler::Generator.new(@project_name, :documentation_framework => :rdoc)
|
143
|
+
end
|
144
|
+
|
145
|
+
should "set the doc_task to rdoc" do
|
146
|
+
assert_equal "rdoc", @generator.doc_task
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
context "using options" do
|
151
|
+
should "set documentation" do
|
152
|
+
generator = Jeweler::Generator.new(@project_name, :documentation_framework => :yard)
|
153
|
+
assert_equal :yard, generator.documentation_framework
|
111
154
|
end
|
112
155
|
end
|
113
156
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,21 +1,24 @@
|
|
1
|
-
# Use vendored gem because of limited gem availability on runcoderun
|
2
|
-
# This is loosely based on 'vendor everything'.
|
3
|
-
Dir[File.join(File.dirname(__FILE__), '..', 'vendor', 'gems', '**')].each do |dir|
|
4
|
-
lib = "#{dir}/lib"
|
5
|
-
$LOAD_PATH.unshift(lib) if File.directory?(lib)
|
6
|
-
end
|
7
|
-
|
8
1
|
require 'test/unit'
|
9
2
|
|
10
3
|
require 'rubygems'
|
11
|
-
require 'shoulda'
|
12
4
|
begin
|
13
5
|
require 'ruby-debug'
|
14
6
|
rescue LoadError
|
15
7
|
end
|
16
8
|
|
17
|
-
|
18
|
-
require '
|
9
|
+
begin
|
10
|
+
require 'shoulda'
|
11
|
+
require 'rr'
|
12
|
+
require 'redgreen'
|
13
|
+
rescue LoadError => e
|
14
|
+
puts "*" * 80
|
15
|
+
puts "Some dependencies needed to run tests were missing. Run the following command to find them:"
|
16
|
+
puts
|
17
|
+
puts "\trake development_dependencies:check"
|
18
|
+
puts "*" * 80
|
19
|
+
exit 1
|
20
|
+
end
|
21
|
+
|
19
22
|
require 'time'
|
20
23
|
|
21
24
|
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
|
@@ -35,8 +38,6 @@ class RubyForgeStub
|
|
35
38
|
end
|
36
39
|
end
|
37
40
|
|
38
|
-
require 'output_catcher'
|
39
|
-
|
40
41
|
class Test::Unit::TestCase
|
41
42
|
include RR::Adapters::TestUnit unless include?(RR::Adapters::TestUnit)
|
42
43
|
|
@@ -93,6 +94,11 @@ class Test::Unit::TestCase
|
|
93
94
|
@output = StringIO.new
|
94
95
|
@command.output = @output
|
95
96
|
end
|
97
|
+
|
98
|
+
if @command.respond_to? :repo
|
99
|
+
@repo = Object.new
|
100
|
+
@command.repo = @repo
|
101
|
+
end
|
96
102
|
end
|
97
103
|
|
98
104
|
context "", &block
|
data/test/test_options.rb
CHANGED
@@ -8,6 +8,12 @@ class TestOptions < Test::Unit::TestCase
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
+
def self.should_have_docmentation_framework(documentation_framework)
|
12
|
+
should "use #{documentation_framework} for documentation" do
|
13
|
+
assert_equal documentation_framework.to_sym, @options[:documentation_framework]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
11
17
|
def setup_options(*arguments)
|
12
18
|
@options = Jeweler::Generator::Options.new(arguments)
|
13
19
|
end
|
@@ -22,6 +28,7 @@ class TestOptions < Test::Unit::TestCase
|
|
22
28
|
context "default options" do
|
23
29
|
setup { setup_options }
|
24
30
|
should_have_testing_framework :shoulda
|
31
|
+
should_have_docmentation_framework :rdoc
|
25
32
|
should 'not create repository' do
|
26
33
|
assert ! @options[:create_repo]
|
27
34
|
end
|
@@ -81,6 +88,14 @@ class TestOptions < Test::Unit::TestCase
|
|
81
88
|
end
|
82
89
|
end
|
83
90
|
|
91
|
+
for_options '--rdoc' do
|
92
|
+
should_have_docmentation_framework :rdoc
|
93
|
+
end
|
94
|
+
|
95
|
+
for_options '--yard' do
|
96
|
+
should_have_docmentation_framework :yard
|
97
|
+
end
|
98
|
+
|
84
99
|
for_options '--summary', 'zomg so awesome' do
|
85
100
|
should 'have summary zomg so awesome' do
|
86
101
|
assert_equal 'zomg so awesome', @options[:summary]
|
data/test/test_tasks.rb
CHANGED
@@ -6,11 +6,13 @@ class TestTasks < Test::Unit::TestCase
|
|
6
6
|
|
7
7
|
context 'instantiating Jeweler::Tasks' do
|
8
8
|
setup do
|
9
|
-
Task.clear
|
10
|
-
|
11
9
|
@jt = Jeweler::Tasks.new {}
|
12
10
|
end
|
13
11
|
|
12
|
+
teardown do
|
13
|
+
Task.clear
|
14
|
+
end
|
15
|
+
|
14
16
|
should 'assign @gemspec' do
|
15
17
|
assert_not_nil @jt.gemspec
|
16
18
|
end
|
@@ -29,23 +31,5 @@ class TestTasks < Test::Unit::TestCase
|
|
29
31
|
assert !s.files.empty?
|
30
32
|
end
|
31
33
|
end
|
32
|
-
|
33
|
-
should 'define tasks' do
|
34
|
-
assert Task.task_defined?(:build)
|
35
|
-
assert Task.task_defined?(:install)
|
36
|
-
assert Task.task_defined?(:gemspec)
|
37
|
-
assert Task.task_defined?(:build)
|
38
|
-
assert Task.task_defined?(:install)
|
39
|
-
assert Task.task_defined?(:'gemspec:validate')
|
40
|
-
assert Task.task_defined?(:'gemspec:generate')
|
41
|
-
assert Task.task_defined?(:version)
|
42
|
-
assert Task.task_defined?(:'version:write')
|
43
|
-
assert Task.task_defined?(:'version:bump:major')
|
44
|
-
assert Task.task_defined?(:'version:bump:minor')
|
45
|
-
assert Task.task_defined?(:'version:bump:patch')
|
46
|
-
assert Task.task_defined?(:'release')
|
47
|
-
assert Task.task_defined?(:'rubyforge:release:gem')
|
48
|
-
assert Task.task_defined?(:'rubyforge:setup')
|
49
|
-
end
|
50
34
|
end
|
51
35
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: technicalpickles-jeweler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Nichols
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-08-05 00:00:00 -07:00
|
13
13
|
default_executable: jeweler
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 1.
|
23
|
+
version: 1.2.1
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rubyforge
|
@@ -32,6 +32,56 @@ dependencies:
|
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: "0"
|
34
34
|
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: thoughtbot-shoulda
|
37
|
+
type: :development
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: "0"
|
44
|
+
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: mhennemeyer-output_catcher
|
47
|
+
type: :development
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: "0"
|
54
|
+
version:
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rr
|
57
|
+
type: :development
|
58
|
+
version_requirement:
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: "0"
|
64
|
+
version:
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: mocha
|
67
|
+
type: :development
|
68
|
+
version_requirement:
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: "0"
|
74
|
+
version:
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: redgreen
|
77
|
+
type: :development
|
78
|
+
version_requirement:
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: "0"
|
84
|
+
version:
|
35
85
|
description: Simple and opinionated helper for creating Rubygem projects on GitHub
|
36
86
|
email: josh@technicalpickles.com
|
37
87
|
executables:
|