bueller 0.0.1

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.
Files changed (109) hide show
  1. data/ChangeLog.markdown +141 -0
  2. data/LICENSE +20 -0
  3. data/README.markdown +182 -0
  4. data/bin/bueller +5 -0
  5. data/lib/bueller/commands/build_gem.rb +50 -0
  6. data/lib/bueller/commands/git_tag_release.rb +63 -0
  7. data/lib/bueller/commands/install_gem.rb +36 -0
  8. data/lib/bueller/commands/release_to_github.rb +41 -0
  9. data/lib/bueller/commands/release_to_rubygems.rb +26 -0
  10. data/lib/bueller/commands/version/base.rb +36 -0
  11. data/lib/bueller/commands/version/bump_major.rb +11 -0
  12. data/lib/bueller/commands/version/bump_minor.rb +12 -0
  13. data/lib/bueller/commands/version/bump_patch.rb +14 -0
  14. data/lib/bueller/commands/version/write.rb +21 -0
  15. data/lib/bueller/commands/write_gemspec.rb +29 -0
  16. data/lib/bueller/commands.rb +18 -0
  17. data/lib/bueller/errors.rb +8 -0
  18. data/lib/bueller/gemspec_helper.rb +83 -0
  19. data/lib/bueller/generator/application.rb +51 -0
  20. data/lib/bueller/generator/bacon_mixin.rb +43 -0
  21. data/lib/bueller/generator/github_mixin.rb +29 -0
  22. data/lib/bueller/generator/micronaut_mixin.rb +41 -0
  23. data/lib/bueller/generator/minitest_mixin.rb +42 -0
  24. data/lib/bueller/generator/options.rb +154 -0
  25. data/lib/bueller/generator/rdoc_mixin.rb +9 -0
  26. data/lib/bueller/generator/riot_mixin.rb +42 -0
  27. data/lib/bueller/generator/rspec_mixin.rb +50 -0
  28. data/lib/bueller/generator/shindo_mixin.rb +44 -0
  29. data/lib/bueller/generator/shoulda_mixin.rb +42 -0
  30. data/lib/bueller/generator/testspec_mixin.rb +42 -0
  31. data/lib/bueller/generator/testunit_mixin.rb +39 -0
  32. data/lib/bueller/generator/yard_mixin.rb +14 -0
  33. data/lib/bueller/generator.rb +291 -0
  34. data/lib/bueller/rubyforge_tasks.rb +88 -0
  35. data/lib/bueller/tasks.rb +133 -0
  36. data/lib/bueller/templates/.document +11 -0
  37. data/lib/bueller/templates/.gitignore +40 -0
  38. data/lib/bueller/templates/Gemfile +1 -0
  39. data/lib/bueller/templates/LICENSE +20 -0
  40. data/lib/bueller/templates/README.rdoc +17 -0
  41. data/lib/bueller/templates/Rakefile +20 -0
  42. data/lib/bueller/templates/bacon/flunking.rb +7 -0
  43. data/lib/bueller/templates/bacon/helper.rb +8 -0
  44. data/lib/bueller/templates/bueller_tasks.erb +10 -0
  45. data/lib/bueller/templates/features/default.feature +9 -0
  46. data/lib/bueller/templates/features/support/env.rb +16 -0
  47. data/lib/bueller/templates/gemspec +27 -0
  48. data/lib/bueller/templates/micronaut/flunking.rb +7 -0
  49. data/lib/bueller/templates/micronaut/helper.rb +17 -0
  50. data/lib/bueller/templates/minitest/flunking.rb +7 -0
  51. data/lib/bueller/templates/minitest/helper.rb +11 -0
  52. data/lib/bueller/templates/other_tasks.erb +84 -0
  53. data/lib/bueller/templates/riot/flunking.rb +11 -0
  54. data/lib/bueller/templates/riot/helper.rb +3 -0
  55. data/lib/bueller/templates/rspec/.rspec +1 -0
  56. data/lib/bueller/templates/rspec/flunking.rb +7 -0
  57. data/lib/bueller/templates/rspec/helper.rb +19 -0
  58. data/lib/bueller/templates/shindo/flunking.rb +8 -0
  59. data/lib/bueller/templates/shindo/helper.rb +5 -0
  60. data/lib/bueller/templates/shoulda/flunking.rb +7 -0
  61. data/lib/bueller/templates/shoulda/helper.rb +10 -0
  62. data/lib/bueller/templates/testspec/flunking.rb +7 -0
  63. data/lib/bueller/templates/testspec/helper.rb +7 -0
  64. data/lib/bueller/templates/testunit/flunking.rb +7 -0
  65. data/lib/bueller/templates/testunit/helper.rb +9 -0
  66. data/lib/bueller/version_helper.rb +59 -0
  67. data/lib/bueller.rb +139 -0
  68. data/spec/bueller/commands/build_gem_spec.rb +38 -0
  69. data/spec/bueller/commands/git_tag_release_spec.rb +79 -0
  70. data/spec/bueller/commands/install_gem_spec.rb +11 -0
  71. data/spec/bueller/commands/release_to_github_spec.rb +54 -0
  72. data/spec/bueller/commands/release_to_rubygems_spec.rb +15 -0
  73. data/spec/bueller/commands/version/bump_major_spec.rb +12 -0
  74. data/spec/bueller/commands/version/bump_minor_spec.rb +12 -0
  75. data/spec/bueller/commands/version/bump_patch_spec.rb +12 -0
  76. data/spec/bueller/commands/write_gemspec_spec.rb +32 -0
  77. data/spec/bueller/gemspec_helper_spec.rb +55 -0
  78. data/spec/bueller/generator/application_spec.rb +67 -0
  79. data/spec/bueller/generator/options_spec.rb +206 -0
  80. data/spec/bueller/generator_mixins_spec.rb +23 -0
  81. data/spec/bueller/generator_spec.rb +274 -0
  82. data/spec/bueller/tasks_spec.rb +29 -0
  83. data/spec/bueller/version_helper_spec.rb +57 -0
  84. data/spec/bueller_spec.rb +94 -0
  85. data/spec/fixtures/bar/bar.gemspec +41 -0
  86. data/spec/fixtures/bar/bin/foo_the_ultimate_bin +1 -0
  87. data/spec/fixtures/bar/hey_include_me_in_gemspec +0 -0
  88. data/spec/fixtures/bar/lib/foo_the_ultimate_lib.rb +1 -0
  89. data/spec/fixtures/existing-project/LICENSE +20 -0
  90. data/spec/fixtures/existing-project/README.rdoc +7 -0
  91. data/spec/fixtures/existing-project/Rakefile +69 -0
  92. data/spec/fixtures/existing-project/existing-project.gemspec +20 -0
  93. data/spec/fixtures/existing-project/lib/existing_project_with_version.rb +0 -0
  94. data/spec/fixtures/existing-project/test/existing_project_with_version_test.rb +7 -0
  95. data/spec/fixtures/existing-project/test/test_helper.rb +10 -0
  96. data/spec/fixtures/existing-project-with-version-constant/LICENSE +20 -0
  97. data/spec/fixtures/existing-project-with-version-constant/README.rdoc +7 -0
  98. data/spec/fixtures/existing-project-with-version-constant/Rakefile +69 -0
  99. data/spec/fixtures/existing-project-with-version-constant/existing-project-with-version.gemspec +19 -0
  100. data/spec/fixtures/existing-project-with-version-constant/lib/existing_project_with_version.rb +0 -0
  101. data/spec/fixtures/existing-project-with-version-constant/test/existing_project_with_version_test.rb +7 -0
  102. data/spec/fixtures/existing-project-with-version-constant/test/test_helper.rb +10 -0
  103. data/spec/spec_helper.rb +11 -0
  104. data/spec/support/application.rb +28 -0
  105. data/spec/support/file_system.rb +24 -0
  106. data/spec/support/gemspec.rb +28 -0
  107. data/spec/support/git.rb +19 -0
  108. data/spec/support/have_version.rb +18 -0
  109. metadata +381 -0
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ # FIXME: use example groups/it_should_behave_like instead
4
+ describe 'Bueller::Generator Mixins' do
5
+ [Bueller::Generator::BaconMixin,
6
+ Bueller::Generator::MicronautMixin,
7
+ Bueller::Generator::MinitestMixin,
8
+ Bueller::Generator::RspecMixin,
9
+ Bueller::Generator::ShouldaMixin,
10
+ Bueller::Generator::TestspecMixin,
11
+ Bueller::Generator::TestunitMixin,
12
+ ].each do |mixin|
13
+ describe "#{mixin}" do
14
+ %w(default_task feature_support_require feature_support_extend
15
+ test_dir test_task test_pattern test_filename
16
+ test_helper_filename).each do |method|
17
+ it "should define #{method}" do
18
+ mixin.method_defined?(method).should be_true
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,274 @@
1
+ require 'spec_helper'
2
+
3
+ describe Bueller::Generator do
4
+ let(:options) do
5
+ { :project_name => 'the-perfect-gem',
6
+ :user_name => 'John Doe',
7
+ :user_email => 'john@example.com',
8
+ :github_username => 'johndoe',
9
+ :github_token => 'yyz',
10
+ :documentation_framework => :rdoc,
11
+ :testing_framework => :rspec }
12
+ end
13
+ let(:generator) { Bueller::Generator.new options }
14
+
15
+ describe '#initialize' do
16
+ context "given a nil github repo name" do
17
+ before :each do
18
+ GitSupport.stub_config
19
+ end
20
+
21
+ it 'should raise NoGithubRepoNameGiven' do
22
+ pending "don't be so picky"
23
+ assert_raise Bueller::NoGitHubRepoNameGiven do
24
+ Bueller::Generator.new()
25
+ end
26
+ end
27
+ end
28
+
29
+ context "without git user's name set" do
30
+ before :each do
31
+ GitSupport.stub_config
32
+ end
33
+
34
+ it 'should raise an NoGitUserName' do
35
+ pending "don't be so picky"
36
+ assert_raise Bueller::NoGitUserName do
37
+ Bueller::Generator.new(:project_name => @project_name, :testing_framework => :shoulda, :documentation_framework => :rdoc)
38
+ end
39
+ end
40
+ end
41
+
42
+ context "without git user's email set" do
43
+ before :each do
44
+ GitSupport.stub_config
45
+ end
46
+
47
+ it 'should raise NoGitUserEmail' do
48
+ pending "don't be so picky"
49
+ assert_raise Bueller::NoGitUserEmail do
50
+ Bueller::Generator.new(:project_name => @project_name, :user_name => GitSupport.name, :testing_framework => :shoulda, :documentation_framework => :rdoc)
51
+ end
52
+ end
53
+ end
54
+
55
+ context "without github username set" do
56
+ before :each do
57
+ GitSupport.stub_config
58
+ end
59
+
60
+ it 'should raise NotGitHubUser' do
61
+ pending "don't be so picky"
62
+ assert_raise Bueller::NoGitHubUser do
63
+ Bueller::Generator.new(:project_name => @project_name, :user_name => GitSupport.name, :user_email => GitSupport.email, :testing_framework => :shoulda, :documentation_framework => :rdoc)
64
+ end
65
+ end
66
+ end
67
+
68
+ context "without github token set" do
69
+ before :each do
70
+ GitSupport.stub_config
71
+ end
72
+
73
+ it 'should raise NoGitHubToken if creating repo' do
74
+ pending "don't be so picky"
75
+ assert_raise Bueller::NoGitHubToken do
76
+ Bueller::Generator.new(:project_name => @project_name, :user_name => GitSupport.name, :user_email => GitSupport.email, :github_username => @github_user, :create_repo => true, :testing_framework => :shoulda, :documentation_framework => :rdoc)
77
+ end
78
+ end
79
+ end
80
+
81
+ let(:defaults) do
82
+ defaults = { :project_name => GitSupport.project_name,
83
+ :user_name => GitSupport.name,
84
+ :user_email => GitSupport.email,
85
+ :github_username => GitSupport.github_user,
86
+ :github_token => GitSupport.github_token,
87
+ :testing_framework => :rspec,
88
+ :documentation_framework => :rdoc }
89
+
90
+ end
91
+ let(:generator) { Bueller::Generator.new(defaults) }
92
+
93
+ context "default configuration" do
94
+ before :each do
95
+ GitSupport.stub_config
96
+ end
97
+
98
+ it "should use rspec for testing" do
99
+ generator.testing_framework.should == :rspec
100
+ end
101
+
102
+ it "should use rdoc for documentation" do
103
+ generator.documentation_framework.should == :rdoc
104
+ end
105
+
106
+ it "should set todo in summary" do
107
+ generator.summary.should =~ /todo/i
108
+ end
109
+
110
+ it "should set todo in description" do
111
+ generator.description.should =~ /todo/i
112
+ end
113
+
114
+ it "should set target directory to the project name" do
115
+ generator.target_dir.should == GitSupport.project_name
116
+ end
117
+
118
+ it "should set user's name from git config" do
119
+ generator.user_name.should == GitSupport.name
120
+ end
121
+
122
+ it "should set email from git config" do
123
+ generator.user_email.should == GitSupport.email
124
+ end
125
+
126
+ it "should set origin remote as github, based on username and project name" do
127
+ generator.git_remote.should == "git@github.com:#{GitSupport.github_user}/#{GitSupport.project_name}.git"
128
+ end
129
+
130
+ it "should set homepage as github based on username and project name" do
131
+ generator.homepage.should == "http://github.com/#{GitSupport.github_user}/#{GitSupport.project_name}"
132
+ end
133
+
134
+ it "should set github username from git config" do
135
+ generator.github_username.should == GitSupport.github_user
136
+ end
137
+
138
+ it "should set project name as the-perfect-gem" do
139
+ generator.project_name.should == GitSupport.project_name
140
+ end
141
+ end
142
+
143
+ context "using yard" do
144
+ let(:generator) { Bueller::Generator.new(defaults.merge :documentation_framework => :yard) }
145
+
146
+ it "should set the doc_task to yardoc" do
147
+ generator.doc_task.should == "yardoc"
148
+ end
149
+
150
+ end
151
+
152
+ context "using rdoc" do
153
+ let(:generator) { Bueller::Generator.new(defaults.merge :documentation_framework => :rdoc) }
154
+
155
+ it "should set the doc_task to rdoc" do
156
+ generator.doc_task.should == "rdoc"
157
+ end
158
+ end
159
+
160
+ context "using a custom homepage" do
161
+ let(:generator) { Bueller::Generator.new(defaults.merge :homepage => 'http://zomg.com') }
162
+
163
+ it "should set the homepage" do
164
+ generator.homepage.should == "http://zomg.com"
165
+ end
166
+ end
167
+ end
168
+
169
+ it "should have the correct constant name" do
170
+ generator.constant_name.should == "ThePerfectGem"
171
+ end
172
+
173
+ it "should have the correct file name prefix" do
174
+ generator.file_name_prefix.should == "the_perfect_gem"
175
+ end
176
+
177
+ it "should have the correct require name" do
178
+ generator.require_name.should == "the-perfect-gem"
179
+ end
180
+
181
+ it "should have the correct lib file name" do
182
+ generator.lib_filename.should == "the-perfect-gem.rb"
183
+ end
184
+
185
+ it "should have the correct git-remote" do
186
+ generator.git_remote.should == 'git@github.com:johndoe/the-perfect-gem.git'
187
+ generator.git_remote = 'user@host:/path/to/repo'
188
+ generator.git_remote.should == 'user@host:/path/to/repo'
189
+ end
190
+
191
+ it 'should set up a project using shoulda' do
192
+ generator = Bueller::Generator.new options.merge(:testing_framework => :shoulda)
193
+ generator.test_task.should == 'test'
194
+ generator.test_dir.should == 'test'
195
+ generator.default_task.should == 'test'
196
+ generator.feature_support_require.should == 'test/unit/assertions'
197
+ generator.feature_support_extend.should == 'Test::Unit::Assertions'
198
+ generator.test_pattern.should == 'test/**/test_*.rb'
199
+ generator.test_filename.should == 'test_the-perfect-gem.rb'
200
+ generator.test_helper_filename.should == 'helper.rb'
201
+ end
202
+
203
+ it 'should create a project using testunit' do
204
+ generator = Bueller::Generator.new options.merge(:testing_framework => :testunit)
205
+ generator.test_task.should == 'test'
206
+ generator.test_dir.should == 'test'
207
+ generator.default_task.should == 'test'
208
+ generator.feature_support_require.should == 'test/unit/assertions'
209
+ generator.feature_support_extend.should == 'Test::Unit::Assertions'
210
+ generator.test_pattern.should == 'test/**/test_*.rb'
211
+ generator.test_filename.should == 'test_the-perfect-gem.rb'
212
+ generator.test_helper_filename.should == 'helper.rb'
213
+ end
214
+
215
+ it 'should create a project using minitest' do
216
+ generator = Bueller::Generator.new options.merge(:testing_framework => :minitest)
217
+ generator.test_task.should == 'test'
218
+ generator.test_dir.should == 'test'
219
+ generator.default_task.should == 'test'
220
+ generator.feature_support_require.should == 'minitest/unit'
221
+ generator.feature_support_extend.should == 'MiniTest::Assertions'
222
+ generator.test_pattern.should == 'test/**/test_*.rb'
223
+ generator.test_filename.should == 'test_the-perfect-gem.rb'
224
+ generator.test_helper_filename.should == 'helper.rb'
225
+ end
226
+
227
+ it 'should create a project using bacon' do
228
+ generator = Bueller::Generator.new options.merge(:testing_framework => :bacon)
229
+ generator.test_task.should == 'spec'
230
+ generator.test_dir.should == 'spec'
231
+ generator.default_task.should == 'spec'
232
+ generator.feature_support_require.should == 'test/unit/assertions'
233
+ generator.feature_support_extend.should == 'Test::Unit::Assertions'
234
+ generator.test_pattern.should == 'spec/**/*_spec.rb'
235
+ generator.test_filename.should == 'the-perfect-gem_spec.rb'
236
+ generator.test_helper_filename.should == 'spec_helper.rb'
237
+ end
238
+
239
+ it 'should create a project using rspec' do
240
+ generator = Bueller::Generator.new options.merge(:testing_framework => :rspec)
241
+ generator.test_task.should == 'examples'
242
+ generator.test_dir.should == 'spec'
243
+ generator.default_task.should == 'examples'
244
+ generator.feature_support_require.should == 'rspec/expectations'
245
+ generator.feature_support_extend.should == nil
246
+ generator.test_pattern.should == 'spec/**/*_spec.rb'
247
+ generator.test_filename.should == 'the-perfect-gem_spec.rb'
248
+ generator.test_helper_filename.should == 'spec_helper.rb'
249
+ end
250
+
251
+ it 'should create a project using micronaut' do
252
+ generator = Bueller::Generator.new options.merge(:testing_framework => :micronaut)
253
+ generator.test_task.should == 'examples'
254
+ generator.test_dir.should == 'examples'
255
+ generator.default_task.should == 'examples'
256
+ generator.feature_support_require.should == 'micronaut/expectations'
257
+ generator.feature_support_extend.should == 'Micronaut::Matchers'
258
+ generator.test_pattern.should == 'examples/**/*_example.rb'
259
+ generator.test_filename.should == 'the-perfect-gem_example.rb'
260
+ generator.test_helper_filename.should == 'example_helper.rb'
261
+ end
262
+
263
+ it 'should create a project using testspec' do
264
+ generator = Bueller::Generator.new options.merge(:testing_framework => :testspec)
265
+ generator.test_task.should == 'test'
266
+ generator.test_dir.should == 'test'
267
+ generator.default_task.should == 'test'
268
+ generator.feature_support_require.should == 'test/unit/assertions'
269
+ generator.feature_support_extend.should == 'Test::Unit::Assertions'
270
+ generator.test_pattern.should == 'test/**/*_test.rb'
271
+ generator.test_filename.should == 'the-perfect-gem_test.rb'
272
+ generator.test_helper_filename.should == 'test_helper.rb'
273
+ end
274
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+ require 'rake'
3
+
4
+ describe Bueller::Tasks do
5
+ let(:tasks) do
6
+ Dir.chdir(File.expand_path('../fixtures/bar', File.dirname(__FILE__))) do
7
+ Bueller::Tasks.new
8
+ end
9
+ end
10
+
11
+ after :each do
12
+ Rake::Task.clear
13
+ end
14
+
15
+ describe '#initialize' do
16
+ it 'should not eagerly initialize Bueller' do
17
+ tasks.instance_variable_defined?(:@bueller).should be_false
18
+ end
19
+ it 'should set self as the application-wide bueller tasks' do
20
+ tasks.should == Rake.application.bueller_tasks
21
+ end
22
+ end
23
+ describe '#bueller' do
24
+ it 'should initailize Bueller' do
25
+ tasks.bueller
26
+ tasks.instance_variable_defined?(:@bueller).should be_true
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+
3
+ describe Bueller::VersionHelper do
4
+
5
+ let(:gemspec_helper) { mock Bueller::GemSpecHelper, :has_version? => true }
6
+ let(:helper) { Bueller::VersionHelper.new gemspec_helper }
7
+
8
+ describe "full version" do
9
+ before do
10
+ gemspec_helper.stub!(:version).and_return '3.5.4'
11
+ end
12
+
13
+ it 'should have version 3.5.4' do
14
+ helper.should have_version(3, 5, 4)
15
+ end
16
+
17
+ it "should bump major version" do
18
+ helper.bump_major
19
+ helper.should have_version(4, 0, 0)
20
+ end
21
+
22
+ it "should bump the minor version" do
23
+ helper.bump_minor
24
+ helper.should have_version(3, 6, 0)
25
+ end
26
+
27
+ it "should bump the patch version" do
28
+ helper.bump_patch
29
+ helper.should have_version(3, 5, 5)
30
+ end
31
+ end
32
+
33
+ describe "prerelease version" do
34
+ before do
35
+ gemspec_helper.stub!(:version).and_return '3.5.4.a1'
36
+ end
37
+
38
+ it 'should be version 3.5.4.a1' do
39
+ helper.should have_build_version(3, 5, 4, 'a1')
40
+ end
41
+
42
+ it "should bump major version" do
43
+ helper.bump_major
44
+ helper.should have_build_version(4, 0, 0, nil)
45
+ end
46
+
47
+ it "should bump the minor version" do
48
+ helper.bump_minor
49
+ helper.should have_build_version(3, 6, 0, nil)
50
+ end
51
+
52
+ it "should bump the patch version" do
53
+ helper.bump_patch
54
+ helper.should have_build_version(3, 5, 5, nil)
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,94 @@
1
+ require 'spec_helper'
2
+
3
+ describe Bueller do
4
+ let(:bueller_with_git) { Bueller.new(git_dir_path) }
5
+ let(:bueller_without_git) { Bueller.new(non_git_dir_path) }
6
+ let(:bueller) { Bueller.new(git_dir_path) }
7
+ let(:git_dir_path) { File.join(FileSystem.tmp_dir, 'git') }
8
+ let(:non_git_dir_path) { File.join(FileSystem.tmp_dir, 'nongit') }
9
+
10
+ describe '#in_git_repo?' do
11
+ it 'should return true if it is in a git repo' do
12
+ FileUtils.mkdir_p git_dir_path
13
+ Dir.chdir git_dir_path do
14
+ Git.init
15
+ end
16
+ bueller_with_git.should be_in_git_repo
17
+ end
18
+ it 'should return false if it is not in a git repo' do
19
+ FileUtils.mkdir_p non_git_dir_path
20
+ bueller_without_git.should_not be_in_git_repo
21
+ end
22
+ end
23
+
24
+ describe '#git_base_dir' do
25
+ it 'should find the base repo' do
26
+ bueller = Bueller.new(File.dirname(File.expand_path(__FILE__)))
27
+ bueller.git_base_dir.should == File.dirname(File.dirname(File.expand_path(__FILE__)))
28
+ end
29
+ end
30
+
31
+ describe '#write_gemspec' do
32
+ it 'should build and run write gemspec command when writing gemspec' do
33
+ Bueller::Commands::WriteGemspec.should_receive(:run_for).with(bueller)
34
+
35
+ bueller.write_gemspec
36
+ end
37
+ end
38
+
39
+ describe '#build_gem' do
40
+ it 'should build and run build gem command when building gem' do
41
+ Bueller::Commands::BuildGem.should_receive(:run_for).with(bueller)
42
+
43
+ bueller.build_gem
44
+ end
45
+ end
46
+
47
+ describe '#install_gem' do
48
+ it 'should build and run build gem command when installing gem' do
49
+ Bueller::Commands::InstallGem.should_receive(:run_for).with(bueller)
50
+
51
+ bueller.install_gem
52
+ end
53
+ end
54
+
55
+ describe '#bump_major_version' do
56
+ it 'should build and run bump major version command when bumping major version' do
57
+ Bueller::Commands::Version::BumpMajor.should_receive(:run_for).with(bueller)
58
+
59
+ bueller.bump_major_version
60
+ end
61
+ end
62
+
63
+ describe '#bump_major_version' do
64
+ it 'should build and run bump minor version command when bumping minor version' do
65
+ Bueller::Commands::Version::BumpMinor.should_receive(:run_for).with(bueller)
66
+
67
+ bueller.bump_minor_version
68
+ end
69
+ end
70
+
71
+ describe '#bump_major_version' do
72
+ it 'should build and run write version command when writing version' do
73
+ Bueller::Commands::Version::Write.should_receive(:run_for).with(bueller, 1, 5, 2, 'a1')
74
+
75
+ bueller.write_version(1, 5, 2, 'a1')
76
+ end
77
+ end
78
+
79
+ describe '#bump_major_version' do
80
+ it 'should build and run release to github command when running release_gem_to_github' do
81
+ Bueller::Commands::ReleaseToGithub.should_receive(:run_for).with(bueller)
82
+
83
+ bueller.release_gem_to_github
84
+ end
85
+ end
86
+
87
+ describe '#bump_major_version' do
88
+ it 'should build and tag the release' do
89
+ Bueller::Commands::GitTagRelease.should_receive(:run_for).with(bueller)
90
+
91
+ bueller.git_tag_release
92
+ end
93
+ end
94
+ end