jeweler 0.11.0 → 0.11.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.
@@ -0,0 +1,113 @@
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.instance_of(Git::Lib).parse_config('~/.gitconfig') { options }
14
+ end
15
+
16
+ context "given a nil github repo name" do
17
+ setup do
18
+ stub_git_config
19
+
20
+ @block = lambda { }
21
+ end
22
+
23
+ should 'raise NoGithubRepoNameGiven' do
24
+ assert_raise Jeweler::NoGitHubRepoNameGiven do
25
+ Jeweler::Generator.new(nil)
26
+ end
27
+ end
28
+ end
29
+
30
+ context "without git user's name set" do
31
+ setup do
32
+ stub_git_config 'user.email' => @git_email
33
+ end
34
+
35
+ should 'raise an NoGitUserName' do
36
+ assert_raise Jeweler::NoGitUserName do
37
+ Jeweler::Generator.new(@project_name)
38
+ end
39
+ end
40
+ end
41
+
42
+ context "without git user's email set" do
43
+ setup do
44
+ stub_git_config 'user.name' => @git_name
45
+ end
46
+
47
+ should 'raise NoGitUserName' do
48
+ assert_raise Jeweler::NoGitUserEmail do
49
+ Jeweler::Generator.new(@project_name)
50
+ end
51
+ end
52
+ end
53
+
54
+ context "without github username set" do
55
+ setup do
56
+ stub_git_config 'user.email' => @git_email, 'user.name' => @git_name
57
+ end
58
+
59
+ should 'raise NotGitHubUser' do
60
+ assert_raise Jeweler::NoGitHubUser do
61
+ Jeweler::Generator.new(@project_name)
62
+ end
63
+ end
64
+ end
65
+
66
+ context "without github token set" do
67
+ setup do
68
+ stub_git_config 'user.name' => @git_name, 'user.email' => @git_email, 'github.user' => @github_user
69
+ end
70
+
71
+ should 'raise NoGitHubToken' do
72
+ assert_raise Jeweler::NoGitHubToken do
73
+ Jeweler::Generator.new(@project_name)
74
+ end
75
+ end
76
+ end
77
+
78
+ context "with valid git user configuration" do
79
+ setup do
80
+ stub_git_config 'user.name' => @git_name, 'user.email' => @git_email, 'github.user' => @github_user, 'github.token' => @github_token
81
+ end
82
+
83
+ context "for technicalpickle's the-perfect-gem repository" do
84
+ setup do
85
+ @generator = Jeweler::Generator.new(@project_name)
86
+ end
87
+
88
+ should "assign user's name from git config" do
89
+ assert_equal @git_name, @generator.user_name
90
+ end
91
+
92
+ should "assign email from git config" do
93
+ assert_equal @git_email, @generator.user_email
94
+ end
95
+
96
+ should "assign github remote" do
97
+ assert_equal 'git@github.com:technicalpickles/the-perfect-gem.git', @generator.git_remote
98
+ end
99
+
100
+ should "assign github username from git config" do
101
+ assert_equal @github_user, @generator.github_username
102
+ end
103
+
104
+ should "determine project name as the-perfect-gem" do
105
+ assert_equal @project_name, @generator.project_name
106
+ end
107
+
108
+ should "determine target directory as the same as the github repository name" do
109
+ assert_equal @generator.project_name, @generator.target_dir
110
+ end
111
+ end
112
+ end
113
+ 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
@@ -63,6 +63,7 @@ class Test::Unit::TestCase
63
63
  s.description = "Simple and opinionated helper for creating Rubygem projects on GitHub"
64
64
  s.authors = ["Josh Nichols"]
65
65
  s.files = FileList[*files] unless files.empty?
66
+ s.version = '0.1.1'
66
67
  end
67
68
  end
68
69
 
@@ -93,6 +93,12 @@ class TestOptions < Test::Unit::TestCase
93
93
  end
94
94
  end
95
95
 
96
+ for_options '--zomg-invalid' do
97
+ should 'be an invalid argument' do
98
+ assert @options[:invalid_argument]
99
+ end
100
+ end
101
+
96
102
  context "merging options" do
97
103
  should "take options from each" do
