newgem 1.4.1 → 1.5.0

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