newgem 1.4.1 → 1.5.0

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 (38) hide show
  1. data/History.txt +71 -64
  2. data/Manifest.txt +4 -13
  3. data/Rakefile +15 -47
  4. data/app_generators/newgem/newgem_generator.rb +2 -3
  5. data/app_generators/newgem/templates/History.txt +1 -1
  6. data/app_generators/newgem/templates/Rakefile +19 -22
  7. data/app_generators/newgem_simple/templates/Rakefile +7 -13
  8. data/features/install_cucumber.feature +5 -1
  9. data/features/install_website.feature +1 -1
  10. data/features/newgem_cli.feature +0 -12
  11. data/features/step_definitions/cli_steps.rb +0 -2
  12. data/features/step_definitions/common_steps.rb +0 -9
  13. data/features/step_definitions/rubygems_steps.rb +8 -0
  14. data/features/support/env.rb +7 -11
  15. data/lib/hoe/cucumberfeatures.rb +22 -0
  16. data/lib/hoe/manifest.rb +30 -0
  17. data/lib/hoe/newgem.rb +74 -0
  18. data/lib/hoe/website.rb +66 -0
  19. data/lib/newgem.rb +1 -3
  20. data/lib/newgem/tasks.rb +10 -2
  21. data/newgem_generators/install_website/install_website_generator.rb +0 -3
  22. data/rubygems_generators/executable/templates/bin/app.rb.erb +1 -1
  23. data/rubygems_generators/install_cucumber/templates/features/step_definitions/common_steps.rb +0 -9
  24. data/rubygems_generators/install_cucumber/templates/features/support/env.rb.erb +8 -0
  25. metadata +12 -24
  26. data/bundles/RubyGem.tmbundle/Snippets/History header trunk.tmSnippet +0 -18
  27. data/bundles/RubyGem.tmbundle/Snippets/History header.tmSnippet +0 -18
  28. data/bundles/RubyGem.tmbundle/Syntaxes/Rdoc.tmLanguage +0 -70
  29. data/bundles/RubyGem.tmbundle/info.plist +0 -16
  30. data/lib/hoe-patched.rb +0 -1029
  31. data/lib/newgem/support/tasks.rb +0 -10
  32. data/newgem_generators/install_website/templates/tasks/website.rake +0 -47
  33. data/patches/hoe/0001-readme-can-be-txt-or-rdoc.patch +0 -62
  34. data/tasks/bundles.rake +0 -12
  35. data/tasks/cucumber.rake +0 -9
  36. data/tasks/deployment.rake +0 -37
  37. data/tasks/environment.rake +0 -7
  38. data/tasks/website.rake +0 -47
data/Rakefile CHANGED
@@ -1,60 +1,28 @@
1
- require 'rubygems' unless ENV['NO_RUBYGEMS']
2
- %w[rake rake/clean fileutils rubigen].each { |f| require f }
3
- require File.dirname(__FILE__) + '/lib/newgem'
1
+ gem 'hoe', '>= 2.3.0'
2
+ require 'hoe'
3
+ %w[fileutils rubigen].each { |f| require f }
4
+ $:.unshift(File.dirname(__FILE__) + "/lib")
5
+
6
+ Hoe.plugin :newgem
7
+ Hoe.plugin :website
8
+ Hoe.plugin :cucumberfeatures
4
9
 
5
10
  # Generate all the Rake tasks
6
11
  # Run 'rake -T' to see list of generated tasks (from gem root directory)
