mcornick-jeweler 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. data/.gitignore +9 -0
  2. data/ChangeLog.markdown +111 -0
  3. data/LICENSE +20 -0
  4. data/README.markdown +185 -0
  5. data/ROADMAP +12 -0
  6. data/Rakefile +103 -0
  7. data/VERSION.yml +4 -0
  8. data/bin/jeweler +8 -0
  9. data/features/generator/cucumber.feature +83 -0
  10. data/features/generator/directory_layout.feature +76 -0
  11. data/features/generator/dotdocument.feature +14 -0
  12. data/features/generator/env_options.feature +9 -0
  13. data/features/generator/git.feature +94 -0
  14. data/features/generator/license.feature +11 -0
  15. data/features/generator/rakefile.feature +151 -0
  16. data/features/generator/readme.feature +12 -0
  17. data/features/generator/test.feature +41 -0
  18. data/features/generator/test_helper.feature +49 -0
  19. data/features/placeholder.feature +5 -0
  20. data/features/step_definitions/debug_steps.rb +6 -0
  21. data/features/step_definitions/filesystem_steps.rb +68 -0
  22. data/features/step_definitions/generator_steps.rb +284 -0
  23. data/features/step_definitions/task_steps.rb +6 -0
  24. data/features/support/env.rb +29 -0
  25. data/features/tasks/build_gem.feature +9 -0
  26. data/features/tasks/version.feature +24 -0
  27. data/features/tasks/version_bumping.feature +33 -0
  28. data/jeweler.gemspec +225 -0
  29. data/lib/jeweler.rb +153 -0
  30. data/lib/jeweler/commands.rb +14 -0
  31. data/lib/jeweler/commands/build_gem.rb +31 -0
  32. data/lib/jeweler/commands/check_dependencies.rb +52 -0
  33. data/lib/jeweler/commands/install_gem.rb +40 -0
  34. data/lib/jeweler/commands/release.rb +86 -0
  35. data/lib/jeweler/commands/release_to_rubyforge.rb +51 -0
  36. data/lib/jeweler/commands/setup_rubyforge.rb +57 -0
  37. data/lib/jeweler/commands/validate_gemspec.rb +30 -0
  38. data/lib/jeweler/commands/version/base.rb +41 -0
  39. data/lib/jeweler/commands/version/bump_major.rb +13 -0
  40. data/lib/jeweler/commands/version/bump_minor.rb +12 -0
  41. data/lib/jeweler/commands/version/bump_patch.rb +14 -0
  42. data/lib/jeweler/commands/version/write.rb +12 -0
  43. data/lib/jeweler/commands/write_gemspec.rb +39 -0
  44. data/lib/jeweler/errors.rb +20 -0
  45. data/lib/jeweler/gemspec_helper.rb +79 -0
  46. data/lib/jeweler/generator.rb +306 -0
  47. data/lib/jeweler/generator/application.rb +54 -0
  48. data/lib/jeweler/generator/bacon_mixin.rb +43 -0
  49. data/lib/jeweler/generator/micronaut_mixin.rb +41 -0
  50. data/lib/jeweler/generator/minitest_mixin.rb +42 -0
  51. data/lib/jeweler/generator/options.rb +102 -0
  52. data/lib/jeweler/generator/rdoc_mixin.rb +9 -0
  53. data/lib/jeweler/generator/rspec_mixin.rb +42 -0
  54. data/lib/jeweler/generator/shoulda_mixin.rb +42 -0
  55. data/lib/jeweler/generator/testunit_mixin.rb +39 -0
  56. data/lib/jeweler/generator/yard_mixin.rb +14 -0
  57. data/lib/jeweler/rubyforge_tasks.rb +98 -0
  58. data/lib/jeweler/specification.rb +66 -0
  59. data/lib/jeweler/tasks.rb +135 -0
  60. data/lib/jeweler/templates/.document +5 -0
  61. data/lib/jeweler/templates/.gitignore +5 -0
  62. data/lib/jeweler/templates/LICENSE +20 -0
  63. data/lib/jeweler/templates/README.rdoc +18 -0
  64. data/lib/jeweler/templates/Rakefile +153 -0
  65. data/lib/jeweler/templates/bacon/flunking.rb +7 -0
  66. data/lib/jeweler/templates/bacon/helper.rb +8 -0
  67. data/lib/jeweler/templates/features/default.feature +9 -0
  68. data/lib/jeweler/templates/features/support/env.rb +8 -0
  69. data/lib/jeweler/templates/micronaut/flunking.rb +7 -0
  70. data/lib/jeweler/templates/micronaut/helper.rb +17 -0
  71. data/lib/jeweler/templates/minitest/flunking.rb +7 -0
  72. data/lib/jeweler/templates/minitest/helper.rb +11 -0
  73. data/lib/jeweler/templates/rspec/flunking.rb +7 -0
  74. data/lib/jeweler/templates/rspec/helper.rb +10 -0
  75. data/lib/jeweler/templates/shoulda/flunking.rb +7 -0
  76. data/lib/jeweler/templates/shoulda/helper.rb +10 -0
  77. data/lib/jeweler/templates/testunit/flunking.rb +7 -0
  78. data/lib/jeweler/templates/testunit/helper.rb +9 -0
  79. data/lib/jeweler/version_helper.rb +128 -0
  80. data/test/fixtures/bar/VERSION.yml +4 -0
  81. data/test/fixtures/bar/bin/foo_the_ultimate_bin +1 -0
  82. data/test/fixtures/bar/hey_include_me_in_gemspec +0 -0
  83. data/test/fixtures/bar/lib/foo_the_ultimate_lib.rb +1 -0
  84. data/test/fixtures/existing-project-with-version-plaintext/.document +5 -0
  85. data/test/fixtures/existing-project-with-version-plaintext/.gitignore +5 -0
  86. data/test/fixtures/existing-project-with-version-plaintext/LICENSE +20 -0
  87. data/test/fixtures/existing-project-with-version-plaintext/README.rdoc +7 -0
  88. data/test/fixtures/existing-project-with-version-plaintext/Rakefile +82 -0
  89. data/test/fixtures/existing-project-with-version-plaintext/VERSION +1 -0
  90. data/test/fixtures/existing-project-with-version-plaintext/existing-project-with-version.gemspec +29 -0
  91. data/test/fixtures/existing-project-with-version-plaintext/lib/existing_project_with_version.rb +0 -0
  92. data/test/fixtures/existing-project-with-version-plaintext/test/existing_project_with_version_test.rb +7 -0
  93. data/test/fixtures/existing-project-with-version-plaintext/test/test_helper.rb +10 -0
  94. data/test/fixtures/existing-project-with-version-yaml/.document +5 -0
  95. data/test/fixtures/existing-project-with-version-yaml/.gitignore +5 -0
  96. data/test/fixtures/existing-project-with-version-yaml/LICENSE +20 -0
  97. data/test/fixtures/existing-project-with-version-yaml/README.rdoc +7 -0
  98. data/test/fixtures/existing-project-with-version-yaml/Rakefile +82 -0
  99. data/test/fixtures/existing-project-with-version-yaml/VERSION.yml +4 -0
  100. data/test/fixtures/existing-project-with-version-yaml/bin/foo_the_ultimate_bin +0 -0
  101. data/test/fixtures/existing-project-with-version-yaml/existing-project-with-version.gemspec +29 -0
  102. data/test/fixtures/existing-project-with-version-yaml/lib/existing_project_with_version.rb +0 -0
  103. data/test/fixtures/existing-project-with-version-yaml/test/existing_project_with_version_test.rb +7 -0
  104. data/test/fixtures/existing-project-with-version-yaml/test/test_helper.rb +10 -0
  105. data/test/geminstaller.yml +12 -0
  106. data/test/jeweler/commands/test_build_gem.rb +72 -0
  107. data/test/jeweler/commands/test_install_gem.rb +74 -0
  108. data/test/jeweler/commands/test_release.rb +362 -0
  109. data/test/jeweler/commands/test_release_to_rubyforge.rb +157 -0
  110. data/test/jeweler/commands/test_setup_rubyforge.rb +182 -0
  111. data/test/jeweler/commands/test_validate_gemspec.rb +27 -0
  112. data/test/jeweler/commands/test_write_gemspec.rb +92 -0
  113. data/test/jeweler/commands/version/test_base.rb +32 -0
  114. data/test/jeweler/commands/version/test_bump_major.rb +22 -0
  115. data/test/jeweler/commands/version/test_bump_minor.rb +19 -0
  116. data/test/jeweler/commands/version/test_bump_patch.rb +20 -0
  117. data/test/jeweler/commands/version/test_write.rb +23 -0
  118. data/test/shoulda_macros/jeweler_macros.rb +35 -0
  119. data/test/test_application.rb +139 -0
  120. data/test/test_gemspec_helper.rb +40 -0
  121. data/test/test_generator.rb +166 -0
  122. data/test/test_generator_initialization.rb +156 -0
  123. data/test/test_generator_mixins.rb +18 -0
  124. data/test/test_helper.rb +159 -0
  125. data/test/test_jeweler.rb +174 -0
  126. data/test/test_options.rb +149 -0
  127. data/test/test_specification.rb +61 -0
  128. data/test/test_tasks.rb +35 -0
  129. data/test/test_version_helper.rb +153 -0
  130. metadata +283 -0