98
104
  options = Jeweler::Generator::Options.new(["--rspec"]).
@@ -1,4 +1,4 @@
1
1
  ---
2
- patch: 4
3
2
  major: 3
4
3
  minor: 5
4
+ patch: 4
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jeweler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Nichols
@@ -9,11 +9,21 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-05 00:00:00 -04:00
12
+ date: 2009-04-29 00:00:00 -04:00
13
13
  default_executable: jeweler
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: peterwald-git
16
+ name: schacon-git
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.1.1
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: rubyforge
17
27
  type: :runtime
18
28
  version_requirement:
19
29
  version_requirements: !ruby/object:Gem::Requirement
@@ -57,7 +67,13 @@ files:
57
67
  - lib/jeweler/gemspec_helper.rb
58
68
  - lib/jeweler/generator.rb
59
69
  - lib/jeweler/generator/application.rb
70
+ - lib/jeweler/generator/bacon_mixin.rb
71
+ - lib/jeweler/generator/micronaut_mixin.rb
72
+ - lib/jeweler/generator/minitest_mixin.rb
60
73
  - lib/jeweler/generator/options.rb
74
+ - lib/jeweler/generator/rspec_mixin.rb
75
+ - lib/jeweler/generator/shoulda_mixin.rb
76
+ - lib/jeweler/generator/testunit_mixin.rb
61
77
  - lib/jeweler/specification.rb
62
78
  - lib/jeweler/tasks.rb
63
79
  - lib/jeweler/templates/.document
@@ -93,7 +109,6 @@ files:
93
109
  - test/fixtures/existing-project-with-version/test/existing_project_with_version_test.rb
94
110
  - test/fixtures/existing-project-with-version/test/test_helper.rb
95
111
  - test/geminstaller.yml
96
- - test/generators/initialization_test.rb
97
112
  - test/jeweler/commands/test_build_gem.rb
98
113
  - test/jeweler/commands/test_install_gem.rb
99
114
  - test/jeweler/commands/test_release.rb
@@ -110,6 +125,8 @@ files:
110
125
  - test/test_application.rb
111
126
  - test/test_gemspec_helper.rb
112
127
  - test/test_generator.rb
128
+ - test/test_generator_initialization.rb
129
+ - test/test_generator_mixins.rb
113
130
  - test/test_helper.rb
114
131
  - test/test_jeweler.rb
115
132
  - test/test_options.rb
@@ -148,7 +165,6 @@ test_files:
148
165
  - test/fixtures/existing-project-with-version/lib/existing_project_with_version.rb
149
166
  - test/fixtures/existing-project-with-version/test/existing_project_with_version_test.rb
150
167
  - test/fixtures/existing-project-with-version/test/test_helper.rb
151
- - test/generators/initialization_test.rb
152
168
  - test/jeweler/commands/test_build_gem.rb
153
169
  - test/jeweler/commands/test_install_gem.rb
154
170
  - test/jeweler/commands/test_release.rb
@@ -165,6 +181,8 @@ test_files:
165
181
  - test/test_application.rb
166
182
  - test/test_gemspec_helper.rb
167
183
  - test/test_generator.rb
184
+ - test/test_generator_initialization.rb
185
+ - test/test_generator_mixins.rb
168
186
  - test/test_helper.rb
169
187
  - test/test_jeweler.rb
170
188
  - test/test_options.rb