7
- $hoe = Hoe.new('newgem', Newgem::VERSION) do |p|
8
- p.developer('Dr Nic Williams', 'drnicwilliams@gmail.com')
9
- p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
10
- p.post_install_message = 'PostInstall.txt'
11
- p.extra_deps = [
12
+ $hoe = Hoe.spec 'newgem' do
13
+ developer 'Dr Nic Williams', 'drnicwilliams@gmail.com'
14
+ self.post_install_message = 'PostInstall.txt'
15
+ self.extra_deps = [
12
16
  ['activesupport','>= 2.0.2'],
13
17
  ['rubigen',">= #{RubiGen::VERSION}"],
14
18
  ['hoe', ">= #{Hoe::VERSION}"],
15
- ['RedCloth','>= 4.0.0'], # for website generation
19
+ ['RedCloth','= 4.1.1'], # for website generation
16
20
  ['syntax','>= 1.0.0']
17
21
  ]
18
- p.extra_dev_deps = [
19
- ['cucumber', ">= 0.1.8"]
20
- ]
21
- p.clean_globs |= %w[**/.DS_Store tmp *.log]
22
- path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
23
- p.remote_rdoc_dir = File.join(path.gsub(/^#{p.rubyforge_name}\/?/,''), 'rdoc')
24
- p.rsync_args = '-av --delete --ignore-errors'
22
+ extra_dev_deps << ['cucumber', ">= 0.3.11"]
25
23
  end
26
24
 
27
- require 'newgem/tasks' # load /tasks/*.rake
28
-
29
- namespace :hoe do
30
- desc "Applies patch files to the hoe.rb in latest hoe rubygem and stores in lib/hoe-patched.rb"
31
- task :patch do
32
- gem 'hoe'
33
- hoe_lib = $LOAD_PATH.grep(/hoe.*\/lib/)
34
- hoe_rb = File.join(hoe_lib, 'hoe.rb')
35
- FileUtils.cp hoe_rb, File.dirname(__FILE__) + "/lib/hoe.rb"
36
- patches = Dir[File.dirname(__FILE__) + "/patches/hoe/*.patch"].sort
37
- patches.each do |patch|
38
- puts "Applying patch #{File.basename patch}"
39
- sh %{ cat #{patch} | patch -p1 }
40
- end
41
- patched_hoe = File.dirname(__FILE__) + "/lib/hoe-patched.rb"
42
- FileUtils.mv File.dirname(__FILE__) + "/lib/hoe.rb", patched_hoe
43
-
44
- help_msg = <<-EOS.gsub(/^\s+/,'')
45
- # Patched version of Hoe to allow any README.* file
46
- # Pending acceptance of ticket with this feature
47
- # File created by 'rake hoe:patch' in newgem
48
- # from patch files in patches/hoe/*.patch
49
- EOS
50
-
51
- contents = File.read(patched_hoe)
52
- File.open(patched_hoe, "w") do |f|
53
- f << help_msg + "\n"
54
- f << contents
55
- end
56
- end
57
- end
25
+ require 'newgem/tasks'
58
26
 
59
27
  remove_task :default
60
28
  task :default => :features
@@ -22,7 +22,7 @@ class NewgemGenerator < RubiGen::Base
22
22
  # extensions/option
23
23
  attr_reader :test_framework
24
24
  attr_reader :bin_names_list
25
- attr_reader :enable_website
25
+ attr_reader :enable_website, :enable_cucumber
26
26
  attr_reader :manifest
27
27
  attr_reader :is_jruby
28
28
 
@@ -166,6 +166,7 @@ EOS
166
166
  @is_jruby = options[:jruby]
167
167
  @project_name = options[:project] if options.include?(:project)
168
168
  @install_generators = options[:install] || []
169
+ @enable_cucumber = @install_generators.include?('cucumber')
169
170
  end
170
171
 
171
172
  # first attempt to merge config args (single string) and runtime args
@@ -183,9 +184,7 @@ EOS
183
184
  # Installation skeleton. Intermediate directories are automatically
184
185
  # created so don't sweat their absence here.
185
186
  BASEDIRS = %w(
186
- doc
187
187
  lib
188
188
  script
189
- tasks
190
189
  )
191
190
  end
@@ -1,4 +1,4 @@
1
- == <%= version_str %> <%= Date.today %>
1
+ === <%= version_str %> <%= Date.today %>
2
2
 
3
3
  * 1 major enhancement:
4
4
  * Initial release
@@ -1,31 +1,28 @@
1
- require 'rubygems' unless ENV['NO_RUBYGEMS']
2
- %w[rake rake/clean fileutils newgem rubigen].each { |f| require f }
3
- require File.dirname(__FILE__) + '/lib/<%= gem_name %>'
1
+ require 'rubygems'
2
+ gem 'hoe', '>= 2.1.0'
3
+ require 'hoe'
4
+ require 'fileutils'
5
+ require './lib/<%= gem_name %>'
6
+
7
+ Hoe.plugin :newgem
8
+ <%= enable_website ? '' : '# ' %>Hoe.plugin :website
9
+ <%= enable_cucumber ? '' : '# ' %>Hoe.plugin :cucumber_features
4
10
 
5
11
  # Generate all the Rake tasks
6
12
  # Run 'rake -T' to see list of generated tasks (from gem root directory)
7
- $hoe = Hoe.new('<%= gem_name %>', <%= module_name %>::VERSION) do |p|
8
- p.developer('<%= author %>', '<%= email %>')
9
- p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
10
- p.post_install_message = 'PostInstall.txt' # TODO remove if post-install message not required
11
- p.rubyforge_name = p.name # TODO this is default value
12
- # p.extra_deps = [
13
- # ['activesupport','>= 2.0.2'],
14
- # ]
15
- p.extra_dev_deps = [
16
- ['newgem', ">= #{::Newgem::VERSION}"]
17
- ]
18
- <% if is_jruby -%>
19
- p.spec_extras['platform'] = 'jruby' # JRuby gem created, e.g. <%= gem_name %>-X.Y.Z-jruby.gem
20
- <% end -%>
21
- p.clean_globs |= %w[**/.DS_Store tmp *.log]
22
- path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
23
- p.remote_rdoc_dir = File.join(path.gsub(/^#{p.rubyforge_name}\/?/,''), 'rdoc')
24
- p.rsync_args = '-av --delete --ignore-errors'
13
+ $hoe = Hoe.spec '<%= gem_name %>' do
14
+ self.developer '<%= author %>', '<%= email %>'
15
+ self.post_install_message = 'PostInstall.txt' # TODO remove if post-install message not required
16
+ self.rubyforge_name = self.name # TODO this is default value
17
+ # self.extra_deps = [['activesupport','>= 2.0.2']]
18
+ <%- if is_jruby -%>
19
+ self.spec_extras['platform'] = 'jruby' # JRuby gem created, e.g. <%= gem_name %>-X.Y.Z-jruby.gem
20
+ <%- end -%>
25
21
  end
26
22
 
27
- require 'newgem/tasks' # load /tasks/*.rake
23
+ require 'newgem/tasks'
28
24
  Dir['tasks/**/*.rake'].each { |t| load t }
29
25
 
30
26
  # TODO - want other tests/tasks run by default? Add them to the list
27
+ # remove_task :default
31
28
  # task :default => [:spec, :features]
@@ -4,24 +4,18 @@ require 'rubygems/specification'
4
4
  require 'date'
5
5
  require 'spec/rake/spectask'
6
6
 
7
- GEM = "<%= name %>"
8
- GEM_VERSION = "0.0.1"
9
- AUTHOR = "Your Name"
10
- EMAIL = "Your Email"
11
- HOMEPAGE = "http://example.com"
12
- SUMMARY = "A gem that provides..."
13
-
14
7
  spec = Gem::Specification.new do |s|
15
- s.name = GEM
16
- s.version = GEM_VERSION
8
+ s.name = "<%= name %>"
9
+ s.version = "0.0.1"
10
+ s.author = "Your Name"
11
+ s.email = "Your Email"
12
+ s.homepage = "http://example.com"
13
+ s.description = s.summary = "A gem that provides..."
14
+
17
15
  s.platform = Gem::Platform::RUBY
18
16
  s.has_rdoc = true
19
17
  s.extra_rdoc_files = ["README", "LICENSE", 'TODO']
20
18
  s.summary = SUMMARY
21
- s.description = s.summary
22
- s.author = AUTHOR
23
- s.email = EMAIL
24
- s.homepage = HOMEPAGE
25
19
 
26
20
  # Uncomment this to add a dependency
27
21
  # s.add_dependency "foo"
@@ -8,6 +8,7 @@ Feature: RubyGems have features to be described and tested
8
8
  Given default env variables setup for name and email
9
9
  And an existing newgem scaffold [called "my_project"]
10
10
  When I invoke "install_cucumber" generator with arguments ""
11
+ And I enable hoe plugin "cucumber_features"
11
12
  Then folder "features/step_definitions" is created
12
13
  Then folder "features/support" is created
13
14
  And file "features/development.feature" is created
@@ -21,14 +22,17 @@ Feature: RubyGems have features to be described and tested
21
22
  Given default env variables setup for name and email
22
23
  And an existing newgem scaffold [called "my_project"]
23
24
  When I invoke "install_cucumber" generator with arguments ""
25
+ And I enable hoe plugin "cucumber_features"
24
26
  Then gem file "features/step_definitions/common_steps.rb" and generated file "features/step_definitions/common_steps.rb" should be the same
25
27
  Then gem file "features/support/common.rb" and generated file "features/support/common.rb" should be the same
26
28
  Then gem file "features/support/matchers.rb" and generated file "features/support/matchers.rb" should be the same
27
29
  Then gem file "features/development.feature" and generated file "features/development.feature" should be the same
28
30
 
29
31
  Scenario: Installed Cucumber includes a "rake features" task
30
- Given an existing newgem scaffold [called "my_project"]
32
+ Given default env variables setup for name and email
33
+ And an existing newgem scaffold [called "my_project"]
31
34
  And I invoke "install_cucumber" generator with arguments ""
35
+ And I enable hoe plugin "cucumber_features"
32
36
  And I invoke task "rake manifest"
33
37
  When I invoke task "rake features"
34
38
  Then task "rake features" is executed successfully
@@ -5,7 +5,7 @@ Feature: RubyGems can have a website to promote and teach
5
5
  So that I can spend time on the tests and code, and not excessive time on maintenance processes
6
6
 
7
7
  Scenario: Deploy project website via local rsync
8
- Given an existing newgem scaffold [called "my_project"]
8
+ Given an existing newgem scaffold using options "-w" [called "my_project"]
9
9
  And project website configuration for safe folder on local machine
10
10
  When I invoke "install_website" generator with arguments ""
11
11
  And I invoke task "rake website"
@@ -5,7 +5,6 @@ Feature: Can run "newgem" to create RubyGem scaffolds
5
5
  So that I can rapidly produce specs and code for encapsulated applications and libraries
6
6
 
7
7
  Scenario: Run newgem without any arguments
8
- Given a safe folder
9
8
  Given env variable $RUBYFORGE_USERNAME set to ""
10
9
  When newgem is executed for project "my_project" with no options
11
10
  Then file "Rakefile" is created
@@ -19,10 +18,8 @@ Feature: Can run "newgem" to create RubyGem scaffolds
19
18
  And I should see
20
19
  """
21
20
  create
22
- create doc
23
21
  create lib
24
22
  create script
25
- create tasks
26
23
  create lib/my_project
27
24
  create History.txt
28
25
  create Rakefile
@@ -51,13 +48,11 @@ Feature: Can run "newgem" to create RubyGem scaffolds
51
48
  Then I should see all 1 tests pass
52
49
 
53
50
  Scenario: Run newgem with project name containing hypens
54
- Given a safe folder
55
51
  Given env variable $RUBYFORGE_USERNAME set to ""
56
52
  When newgem is executed for project "my-project" with no options
57
53
  Then Rakefile can display tasks successfully
58
54
 
59
55
  Scenario: Run newgem to include rspec
60
- Given a safe folder
61
56
  When newgem is executed for project "my_rspec_project" with options "-T rspec"
62
57
  Then does invoke generator "install_rspec"
63
58
  And does not invoke generator "install_test_unit"
@@ -68,7 +63,6 @@ Feature: Can run "newgem" to create RubyGem scaffolds
68
63
  Then I should see all 1 examples pass
69
64
 
70
65
  Scenario: Run newgem to include shoulda
71
- Given a safe folder
72
66
  When newgem is executed for project "my_shoulda_project" with options "-T shoulda"
73
67
  Then does invoke generator "install_shoulda"
74
68
  And does not invoke generator "install_test_unit"
@@ -79,7 +73,6 @@ Feature: Can run "newgem" to create RubyGem scaffolds
79
73
  Then I should see all 1 tests pass
80
74
 
81
75
  Scenario: Run newgem to enable website
82
- Given a safe folder
83
76
  When newgem is executed for project "my_project" with options "-w"
84
77
  Then does invoke generator "install_website"
85
78
  And file "config/website.yml.sample" is created
@@ -87,7 +80,6 @@ Feature: Can run "newgem" to create RubyGem scaffolds
87
80
  And Rakefile can display tasks successfully
88
81
 
89
82
  Scenario: Run newgem to enable website, with env $RUBYFORGE_USERNAME set
90
- Given a safe folder
91
83
  Given env variable $RUBYFORGE_USERNAME set to "nicwilliams"
92
84
  When newgem is executed for project "my_project" with options "-w"
93
85
  Then file "config/website.yml.sample" is created
@@ -95,7 +87,6 @@ Feature: Can run "newgem" to create RubyGem scaffolds
95
87
  And Rakefile can display tasks successfully
96
88
 
97
89
  Scenario: Run newgem to install misc generators on top of unit test framework
98
- Given a safe folder
99
90
  When newgem is executed for project "my_project" with options "-i cucumber"
100
91
  Then does invoke generator "install_test_unit"
101
92
  And does invoke generator "install_cucumber"
@@ -103,7 +94,6 @@ Feature: Can run "newgem" to create RubyGem scaffolds
103
94
  And Rakefile can display tasks successfully
104
95
 
105
96
  Scenario: Run newgem to pull in defaults from ~/.newgem.yml file and no argument options
106
- Given a safe folder
107
97
  And ~/.newgem.yml contains {"default" => "-T rspec -i cucumber"}
108
98
  When newgem is executed for project "my_project" with options ""
109
99
  Then does invoke generator "install_rspec"
@@ -113,7 +103,6 @@ Feature: Can run "newgem" to create RubyGem scaffolds
113
103
  And Rakefile can display tasks successfully
114
104
 
115
105
  Scenario: Run newgem to pull in defaults from ~/.newgem.yml file and merge with runtime args
116
- Given a safe folder
117
106
  And ~/.newgem.yml contains {"default" => "-T rspec -i cucumber"}
118
107
  When newgem is executed for project "my_project" with options "-i website"
119
108
  Then does invoke generator "install_rspec"
@@ -123,7 +112,6 @@ Feature: Can run "newgem" to create RubyGem scaffolds
123
112
  And Rakefile can display tasks successfully
124
113
 
125
114
  Scenario: Run newgem and show current version number
126
- Given a safe folder
127
115
  When newgem is executed only with options "--version"
128
116
  Then shows version number
129
117
 
@@ -4,7 +4,6 @@ Given /^default env variables setup for name and email$/ do
4
4
  end
5
5
 
6
6
  Given /^an existing newgem scaffold \[called "(.*)"\]/ do |project_name|
7
- Given "a safe folder"
8
7
  newgem = File.expand_path(File.dirname(__FILE__) + "/../../bin/newgem")
9
8
  setup_active_project_folder project_name
10
9
  in_tmp_folder do
@@ -15,7 +14,6 @@ Given /^an existing newgem scaffold \[called "(.*)"\]/ do |project_name|
15
14
  end
16
15
 
17
16
  Given /^an existing newgem scaffold using options "(.*)" \[called "(.*)"\]/ do |arguments, project_name|
18
- Given "a safe folder"
19
17
  newgem = File.expand_path(File.dirname(__FILE__) + "/../../bin/newgem")
20
18
  setup_active_project_folder project_name
21
19
  in_tmp_folder do
@@ -1,13 +1,4 @@
1
- Given /^a safe folder/ do
2
- FileUtils.rm_rf @tmp_root = File.dirname(__FILE__) + "/../../tmp"
3
- FileUtils.mkdir_p @tmp_root
4
- FileUtils.mkdir_p @home_path = File.expand_path(File.join(@tmp_root, "home"))
5
- @lib_path = File.expand_path(File.dirname(__FILE__) + '/../../lib')
6
- Given %Q{env variable $HOME set to "#{@home_path}"}
7
- end
8
-
9
1
  Given /^this project is active project folder/ do
10
- Given "a safe folder"
11
2
  @active_project_folder = File.expand_path(File.dirname(__FILE__) + "/../..")
12
3
  end
13
4
 
@@ -1,3 +1,11 @@
1
+ Given /^I enable hoe plugin "([^\"]*)"$/ do |plugin|
2
+ in_project_folder do
3
+ rakefile = File.read('Rakefile')
4
+ rakefile.gsub!(/^#\s*(Hoe.plugin :#{plugin})/, '\1')
5
+ File.open("Rakefile", "w") { |file| file << rakefile }
6
+ end
7
+ end
8
+
1
9
  Then /^gemspec builds the RubyGem successfully$/ do
2
10
  @stdout = File.expand_path(File.join(@tmp_root, "rake.out"))
3
11
  in_project_folder do
@@ -7,17 +7,13 @@ require 'pp'
7
7
  require 'fileutils'
8
8
  require 'rubygems' unless ENV['NO_RUBYGEMS']
9
9
 
10
- # Following lines from original Rails cucumber generator.
11
- # Not sure how to translate/reuse etc yet.
12
- #
13
- # # Sets up the Rails environment for Cucumber
14
- # ENV["RAILS_ENV"] = "test"
15
- # require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
16
- # require 'cucumber/rails/world'
17
- # Cucumber::Rails.use_transactional_fixtures
18
- #
19
- # # Comment out the next line if you're not using RSpec's matchers (should / should_not) in your steps.
20
- # require 'cucumber/rails/rspec'
10
+ Before do
11
+ @tmp_root = File.dirname(__FILE__) + "/../../tmp"
12
+ @home_path = File.expand_path(File.join(@tmp_root, "home"))
13
+ FileUtils.rm_rf @tmp_root
14
+ FileUtils.mkdir_p @home_path
15
+ ENV['HOME'] = @home_path
16
+ end
21
17
 
22
18
  # code from test/test_generator_helper.rb
23
19
  TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT)
@@ -0,0 +1,22 @@
1
+ ##
2
+ # Cucumber plugin for hoe.
3
+ #
4
+ # === Tasks Provided:
5
+ #
6
+ # features:: Run cucumber feature
7
+
8
+ module Hoe::Cucumberfeatures
9
+
10
+ def define_cucumberfeatures_tasks
11
+ begin
12
+ gem 'cucumber'
13
+ require 'cucumber/rake/task'
14
+
15
+ Cucumber::Rake::Task.new(:features) do |t|
16
+ t.cucumber_opts = "--format progress"
17
+ end
18
+ rescue LoadError => e
19
+ p e
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,30 @@
1
+ ##
2
+ # Manifest plugin for hoe.
3
+ #
4
+ # === Tasks Provided:
5
+ #
6
+ # manifest:: Recreate the Manifest.txt
7
+
8
+ module Hoe::Manifest
9
+
10
+ ##
11
+ # Define tasks for plugin.
12
+ def define_manifest_tasks
13
+ desc 'Recreate Manifest.txt to include ALL files to be deployed'
14
+ task :manifest => :clean do
15
+ require 'find'
16
+ files = []
17
+ with_config do |config, _|
18
+ exclusions = config["exclude"]
19
+ abort "exclude entry missing from .hoerc. Aborting." if exclusions.nil?
20
+ Find.find '.' do |path|
21
+ next unless File.file? path
22
+ next if path =~ exclusions
23
+ files << path[2..-1]
24
+ end
25
+ files = files.sort.join "\n"
26
+ File.open 'Manifest.txt', 'w' do |fp| fp.puts files end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,74 @@
1
+ ##
2
+ # Gemspec plugin for hoe.
3
+ #
4
+ # === Tasks Provided:
5
+ #
6
+ # gemspec:: Generate the gemspec file
7
+ # release
8
+
9
+ Hoe.plugin :manifest
10
+
11
+ module Hoe::Newgem
12
+ def initialize_newgem
13
+ require(File.dirname(__FILE__) + "/../newgem")
14
+ require 'newgem/tasks'
15
+
16
+ self.clean_globs |= %w[**/.DS_Store tmp *.log]
17
+ path = (self.rubyforge_name == self.name) ? self.rubyforge_name : "\#{self.rubyforge_name}/\#{self.name}"
18
+ self.remote_rdoc_dir = File.join(path.gsub(/^#{self.rubyforge_name}\/?/,''), 'rdoc')
19
+ self.rsync_args = '-av --delete --ignore-errors'
20
+ self.readme_file = "README.rdoc"
21
+ end
22
+
23
+ # Define +gemspec+ task if not already defined
24
+ def define_newgem_tasks
25
+ unless self.extra_dev_deps.find { |dep| dep.first == 'newgem' }
26
+ require File.dirname(__FILE__) + '/../newgem'
27
+ self.extra_dev_deps ||= []
28
+ self.extra_dev_deps << ['newgem', ">= #{::Newgem::VERSION}"]
29
+ end
30
+
31
+ return if Rake::Task.tasks.find { |t| t.name == 'gemspec' }
32
+ desc "Generate a #{name}.gemspec file"
33
+ task :gemspec do
34
+ File.open("#{name}.gemspec", "w") do |file|
35
+ file.puts spec.to_ruby
36
+ end
37
+ end
38
+
39
+ task :release do
40
+ puts <<-EOS.gsub(/^ /,'')
41
+ Remember to create tag your release; eg for Git:
42
+ git tag REL-#{$hoe.version}
43
+
44
+ Announce your release on RubyForge News:
45
+ rake post_news
46
+ EOS
47
+ end
48
+
49
+ task :check_version do
50
+ unless ENV['VERSION']
51
+ puts 'Must pass a VERSION=x.y.z release version'
52
+ exit
53
+ end
54
+ unless ENV['VERSION'] == $hoe.version
55
+ puts "Please update your lib/#{$hoe.name}.rb to match the release version, currently #{$hoe.version}"
56
+ exit
57
+ end
58
+ end
59
+
60
+ desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
61
+ task :install_gem_no_doc => [:clean, :package] do
62
+ sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
63
+ end
64
+
65
+ task :ruby_env do
66
+ $ruby_app = if RUBY_PLATFORM =~ /java/
67
+ "jruby"
68
+ else
69
+ "ruby"
70
+ end
71
+ end
72
+
73
+ end
74
+ end