@@ -0,0 +1,156 @@
1
+ require 'test_helper'
2
+
3
+ class TestGeneratorInitialization < Test::Unit::TestCase
4
+ def setup
5
+ @project_name = 'the-perfect-gem'
6
+ @git_name = 'foo'
7
+ @git_email = 'bar@example.com'
8
+ @github_user = 'technicalpickles'
9
+ @github_token = 'zomgtoken'
10
+ end
11
+
12
+ def stub_git_config(options = {})
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 }
18
+ end
19
+
20
+ context "given a nil github repo name" do
21
+ setup do
22
+ stub_git_config
23
+
24
+ @block = lambda { }
25
+ end
26
+
27
+ should 'raise NoGithubRepoNameGiven' do
28
+ assert_raise Jeweler::NoGitHubRepoNameGiven do
29
+ Jeweler::Generator.new(nil)
30
+ end
31
+ end
32
+ end
33
+
34
+ context "without git user's name set" do
35
+ setup do
36
+ stub_git_config 'user.email' => @git_email
37
+ end
38
+
39
+ should 'raise an NoGitUserName' do
40
+ assert_raise Jeweler::NoGitUserName do
41
+ Jeweler::Generator.new(@project_name)
42
+ end
43
+ end
44
+ end
45
+
46
+ context "without git user's email set" do
47
+ setup do
48
+ stub_git_config 'user.name' => @git_name
49
+ end
50
+
51
+ should 'raise NoGitUserName' do
52
+ assert_raise Jeweler::NoGitUserEmail do
53
+ Jeweler::Generator.new(@project_name)
54
+ end
55
+ end
56
+ end
57
+
58
+ context "without github username set" do
59
+ setup do
60
+ stub_git_config 'user.email' => @git_email, 'user.name' => @git_name
61
+ end
62
+
63
+ should 'raise NotGitHubUser' do
64
+ assert_raise Jeweler::NoGitHubUser do
65
+ Jeweler::Generator.new(@project_name)
66
+ end
67
+ end
68
+ end
69
+
70
+ context "without github token set" do
71
+ setup do
72
+ stub_git_config 'user.name' => @git_name, 'user.email' => @git_email, 'github.user' => @github_user
73
+ end
74
+
75
+ should 'raise NoGitHubToken if creating repo' do
76
+ assert_raise Jeweler::NoGitHubToken do
77
+ Jeweler::Generator.new(@project_name, :create_repo => true)
78
+ end
79
+ end
80
+ end
81
+
82
+ context "default configuration" do
83
+ setup do
84
+ stub_git_config valid_git_config
85
+ @generator = Jeweler::Generator.new(@project_name)
86
+ end
87
+
88
+ should "use shoulda for testing" do
89
+ assert_equal :shoulda, @generator.testing_framework
90
+ end
91
+
92
+ should "use rdoc for documentation" do
93
+ assert_equal :rdoc, @generator.documentation_framework
94
+ end
95
+
96
+ should "set todo in summary" do
97
+ assert_match /todo/i, @generator.summary
98
+ end
99
+
100
+ should "set todo in description" do
101
+ assert_match /todo/i, @generator.description
102
+ end
103
+
104
+ should "set target directory to the project name" do
105
+ assert_equal @project_name, @generator.target_dir
106
+ end
107
+
108
+ should "set user's name from git config" do
109
+ assert_equal @git_name, @generator.user_name
110
+ end
111
+
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
154
+ end
155
+ end
156
+ end
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+
3
+ class TestGeneratorMixins < Test::Unit::TestCase
4
+
5
+ [Jeweler::Generator::BaconMixin, Jeweler::Generator::MicronautMixin,
6
+ Jeweler::Generator::RspecMixin, Jeweler::Generator::ShouldaMixin,
7
+ Jeweler::Generator::TestunitMixin, Jeweler::Generator::MinitestMixin].each do |mixin|
8
+ context "#{mixin}" do
9
+ %w(default_task feature_support_require feature_support_extend
10
+ test_dir test_task test_pattern test_filename
11
+ test_helper_filename).each do |method|
12
+ should "define #{method}" do
13
+ assert mixin.method_defined?(method)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,159 @@
1
+ require 'test/unit'
2
+
3
+ require 'rubygems'
4
+ begin
5
+ require 'ruby-debug'
6
+ rescue LoadError
7
+ end
8
+
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
+
22
+ require 'time'
23
+
24
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
25
+ require 'jeweler'
26
+
27
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
28
+ require 'shoulda_macros/jeweler_macros'
29
+
30
+ TMP_DIR = File.expand_path('../tmp', __FILE__)
31
+ FIXTURE_DIR = File.expand_path('../fixtures', __FILE__)
32
+
33
+ class RubyForgeStub
34
+ attr_accessor :userconfig, :autoconfig
35
+ def initialize
36
+ @userconfig = {}
37
+ @autoconfig = {}
38
+ end
39
+ end
40
+
41
+ class Test::Unit::TestCase
42
+ include RR::Adapters::TestUnit unless include?(RR::Adapters::TestUnit)
43
+
44
+ def tmp_dir
45
+ TMP_DIR
46
+ end
47
+
48
+ def fixture_dir
49
+ File.join(FIXTURE_DIR, 'bar')
50
+ end
51
+
52
+ def remove_tmpdir!
53
+ FileUtils.rm_rf(tmp_dir)
54
+ end
55
+
56
+ def create_tmpdir!
57
+ FileUtils.mkdir_p(tmp_dir)
58
+ end
59
+
60
+ def build_spec(*files)
61
+ Gem::Specification.new do |s|
62
+ s.name = "bar"
63
+ s.summary = "Simple and opinionated helper for creating Rubygem projects on GitHub"
64
+ s.email = "josh@technicalpickles.com"
65
+ s.homepage = "http://github.com/technicalpickles/jeweler"
66
+ s.description = "Simple and opinionated helper for creating Rubygem projects on GitHub"
67
+ s.authors = ["Josh Nichols"]
68
+ s.files = FileList[*files] unless files.empty?
69
+ s.version = '0.1.1'
70
+ end
71
+ end
72
+
73
+ def self.gemcutter_command_context(description, &block)
74
+ context description do
75
+ setup do
76
+ @command = eval(self.class.name.gsub(/::Test/, '::')).new
77
+
78
+ if @command.respond_to? :gemspec_helper=
79
+ @gemspec_helper = Object.new
80
+ @command.gemspec_helper = @gemspec_helper
81
+ end
82
+
83
+ if @command.respond_to? :output
84
+ @output = StringIO.new
85
+ @command.output = @output
86
+ end
87
+ end
88
+
89
+ context "", &block
90
+ end
91
+ end
92
+
93
+ def self.rubyforge_command_context(description, &block)
94
+ context description do
95
+ setup do
96
+ @command = eval(self.class.name.gsub(/::Test/, '::')).new
97
+
98
+ if @command.respond_to? :gemspec=
99
+ @gemspec = Object.new
100
+ @command.gemspec = @gemspec
101
+ end
102
+
103
+ if @command.respond_to? :gemspec_helper=
104
+ @gemspec_helper = Object.new
105
+ @command.gemspec_helper = @gemspec_helper
106
+ end
107
+
108
+ if @command.respond_to? :rubyforge=
109
+ @rubyforge = RubyForgeStub.new
110
+ @command.rubyforge = @rubyforge
111
+ end
112
+
113
+ if @command.respond_to? :output
114
+ @output = StringIO.new
115
+ @command.output = @output
116
+ end
117
+
118
+ if @command.respond_to? :repo
119
+ @repo = Object.new
120
+ @command.repo = @repo
121
+ end
122
+ end
123
+
124
+ context "", &block
125
+ end
126
+ end
127
+
128
+ def self.build_command_context(description, &block)
129
+ context description do
130
+ setup do
131
+
132
+ @repo = Object.new
133
+ @version_helper = Object.new
134
+ @gemspec = Object.new
135
+ @commit = Object.new
136
+ @version = Object.new
137
+ @output = Object.new
138
+ @base_dir = Object.new
139
+ @gemspec_helper = Object.new
140
+ @rubyforge = Object.new
141
+
142
+ @jeweler = Object.new
143
+
144
+ stub(@jeweler).repo { @repo }
145
+ stub(@jeweler).version_helper { @version_helper }
146
+ stub(@jeweler).gemspec { @gemspec }
147
+ stub(@jeweler).commit { @commit }
148
+ stub(@jeweler).version { @version }
149
+ stub(@jeweler).output { @output }
150
+ stub(@jeweler).gemspec_helper { @gemspec_helper }
151
+ stub(@jeweler).base_dir { @base_dir }
152
+ stub(@jeweler).rubyforge { @rubyforge }
153
+ end
154
+
155
+ context "", &block
156
+ end
157
+
158
+ end
159
+ end
@@ -0,0 +1,174 @@
1
+ require 'test_helper'
2
+
3
+ class TestJeweler < Test::Unit::TestCase
4
+
5
+ def build_jeweler(base_dir = nil)
6
+ base_dir ||= non_git_dir_path
7
+ FileUtils.mkdir_p base_dir
8
+
9
+ Jeweler.new(build_spec, base_dir)
10
+ end
11
+
12
+ def git_dir_path
13
+ File.join(tmp_dir, 'git')
14
+ end
15
+
16
+ def non_git_dir_path
17
+ File.join(tmp_dir, 'nongit')
18
+ end
19
+
20
+ def build_git_dir
21
+
22
+ FileUtils.mkdir_p git_dir_path
23
+ Dir.chdir git_dir_path do
24
+ Git.init
25
+ end
26
+ end
27
+
28
+ def build_non_git_dir
29
+ FileUtils.mkdir_p non_git_dir_path
30
+ end
31
+
32
+ should "raise an error if a nil gemspec is given" do
33
+ assert_raises Jeweler::GemspecError do
34
+ Jeweler.new(nil)
35
+ end
36
+ end
37
+
38
+ should "know if it is in a git repo" do
39
+ build_git_dir
40
+
41
+ assert build_jeweler(git_dir_path).in_git_repo?
42
+ end
43
+
44
+ should "know if it is not in a git repo" do
45
+ build_non_git_dir
46
+
47
+ jeweler = build_jeweler(non_git_dir_path)
48
+ assert ! jeweler.in_git_repo?, "jeweler doesn't know that #{jeweler.base_dir} is not a git repository"
49
+ end
50
+
51
+ should "build and run write gemspec command when writing gemspec" do
52
+ jeweler = build_jeweler
53
+
54
+ command = Object.new
55
+ mock(command).run
56
+
57
+ mock(Jeweler::Commands::WriteGemspec).build_for(jeweler) { command }
58
+
59
+ jeweler.write_gemspec
60
+ end
61
+
62
+ should "build and run validate gemspec command when validating gemspec" do
63
+ jeweler = build_jeweler
64
+
65
+ command = Object.new
66
+ mock(command).run
67
+
68
+ mock(Jeweler::Commands::ValidateGemspec).build_for(jeweler) { command }
69
+
70
+ jeweler.validate_gemspec
71
+ end
72
+
73
+ should "build and run build gem command when building gem" do
74
+ jeweler = build_jeweler
75
+
76
+ command = Object.new
77
+ mock(command).run
78
+
79
+ mock(Jeweler::Commands::BuildGem).build_for(jeweler) { command }
80
+
81
+ jeweler.build_gem
82
+ end
83
+
84
+ should "build and run build gem command when installing gem" do
85
+ jeweler = build_jeweler
86
+
87
+ command = Object.new
88
+ mock(command).run
89
+
90
+ mock(Jeweler::Commands::InstallGem).build_for(jeweler) { command }
91
+
92
+ jeweler.install_gem
93
+ end
94
+
95
+ should "build and run bump major version command when bumping major version" do
96
+ jeweler = build_jeweler
97
+
98
+ command = Object.new
99
+ mock(command).run
100
+
101
+ mock(Jeweler::Commands::Version::BumpMajor).build_for(jeweler) { command }
102
+
103
+ jeweler.bump_major_version
104
+ end
105
+
106
+ should "build and run bump minor version command when bumping minor version" do
107
+ jeweler = build_jeweler
108
+
109
+ command = Object.new
110
+ mock(command).run
111
+
112
+ mock(Jeweler::Commands::Version::BumpMinor).build_for(jeweler) { command }
113
+
114
+ jeweler.bump_minor_version
115
+ end
116
+
117
+ should "build and run write version command when writing version" do
118
+ jeweler = build_jeweler
119
+
120
+ command = Object.new
121
+ mock(command).run
122
+ mock(command).major=(1)
123
+ mock(command).minor=(5)
124
+ mock(command).patch=(2)
125
+
126
+ mock(Jeweler::Commands::Version::Write).build_for(jeweler) { command }
127
+
128
+ jeweler.write_version(1, 5, 2)
129
+ end
130
+
131
+ should "build and run release command when running release" do
132
+ jeweler = build_jeweler
133
+
134
+ command = Object.new
135
+ mock(command).run
136
+
137
+ mock(Jeweler::Commands::Release).build_for(jeweler) { command }
138
+
139
+ jeweler.release
140
+ end
141
+
142
+ should "build and run release to rubyforge command when running release to rubyforge" do
143
+ jeweler = build_jeweler
144
+
145
+ command = Object.new
146
+ mock(command).run
147
+
148
+ mock(Jeweler::Commands::ReleaseToRubyforge).build_for(jeweler) { command }
149
+
150
+ jeweler.release_gem_to_rubyforge
151
+ end
152
+
153
+
154
+ should "respond to gemspec_helper" do
155
+ assert_respond_to build_jeweler, :gemspec_helper
156
+ end
157
+
158
+ should "respond to version_helper" do
159
+ assert_respond_to build_jeweler, :version_helper
160
+ end
161
+
162
+ should "respond to repo" do
163
+ assert_respond_to build_jeweler, :repo
164
+ end
165
+
166
+ should "respond to commit" do
167
+ assert_respond_to build_jeweler, :commit
168
+ end
169
+
170
+ should "respond to rubyforge" do
171
+ assert_respond_to build_jeweler, :rubyforge
172
+ end
173
+
174
+ end