@@ -1,146 +0,0 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
2
-
3
- class JewelerGeneratorInitializerTest < Test::Unit::TestCase
4
- context "given a nil github repo name" do
5
- setup do
6
- @block = lambda { Jeweler::Generator.new(nil) }
7
- end
8
-
9
- should "raise an error" do
10
- assert_raise Jeweler::NoGitHubRepoNameGiven do
11
- @block.call
12
- end
13
- end
14
- end
15
-
16
- context "without git user's name set" do
17
- setup do
18
- Jeweler::Generator.any_instance.stubs(:read_git_config).returns({'user.email' => 'bar@example.com'})
19
- end
20
-
21
- context "instantiating new generator" do
22
- setup do
23
- @block = lambda { Jeweler::Generator.new('the-perfect-gem')}
24
- end
25
-
26
- should "raise no git user name exception" do
27
- assert_raise Jeweler::NoGitUserName do
28
- @block.call
29
- end
30
- end
31
- end
32
- end
33
-
34
- context "without git user's email set" do
35
- setup do
36
- Jeweler::Generator.any_instance.stubs(:read_git_config).returns({'user.name' => 'foo'})
37
- end
38
-
39
- context "instantiating new generator" do
40
- setup do
41
- @block = lambda { Jeweler::Generator.new('the-perfect-gem')}
42
- end
43
-
44
- should "raise no git user name exception" do
45
- assert_raise Jeweler::NoGitUserEmail do
46
- @block.call
47
- end
48
- end
49
- end
50
- end
51
-
52
- context "without github username set" do
53
- setup do
54
- Jeweler::Generator.any_instance.stubs(:read_git_config).
55
- returns({'user.email' => 'bar@example.com', 'user.name' => 'foo'})
56
- end
57
-
58
- context "instantiating new generator" do
59
- setup do
60
- @block = lambda { Jeweler::Generator.new('the-perfect-gem')}
61
- end
62
-
63
- should "raise no github user exception" do
64
- assert_raise Jeweler::NoGitHubUser do
65
- @block.call
66
- end
67
- end
68
- end
69
- end
70
-
71
- context "without github token set" do
72
- setup do
73
- Jeweler::Generator.any_instance.stubs(:read_git_config).
74
- returns({'user.email' => 'bar@example.com', 'user.name' => 'foo', 'github.user' => 'technicalpickles'})
75
- end
76
-
77
- context "instantiating new generator" do
78
- setup do
79
- @block = lambda { Jeweler::Generator.new('the-perfect-gem')}
80
- end
81
-
82
- should "raise no github user exception" do
83
- assert_raise Jeweler::NoGitHubToken do
84
- @block.call
85
- end
86
- end
87
- end
88
- end
89
-
90
- context "with valid git user configuration" do
91
- setup do
92
- Jeweler::Generator.any_instance.stubs(:read_git_config).
93
- returns({'user.name' => 'foo', 'user.email' => 'bar@example.com', 'github.user' => 'technicalpickles', 'github.token' => 'zomgtoken'})
94
- end
95
-
96
- context "for technicalpickle's the-perfect-gem repository" do
97
- setup do
98
- @generator = Jeweler::Generator.new('the-perfect-gem')
99
- end
100
-
101
- should "assign 'foo' to user's name" do
102
- assert_equal 'foo', @generator.user_name
103
- end
104
-
105
- should "assign 'bar@example.com to user's email" do
106
- assert_equal 'bar@example.com', @generator.user_email
107
- end
108
-
109
- should "assign github remote" do
110
- assert_equal 'git@github.com:technicalpickles/the-perfect-gem.git', @generator.github_remote
111
- end
112
-
113
- should "determine github username as technicalpickles" do
114
- assert_equal 'technicalpickles', @generator.github_username
115
- end
116
-
117
- should "determine github repository name as the-perfect-gem" do
118
- assert_equal 'the-perfect-gem', @generator.github_repo_name
119
- end
120
-
121
- should "determine github url as http://github.com/technicalpickles/the-perfect-gem" do
122
- assert_equal 'http://github.com/technicalpickles/the-perfect-gem', @generator.github_url
123
- end
124
-
125
- should "determine target directory as the same as the github repository name" do
126
- assert_equal @generator.github_repo_name, @generator.target_dir
127
- end
128
-
129
- should "determine lib directory as being inside the target directory" do
130
- assert_equal File.join(@generator.target_dir, 'lib'), @generator.lib_dir
131
- end
132
-
133
- should "determine test directory as being inside the target directory" do
134
- assert_equal File.join(@generator.target_dir, 'test'), @generator.test_dir
135
- end
136
-
137
- should "determine constant name as ThePerfectGem" do
138
- assert_equal 'ThePerfectGem', @generator.constant_name
139
- end
140
-
141
- should "determine file name prefix as the_perfect_gem" do
142
- assert_equal 'the_perfect_gem', @generator.file_name_prefix
143
- end
144
- end
145
- end
146
- end