jeweler 0.11.0 → 0.11.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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