technicalpickles-jeweler 1.1.0 → 1.2.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.
data/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
1
  coverage
2
2
  pkg
3
+ doc
3
4
  rdoc
4
5
  tags
5
6
  test/tmp
@@ -1,3 +1,31 @@
1
+ # jeweler 1.2.0 2009-08-06
2
+ * Generator now adds development dependencies appropriate to your testing framework
3
+ * Added check_dependencies tasks for verifying gem dependencies are installed
4
+ * Fixed typo in generated yard task
5
+ * Fixed generator from having a lot of extra newlines
6
+
7
+ # jeweler 1.1.0 2009-08-05
8
+
9
+ * Support for generating a project that uses yard instead of rdoc
10
+ * Generated gemspec now includes comments about it being generated by jeweler
11
+ * Only use sudo for installing on non-windows platforms [#1]
12
+ * Fixed rake release to be repeatable on the same version [#16]
13
+ * Fixed rake rubyforge:setup to not create duplicate packages
14
+ * Use a more recent version of ruby-git
15
+ * Fixes various issues with reading values out of ~/.gitconfig [#26] [#21] [#19]
16
+ * Experimenting with a rake task to check development time dependencies [#22]
17
+ * Fixed generated rdoc task to load from VERSION instead of VERSION.yml
18
+
19
+ # jeweler 1.0.2 2009-07-29
20
+
21
+ * Don't include git ignored files for default gemspec's files and test_files
22
+ * Fixed rspec generator to allow specs to be run directly
23
+ * Removed misleading docstring for version_required rake task [#17]
24
+ * Includes some notes about contributed in generated README
25
+ * Added support for generating a project to use reek and roodi
26
+
27
+ # jeweler 1.0.1 2009-05-15
28
+
1
29
  # jeweler 0.11.1
2
30
 
3
31
  * Lots of internal refactorings to how project generation happens
@@ -53,6 +53,7 @@ It supports a number of options:
53
53
  * --shoulda: generate test_helper.rb and test ready for shoulda (this is the default)
54
54
  * --rspec: generate spec_helper.rb and spec ready for rspec
55
55
  * --bacon: generate spec_helper.rb and spec ready for bacon
56
+ * --gemcutter: setup releasing to gemcutter
56
57
  * --rubyforge: setup releasing to rubyforge
57
58
 
58
59
  ### Default options
@@ -98,6 +99,18 @@ It does the following for you:
98
99
  * Push to GitHub (which results in a gem being build)
99
100
  * Tag the version and push to GitHub
100
101
 
102
+ ## Releasing to Gemcutter
103
+
104
+ Jeweler can also handle releasing to [Gemcutter](http://gemcutter.org). There are a few steps you need to do before doing any Gemcutter releases with Jeweler:
105
+
106
+ * [Create an account on Gemcutter](http://gemcutter.org/sign_up)
107
+ * Install the Gemcutter gem: sudo gem install gemcutter
108
+ * Run 'gemcutter tumble' to set up gemcutter
109
+
110
+ With all that setup out of the way, you can now release to Gemcutter with impunity. This would release the current version of your gem.
111
+
112
+ $ rake gemcutter:release
113
+
101
114
  ## Releasing to RubyForge
102
115
 
103
116
  Jeweler can also handle releasing to [RubyForge](http://rubyforge.org). There are a few steps you need to do before doing any RubyForge releases with Jeweler:
data/Rakefile CHANGED
@@ -28,6 +28,8 @@ begin
28
28
  gem.add_development_dependency "redgreen"
29
29
  end
30
30
 
31
+ Jeweler::GemcutterTasks.new
32
+
31
33
  Jeweler::RubyforgeTasks.new do |t|
32
34
  t.doc_task = :yardoc
33
35
  end
@@ -90,63 +92,12 @@ rescue LoadError
90
92
  end
91
93
  end
92
94
 
93
- begin
94
- require 'rake/contrib/sshpublisher'
95
- namespace :rubyforge do
96
-
97
- desc "Release gem and RDoc documentation to RubyForge"
98
- task :release => ["rubyforge:release:gem", "rubyforge:release:docs"]
99
-
100
- namespace :release do
101
- desc "Publish RDoc to RubyForge."
102
- task :docs => [:rdoc] do
103
- config = YAML.load(
104
- File.read(File.expand_path('~/.rubyforge/user-config.yml'))
105
- )
106
-
107
- host = "#{config['username']}@rubyforge.org"
108
- remote_dir = "/var/www/gforge-projects/pickles"
109
- local_dir = 'rdoc'
110
-
111
- Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
112
- end
113
- end
114
- end
115
- rescue LoadError
116
- puts "Rake SshDirPublisher is unavailable or your rubyforge environment is not configured."
117
- end
118
-
119
95
  if ENV["RUN_CODE_RUN"] == "true"
120
96
  task :default => [:test, :features]
121
97
  else
122
98
  task :default => :test
123
99
  end
124
100
 
125
- namespace :development_dependencies do
126
- task :check do
127
- missing_dependencies = Rake.application.jeweler.gemspec.development_dependencies.select do |dependency|
128
- begin
129
- Gem.activate dependency.name, dependency.version_requirements.to_s
130
- false
131
- rescue LoadError => e
132
- true
133
- end
134
- end
135
-
136
- #require 'ruby-debug'; breakpoint
137
-
138
- if missing_dependencies.empty?
139
- puts "Development dependencies seem to be installed."
140
- else
141
- puts "Missing some dependencies. Install them with the following commands:"
142
- missing_dependencies.each do |dependency|
143
- puts %Q{\tgem install #{dependency.name} --version "#{dependency.version_requirements}"}
144
- end
145
- abort "Run the specified gem commands before trying to run this again: #{$0} #{ARGV.join(' ')}"
146
- end
147
-
148
- end
149
- end
150
101
 
151
- task :test => 'development_dependencies:check'
152
- task :features => 'development_dependencies:check'
102
+ task :test => :check_dependencies
103
+ task :features => :check_dependencies
@@ -1,4 +1,4 @@
1
1
  ---
2
+ :minor: 2
3
+ :patch: 1
2
4
  :major: 1
3
- :patch: 0
4
- :minor: 1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{jeweler}
8
- s.version = "1.1.0"
8
+ s.version = "1.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Josh Nichols"]
12
- s.date = %q{2009-08-05}
12
+ s.date = %q{2009-08-18}
13
13
  s.default_executable = %q{jeweler}
14
14
  s.description = %q{Simple and opinionated helper for creating Rubygem projects on GitHub}
15
15
  s.email = %q{josh@technicalpickles.com}
@@ -51,8 +51,10 @@ Gem::Specification.new do |s|
51
51
  "lib/jeweler.rb",
52
52
  "lib/jeweler/commands.rb",
53
53
  "lib/jeweler/commands/build_gem.rb",
54
+ "lib/jeweler/commands/check_dependencies.rb",
54
55
  "lib/jeweler/commands/install_gem.rb",
55
56
  "lib/jeweler/commands/release.rb",
57
+ "lib/jeweler/commands/release_to_gemcutter.rb",
56
58
  "lib/jeweler/commands/release_to_rubyforge.rb",
57
59
  "lib/jeweler/commands/setup_rubyforge.rb",
58
60
  "lib/jeweler/commands/validate_gemspec.rb",
@@ -63,6 +65,7 @@ Gem::Specification.new do |s|
63
65
  "lib/jeweler/commands/version/write.rb",
64
66
  "lib/jeweler/commands/write_gemspec.rb",
65
67
  "lib/jeweler/errors.rb",
68
+ "lib/jeweler/gemcutter_tasks.rb",
66
69
  "lib/jeweler/gemspec_helper.rb",
67
70
  "lib/jeweler/generator.rb",
68
71
  "lib/jeweler/generator/application.rb",
@@ -70,9 +73,11 @@ Gem::Specification.new do |s|
70
73
  "lib/jeweler/generator/micronaut_mixin.rb",
71
74
  "lib/jeweler/generator/minitest_mixin.rb",
72
75
  "lib/jeweler/generator/options.rb",
76
+ "lib/jeweler/generator/rdoc_mixin.rb",
73
77
  "lib/jeweler/generator/rspec_mixin.rb",
74
78
  "lib/jeweler/generator/shoulda_mixin.rb",
75
79
  "lib/jeweler/generator/testunit_mixin.rb",
80
+ "lib/jeweler/generator/yard_mixin.rb",
76
81
  "lib/jeweler/rubyforge_tasks.rb",
77
82
  "lib/jeweler/specification.rb",
78
83
  "lib/jeweler/tasks.rb",
@@ -127,6 +132,7 @@ Gem::Specification.new do |s|
127
132
  "test/jeweler/commands/test_build_gem.rb",
128
133
  "test/jeweler/commands/test_install_gem.rb",
129
134
  "test/jeweler/commands/test_release.rb",
135
+ "test/jeweler/commands/test_release_to_gemcutter.rb",
130
136
  "test/jeweler/commands/test_release_to_rubyforge.rb",
131
137
  "test/jeweler/commands/test_setup_rubyforge.rb",
132
138
  "test/jeweler/commands/test_validate_gemspec.rb",
@@ -166,6 +172,7 @@ Gem::Specification.new do |s|
166
172
  "test/jeweler/commands/test_build_gem.rb",
167
173
  "test/jeweler/commands/test_install_gem.rb",
168
174
  "test/jeweler/commands/test_release.rb",
175
+ "test/jeweler/commands/test_release_to_gemcutter.rb",
169
176
  "test/jeweler/commands/test_release_to_rubyforge.rb",
170
177
  "test/jeweler/commands/test_setup_rubyforge.rb",
171
178
  "test/jeweler/commands/test_validate_gemspec.rb",
@@ -13,6 +13,7 @@ require 'jeweler/generator/application'
13
13
  require 'jeweler/commands'
14
14
 
15
15
  require 'jeweler/tasks'
16
+ require 'jeweler/gemcutter_tasks'
16
17
  require 'jeweler/rubyforge_tasks'
17
18
 
18
19
  require 'jeweler/specification'
@@ -120,7 +121,11 @@ class Jeweler
120
121
  def release
121
122
  Jeweler::Commands::Release.build_for(self).run
122
123
  end
123
-
124
+
125
+ def release_gem_to_gemcutter
126
+ Jeweler::Commands::ReleaseToGemcutter.build_for(self).run
127
+ end
128
+
124
129
  def release_gem_to_rubyforge
125
130
  Jeweler::Commands::ReleaseToRubyforge.build_for(self).run
126
131
  end
@@ -129,6 +134,12 @@ class Jeweler
129
134
  Jeweler::Commands::SetupRubyforge.build_for(self).run
130
135
  end
131
136
 
137
+ def check_dependencies(type = nil)
138
+ command = Jeweler::Commands::CheckDependencies.build_for(self)
139
+ command.type = type
140
+
141
+ command.run
142
+ end
132
143
 
133
144
  def in_git_repo?
134
145
  File.exists?(File.join(self.base_dir, '.git'))
@@ -1,6 +1,8 @@
1
1
  require 'jeweler/commands/build_gem'
2
2
  require 'jeweler/commands/install_gem'
3
+ require 'jeweler/commands/check_dependencies'
3
4
  require 'jeweler/commands/release'
5
+ require 'jeweler/commands/release_to_gemcutter'
4
6
  require 'jeweler/commands/release_to_rubyforge'
5
7
  require 'jeweler/commands/setup_rubyforge'
6
8
  require 'jeweler/commands/validate_gemspec'
@@ -0,0 +1,52 @@
1
+ class Jeweler
2
+ module Commands
3
+ class CheckDependencies
4
+ class MissingDependenciesError < RuntimeError
5
+ attr_accessor :dependencies, :type
6
+ end
7
+
8
+ attr_accessor :gemspec, :type
9
+
10
+ def run
11
+ missing_dependencies = dependencies.select do |dependency|
12
+ begin
13
+ Gem.activate dependency.name, dependency.version_requirements.to_s
14
+ false
15
+ rescue LoadError => e
16
+ true
17
+ end
18
+ end
19
+
20
+ if missing_dependencies.empty?
21
+ puts "#{type || 'All'} dependencies seem to be installed."
22
+ else
23
+ puts "Missing some dependencies. Install them with the following commands:"
24
+ missing_dependencies.each do |dependency|
25
+ puts %Q{\tgem install #{dependency.name} --version "#{dependency.version_requirements}"}
26
+ end
27
+
28
+ abort "Run the specified gem commands before trying to run this again: #{$0} #{ARGV.join(' ')}"
29
+ end
30
+
31
+ end
32
+
33
+ def dependencies
34
+ case type
35
+ when :runtime, :development
36
+ gemspec.send("#{type}_dependencies")
37
+ else
38
+ gemspec.dependencies
39
+ end
40
+
41
+ end
42
+
43
+ def self.build_for(jeweler)
44
+ command = new
45
+
46
+ command.gemspec = jeweler.gemspec
47
+
48
+ command
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,27 @@
1
+ class Jeweler
2
+ module Commands
3
+ class ReleaseToGemcutter
4
+ attr_accessor :gemspec, :version, :output, :gemspec_helper
5
+
6
+ def initialize
7
+ self.output = $stdout
8
+ end
9
+
10
+ def run
11
+ command = "gem push #{@gemspec_helper.gem_path}"
12
+ output.puts "Executing #{command.inspect}:"
13
+ sh command
14
+ end
15
+
16
+ def self.build_for(jeweler)
17
+ command = new
18
+ command.gemspec = jeweler.gemspec
19
+ command.gemspec_helper = jeweler.gemspec_helper
20
+ command.version = jeweler.version
21
+ command.output = jeweler.output
22
+ command
23
+ end
24
+
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,35 @@
1
+ require 'rake'
2
+ require 'rake/tasklib'
3
+
4
+ class Jeweler
5
+ # Rake tasks for putting a Jeweler gem on Gemcutter.
6
+ #
7
+ # Jeweler::Tasks.new needs to be used before this.
8
+ #
9
+ # Basic usage:
10
+ #
11
+ # Jeweler::Gemcutter.new
12
+ #
13
+ # Easy enough, right?
14
+ #
15
+ class GemcutterTasks < ::Rake::TaskLib
16
+ attr_accessor :jeweler
17
+
18
+ def initialize
19
+ yield self if block_given?
20
+
21
+ self.jeweler = Rake.application.jeweler
22
+
23
+ define
24
+ end
25
+
26
+ def define
27
+ namespace :gemcutter do
28
+ desc "Release gem to Gemcutter"
29
+ task :release => [:gemspec, :build] do
30
+ jeweler.release_gem_to_gemcutter
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -11,6 +11,9 @@ require 'jeweler/generator/rspec_mixin'
11
11
  require 'jeweler/generator/shoulda_mixin'
12
12
  require 'jeweler/generator/testunit_mixin'
13
13
 
14
+ require 'jeweler/generator/rdoc_mixin'
15
+ require 'jeweler/generator/yard_mixin'
16
+
14
17
  class Jeweler
15
18
  class NoGitUserName < StandardError
16
19
  end
@@ -29,12 +32,12 @@ class Jeweler
29
32
 
30
33
  class Generator
31
34
  attr_accessor :target_dir, :user_name, :user_email, :summary,
32
- :project_name, :github_username, :github_token,
35
+ :description, :project_name, :github_username, :github_token,
33
36
  :repo, :should_create_repo,
34
37
  :testing_framework, :documentation_framework,
35
- :should_use_cucumber, :should_setup_rubyforge,
36
- :should_use_reek, :should_use_roodi,
37
- :description
38
+ :should_use_cucumber, :should_setup_gemcutter,
39
+ :should_setup_rubyforge, :should_use_reek, :should_use_roodi,
40
+ :development_dependencies
38
41
 
39
42
  DEFAULT_TESTING_FRAMEWORK = :shoulda
40
43
  DEFAULT_DOCUMENTATION_FRAMEWORK = :rdoc
@@ -44,6 +47,8 @@ class Jeweler
44
47
  raise NoGitHubRepoNameGiven
45
48
  end
46
49
 
50
+ self.development_dependencies = []
51
+
47
52
  self.project_name = project_name
48
53
 
49
54
  self.testing_framework = (options[:testing_framework] || DEFAULT_TESTING_FRAMEWORK).to_sym
@@ -56,6 +61,14 @@ class Jeweler
56
61
  raise ArgumentError, "Unsupported testing framework (#{testing_framework})"
57
62
  end
58
63
 
64
+ begin
65
+ generator_mixin_name = "#{self.documentation_framework.to_s.capitalize}Mixin"
66
+ generator_mixin = self.class.const_get(generator_mixin_name)
67
+ extend generator_mixin
68
+ rescue NameError => e
69
+ raise ArgumentError, "Unsupported documentation framework (#{documentation_framework})"
70
+ end
71
+
59
72
 
60
73
  self.target_dir = options[:directory] || self.project_name
61
74
 
@@ -65,8 +78,11 @@ class Jeweler
65
78
  self.should_use_cucumber = options[:use_cucumber]
66
79
  self.should_use_reek = options[:use_reek]
67
80
  self.should_use_roodi = options[:use_roodi]
81
+ self.should_setup_gemcutter = options[:gemcutter]
68
82
  self.should_setup_rubyforge = options[:rubyforge]
69
83
 
84
+ development_dependencies << "cucumber" if should_use_cucumber
85
+
70
86
  use_user_git_config
71
87
 
72
88
  end
@@ -131,14 +147,6 @@ class Jeweler
131
147
  File.join(features_dir, 'step_definitions')
132
148
  end
133
149
 
134
- def doc_task
135
- case documentation_framework
136
- when :yard then "yardoc"
137
- else
138
- documentation_framework.to_s
139
- end
140
- end
141
-
142
150
  protected
143
151
 
144
152
  # This is in a separate method so we can stub it out during testing
@@ -214,7 +222,7 @@ class Jeweler
214
222
  template_contents = File.read(File.join(template_dir, source))
215
223
  template = ERB.new(template_contents, nil, '<>')
216
224
 
217
- template_result = template.result(binding)
225
+ template_result = template.result(binding).gsub(/\n\n\n+/, "\n\n")
218
226
 
219
227
  File.open(final_destination, 'w') {|file| file.write(template_result)}
220
228
 
@@ -274,11 +282,11 @@ class Jeweler
274
282
  end
275
283
 
276
284
  def create_and_push_repo
277
- Net::HTTP.post_form URI.parse('http://github.com/repositories'),
285
+ Net::HTTP.post_form URI.parse('http://github.com/api/v2/yaml/repos/create'),
278
286
  'login' => github_username,
279
287
  'token' => github_token,
280
- 'repository[description]' => summary,
281
- 'repository[name]' => project_name
288
+ 'description' => summary,
289
+ 'name' => project_name
282
290
  # TODO do a HEAD request to see when it's ready
283
291
  @repo.push('origin')
284
292
  end
@@ -2,6 +2,10 @@ class Jeweler
2
2
  class Generator
3
3
  module BaconMixin
4
4
 
5
+ def self.extended(generator)
6
+ generator.development_dependencies << "bacon"
7
+ end
8
+
5
9
  def default_task
6
10
  'spec'
7
11
  end
@@ -1,6 +1,9 @@
1
1
  class Jeweler
2
2
  class Generator
3
3
  module MicronautMixin
4
+ def self.extended(generator)
5
+ generator.development_dependencies << "spicycode-micronaut"
6
+ end
4
7
 
5
8
  def default_task
6
9
  'examples'
@@ -1,6 +1,9 @@
1
1
  class Jeweler
2
2
  class Generator
3
3
  module MinitestMixin
4
+ def self.extended(generator)
5
+ generator.development_dependencies << "minitest"
6
+ end
4
7
 
5
8
  def default_task
6
9
  'test'
@@ -53,6 +53,10 @@ class Jeweler
53
53
  self[:create_repo] = true
54
54
  end
55
55
 
56
+ o.on('--gemcutter', 'setup project for gemcutter') do
57
+ self[:gemcutter] = true
58
+ end
59
+
56
60
  o.on('--rubyforge', 'setup project for rubyforge') do
57
61
  self[:rubyforge] = true
58
62
  end
@@ -0,0 +1,9 @@
1
+ class Jeweler
2
+ class Generator
3
+ module RdocMixin
4
+ def doc_task
5
+ 'rdoc'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,6 +1,9 @@
1
1
  class Jeweler
2
2
  class Generator
3
3
  module RspecMixin
4
+ def self.extended(generator)
5
+ generator.development_dependencies << "rspec"
6
+ end
4
7
 
5
8
  def default_task
6
9
  'spec'
@@ -1,6 +1,9 @@
1
1
  class Jeweler
2
2
  class Generator
3
3
  module ShouldaMixin
4
+ def self.extended(generator)
5
+ generator.development_dependencies << "thoughtbot-shoulda"
6
+ end
4
7
 
5
8
  def default_task
6
9
  'test'
@@ -0,0 +1,14 @@
1
+ class Jeweler
2
+ class Generator
3
+ module YardMixin
4
+ def self.extended(generator)
5
+ generator.development_dependencies << "yard"
6
+ end
7
+
8
+ def doc_task
9
+ 'yardoc'
10
+ end
11
+ end
12
+ end
13
+ end
14
+
@@ -111,6 +111,24 @@ class Jeweler
111
111
  task :release do
112
112
  jeweler.release
113
113
  end
114
+
115
+ desc "Check that runtime and development dependencies are installed"
116
+ task :check_dependencies do
117
+ jeweler.check_dependencies
118
+ end
119
+
120
+ namespace :check_dependencies do
121
+ desc "Check that runtime dependencies are installed"
122
+ task :runtime do
123
+ jeweler.check_dependencies(:runtime)
124
+ end
125
+
126
+ desc"Check that development dependencies are installed"
127
+ task :development do
128
+ jeweler.check_dependencies(:development)
129
+ end
130
+
131
+ end
114
132
 
115
133
  end
116
134
  end
@@ -12,10 +12,15 @@ begin
12
12
  gem.authors = ["<%= user_name %>"]
13
13
  <% if should_setup_rubyforge %>
14
14
  gem.rubyforge_project = "<%= project_name %>"
15
+ <% end %>
16
+ <% development_dependencies.each do |dependency| %>
17
+ gem.add_development_dependency "<%= dependency %>"
15
18
  <% end %>
16
19
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
17
20
  end
18
-
21
+ <% if should_setup_gemcutter %>
22
+ Jeweler::GemcutterTasks.new
23
+ <% end %>
19
24
  <% if should_setup_rubyforge %>
20
25
  Jeweler::RubyforgeTasks.new do |rubyforge|
21
26
  rubyforge.doc_task = "<%= doc_task %>"
@@ -75,10 +80,14 @@ rescue LoadError
75
80
  end
76
81
  <% end %>
77
82
 
83
+ task :<%= test_task %> => :check_dependencies
84
+
78
85
  <% if should_use_cucumber %>
79
86
  begin
80
87
  require 'cucumber/rake/task'
81
88
  Cucumber::Rake::Task.new(:features)
89
+
90
+ task :features => :check_dependencies
82
91
  rescue LoadError
83
92
  task :features do
84
93
  abort "Cucumber is not available. In order to run features, you must: sudo gem install cucumber"
@@ -138,7 +147,7 @@ begin
138
147
  YARD::Rake::YardocTask.new
139
148
  rescue LoadError
140
149
  task :yardoc do
141
- abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
150
+ abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
142
151
  end
143
152
  end
144
153
  <% end %>
@@ -0,0 +1,39 @@
1
+ require 'test_helper'
2
+
3
+ class Jeweler
4
+ module Commands
5
+ class TestReleaseToGemcutter < Test::Unit::TestCase
6
+ def self.subject
7
+ Jeweler::Commands::ReleaseToGemcutter.new
8
+ end
9
+
10
+ gemcutter_command_context "rubyforge_project is defined in gemspec and package exists on rubyforge" do
11
+ setup do
12
+ stub(@gemspec_helper).gem_path {'pkg/zomg-1.2.3.gem'}
13
+ stub(@command).sh
14
+ @command.run
15
+ end
16
+
17
+ should "push to gemcutter" do
18
+ push_command = "gem push #{@gemspec_helper.gem_path}"
19
+ assert_received(@command) { |command| command.sh(push_command) }
20
+ end
21
+ end
22
+
23
+ build_command_context "build for jeweler" do
24
+ setup do
25
+ @command = Jeweler::Commands::ReleaseToGemcutter.build_for(@jeweler)
26
+ end
27
+
28
+ should "assign gemspec helper" do
29
+ assert_equal @gemspec_helper, @command.gemspec_helper
30
+ end
31
+
32
+ should "assign output" do
33
+ assert_equal @output, @command.output
34
+ end
35
+ end
36
+
37
+ end
38
+ end
39
+ end
@@ -70,6 +70,26 @@ class Test::Unit::TestCase
70
70
  end
71
71
  end
72
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
+
73
93
  def self.rubyforge_command_context(description, &block)
74
94
  context description do
75
95
  setup do
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.1.0
4
+ version: 1.2.1
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-08-05 00:00:00 -07:00
12
+ date: 2009-08-18 00:00:00 -07:00
13
13
  default_executable: jeweler
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -124,8 +124,10 @@ files:
124
124
  - lib/jeweler.rb
125
125
  - lib/jeweler/commands.rb
126
126
  - lib/jeweler/commands/build_gem.rb
127
+ - lib/jeweler/commands/check_dependencies.rb
127
128
  - lib/jeweler/commands/install_gem.rb
128
129
  - lib/jeweler/commands/release.rb
130
+ - lib/jeweler/commands/release_to_gemcutter.rb
129
131
  - lib/jeweler/commands/release_to_rubyforge.rb
130
132
  - lib/jeweler/commands/setup_rubyforge.rb
131
133
  - lib/jeweler/commands/validate_gemspec.rb
@@ -136,6 +138,7 @@ files:
136
138
  - lib/jeweler/commands/version/write.rb
137
139
  - lib/jeweler/commands/write_gemspec.rb
138
140
  - lib/jeweler/errors.rb
141
+ - lib/jeweler/gemcutter_tasks.rb
139
142
  - lib/jeweler/gemspec_helper.rb
140
143
  - lib/jeweler/generator.rb
141
144
  - lib/jeweler/generator/application.rb
@@ -143,9 +146,11 @@ files:
143
146
  - lib/jeweler/generator/micronaut_mixin.rb
144
147
  - lib/jeweler/generator/minitest_mixin.rb
145
148
  - lib/jeweler/generator/options.rb
149
+ - lib/jeweler/generator/rdoc_mixin.rb
146
150
  - lib/jeweler/generator/rspec_mixin.rb
147
151
  - lib/jeweler/generator/shoulda_mixin.rb
148
152
  - lib/jeweler/generator/testunit_mixin.rb
153
+ - lib/jeweler/generator/yard_mixin.rb
149
154
  - lib/jeweler/rubyforge_tasks.rb
150
155
  - lib/jeweler/specification.rb
151
156
  - lib/jeweler/tasks.rb
@@ -198,6 +203,7 @@ files:
198
203
  - test/jeweler/commands/test_build_gem.rb
199
204
  - test/jeweler/commands/test_install_gem.rb
200
205
  - test/jeweler/commands/test_release.rb
206
+ - test/jeweler/commands/test_release_to_gemcutter.rb
201
207
  - test/jeweler/commands/test_release_to_rubyforge.rb
202
208
  - test/jeweler/commands/test_setup_rubyforge.rb
203
209
  - test/jeweler/commands/test_validate_gemspec.rb
@@ -257,6 +263,7 @@ test_files:
257
263
  - test/jeweler/commands/test_build_gem.rb
258
264
  - test/jeweler/commands/test_install_gem.rb
259
265
  - test/jeweler/commands/test_release.rb
266
+ - test/jeweler/commands/test_release_to_gemcutter.rb
260
267
  - test/jeweler/commands/test_release_to_rubyforge.rb
261
268
  - test/jeweler/commands/test_setup_rubyforge.rb
262
269
  - test/jeweler/commands/test_validate_gemspec.rb