jeweler 1.4.0 → 1.5.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +14 -0
- data/.gitignore +13 -2
- data/ChangeLog.markdown +8 -8
- data/Gemfile +21 -0
- data/Gemfile.lock +57 -0
- data/README.markdown +6 -6
- data/Rakefile +32 -46
- data/features/generator/cucumber.feature +20 -0
- data/features/generator/directory_layout.feature +10 -0
- data/features/generator/gemfile.feature +71 -0
- data/features/generator/git.feature +8 -0
- data/features/generator/license.feature +11 -2
- data/features/generator/rakefile.feature +25 -23
- data/features/generator/test.feature +6 -0
- data/features/generator/test_helper.feature +107 -11
- data/features/step_definitions/filesystem_steps.rb +5 -3
- data/features/step_definitions/generator_steps.rb +68 -4
- data/features/support/env.rb +26 -13
- data/jeweler.gemspec +222 -207
- data/lib/jeweler.rb +7 -5
- data/lib/jeweler/commands.rb +1 -3
- data/lib/jeweler/commands/check_dependencies.rb +3 -5
- data/lib/jeweler/commands/install_gem.rb +1 -2
- data/lib/jeweler/commands/release_to_git.rb +5 -3
- data/lib/jeweler/commands/release_to_github.rb +24 -8
- data/lib/jeweler/commands/{release_to_gemcutter.rb → release_to_rubygems.rb} +1 -2
- data/lib/jeweler/commands/version/base.rb +16 -2
- data/lib/jeweler/commands/write_gemspec.rb +0 -1
- data/lib/jeweler/errors.rb +4 -16
- data/lib/jeweler/gemcutter_tasks.rb +4 -32
- data/lib/jeweler/gemspec_helper.rb +3 -6
- data/lib/jeweler/generator.rb +23 -6
- data/lib/jeweler/generator/options.rb +17 -14
- data/lib/jeweler/generator/rspec_mixin.rb +1 -1
- data/lib/jeweler/generator/shindo_mixin.rb +44 -0
- data/lib/jeweler/generator/shoulda_mixin.rb +1 -1
- data/lib/jeweler/rubyforge_tasks.rb +5 -29
- data/lib/jeweler/rubygems_dot_org_tasks.rb +38 -0
- data/lib/jeweler/rubygems_tasks.rb +38 -0
- data/lib/jeweler/specification.rb +36 -12
- data/lib/jeweler/tasks.rb +49 -13
- data/lib/jeweler/templates/.document +6 -0
- data/lib/jeweler/templates/.gitignore +34 -16
- data/lib/jeweler/templates/Gemfile +12 -0
- data/lib/jeweler/templates/LICENSE +1 -1
- data/lib/jeweler/templates/Rakefile +1 -0
- data/lib/jeweler/templates/bacon/helper.rb +1 -0
- data/lib/jeweler/templates/bundler_setup.erb +10 -0
- data/lib/jeweler/templates/features/support/env.rb +2 -0
- data/lib/jeweler/templates/jeweler_tasks.erb +20 -23
- data/lib/jeweler/templates/micronaut/helper.rb +1 -0
- data/lib/jeweler/templates/minitest/helper.rb +1 -0
- data/lib/jeweler/templates/other_tasks.erb +27 -59
- data/lib/jeweler/templates/riot/helper.rb +1 -0
- data/lib/jeweler/templates/rspec/{spec.opts → .rspec} +0 -0
- data/lib/jeweler/templates/rspec/helper.rb +7 -3
- data/lib/jeweler/templates/shindo/flunking.rb +8 -0
- data/lib/jeweler/templates/shindo/helper.rb +6 -0
- data/lib/jeweler/templates/shoulda/helper.rb +1 -0
- data/lib/jeweler/templates/testunit/helper.rb +1 -0
- data/lib/jeweler/version.rb +10 -0
- data/lib/jeweler/version_helper.rb +1 -2
- data/test/fixtures/existing-project-with-version-constant/Rakefile +4 -2
- data/test/fixtures/existing-project-with-version-plaintext/Rakefile +4 -2
- data/test/fixtures/existing-project-with-version-yaml/Rakefile +4 -2
- data/test/jeweler/commands/test_install_gem.rb +2 -2
- data/test/jeweler/commands/test_release_to_gemcutter.rb +4 -4
- data/test/jeweler/commands/test_release_to_git.rb +32 -25
- data/test/jeweler/commands/test_release_to_github.rb +108 -25
- data/test/jeweler/generator/test_options.rb +16 -22
- data/test/jeweler/test_generator.rb +5 -0
- data/test/jeweler/test_specification.rb +18 -7
- data/test/jeweler/test_tasks.rb +1 -1
- data/test/test_helper.rb +12 -14
- data/test/test_jeweler.rb +0 -12
- metadata +159 -66
- data/VERSION.yml +0 -5
- data/lib/jeweler/commands/release_to_rubyforge.rb +0 -52
- data/lib/jeweler/commands/setup_rubyforge.rb +0 -63
- data/test/jeweler/commands/test_release_to_rubyforge.rb +0 -153
- data/test/jeweler/commands/test_setup_rubyforge.rb +0 -178
@@ -1,5 +1,11 @@
|
|
1
|
+
# .document is used by rdoc and yard to know how to generate documentation
|
2
|
+
# for example, it can be used to control how rdoc gets built when you do `gem install foo`
|
3
|
+
|
1
4
|
README.rdoc
|
2
5
|
lib/**/*.rb
|
3
6
|
bin/*
|
7
|
+
|
8
|
+
# Files below this - are treated as 'extra files', and aren't parsed for ruby code
|
9
|
+
-
|
4
10
|
features/**/*.feature
|
5
11
|
LICENSE
|
@@ -1,21 +1,39 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
## TEXTMATE
|
5
|
-
*.tmproj
|
6
|
-
tmtags
|
1
|
+
# rcov generated
|
2
|
+
coverage
|
7
3
|
|
8
|
-
|
9
|
-
|
10
|
-
\#*
|
11
|
-
.\#*
|
4
|
+
# rdoc generated
|
5
|
+
rdoc
|
12
6
|
|
13
|
-
|
14
|
-
|
7
|
+
# yard generated
|
8
|
+
doc
|
9
|
+
.yardoc
|
15
10
|
|
16
|
-
|
17
|
-
coverage
|
18
|
-
rdoc
|
11
|
+
# jeweler generated
|
19
12
|
pkg
|
20
13
|
|
21
|
-
|
14
|
+
# Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
|
15
|
+
#
|
16
|
+
# * Create a file at ~/.gitignore
|
17
|
+
# * Include files you want ignored
|
18
|
+
# * Run: git config --global core.excludesfile ~/.gitignore
|
19
|
+
#
|
20
|
+
# After doing this, these files will be ignored in all your git projects,
|
21
|
+
# saving you from having to 'pollute' every project you touch with them
|
22
|
+
#
|
23
|
+
# Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
|
24
|
+
#
|
25
|
+
# For MacOS:
|
26
|
+
#
|
27
|
+
#.DS_Store
|
28
|
+
#
|
29
|
+
# For TextMate
|
30
|
+
#*.tmproj
|
31
|
+
#tmtags
|
32
|
+
#
|
33
|
+
# For emacs:
|
34
|
+
#*~
|
35
|
+
#\#*
|
36
|
+
#.\#*
|
37
|
+
#
|
38
|
+
# For vim:
|
39
|
+
#*.swp
|
@@ -0,0 +1,12 @@
|
|
1
|
+
source :gemcutter
|
2
|
+
# Add dependencies required to use your gem here.
|
3
|
+
# Example:
|
4
|
+
# gem "activesupport", ">= 2.3.5"
|
5
|
+
|
6
|
+
# Add dependencies to develop your gem here.
|
7
|
+
# Include everything needed to run rake, tests, features, etc.
|
8
|
+
group :development do
|
9
|
+
<% development_dependencies.each do |name, version| %>
|
10
|
+
gem "<%= name %>", "<%= version %>"
|
11
|
+
<% end %>
|
12
|
+
end
|
@@ -1,29 +1,26 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
1
|
+
require 'jeweler'
|
2
|
+
Jeweler::Tasks.new do |gem|
|
3
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
4
|
+
gem.name = "<%= project_name %>"
|
5
|
+
gem.summary = %Q{<%= summary %>}
|
6
|
+
gem.description = %Q{<%= description %>}
|
7
|
+
gem.email = "<%= user_email %>"
|
8
|
+
gem.homepage = "<%= homepage %>"
|
9
|
+
gem.authors = ["<%= user_name %>"]
|
10
10
|
<% if should_setup_rubyforge %>
|
11
|
-
|
11
|
+
gem.rubyforge_project = "<%= project_name %>"
|
12
12
|
<% end %>
|
13
|
+
# Include your dependencies below. Runtime dependencies are required when using your gem,
|
14
|
+
# and development dependencies are only needed for development (ie running rake tasks, tests, etc)
|
15
|
+
# spec.add_runtime_dependency 'jabber4r', '> 0.1'
|
16
|
+
# spec.add_development_dependency 'rspec', '> 1.2.3'
|
13
17
|
<% development_dependencies.each do |name, version| %>
|
14
|
-
|
15
|
-
<% end %>
|
16
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
17
|
-
end
|
18
|
-
<% if should_setup_gemcutter %>
|
19
|
-
Jeweler::GemcutterTasks.new
|
18
|
+
gem.add_development_dependency "<%= name %>", "<%= version %>"
|
20
19
|
<% end %>
|
20
|
+
end
|
21
|
+
Jeweler::RubygemsDotOrgsTasks.new
|
21
22
|
<% if should_setup_rubyforge %>
|
22
|
-
|
23
|
-
|
24
|
-
end
|
25
|
-
<% end %>
|
26
|
-
rescue LoadError
|
27
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
23
|
+
Jeweler::RubyforgeTasks.new do |rubyforge|
|
24
|
+
rubyforge.doc_task = "<%= doc_task %>"
|
28
25
|
end
|
29
|
-
|
26
|
+
<% end %>
|
@@ -1,16 +1,19 @@
|
|
1
1
|
<% case testing_framework %>
|
2
2
|
<% when :rspec %>
|
3
|
-
require '
|
4
|
-
|
5
|
-
|
6
|
-
<%= test_task %>.
|
3
|
+
require 'rspec/core'
|
4
|
+
require 'rspec/core/rake_task'
|
5
|
+
RSpec::Core::RakeTask.new(:<%= test_task %>) do |<%= test_task %>|
|
6
|
+
<%= test_task %>.pattern = FileList['<%= test_pattern %>']
|
7
7
|
end
|
8
8
|
<% when :micronaut %>
|
9
9
|
require 'micronaut/rake_task'
|
10
|
-
Micronaut::RakeTask.new(
|
10
|
+
Micronaut::RakeTask.new(:<%= test_task %>) do |<%= test_task %>|
|
11
11
|
<%= test_task %>.pattern = '<%= test_pattern %>'
|
12
12
|
<%= test_task %>.ruby_opts << '-Ilib -I<%= test_dir %>'
|
13
13
|
end
|
14
|
+
<% when :shindo %>
|
15
|
+
require 'shindo/rake'
|
16
|
+
Shindo::Rake.new
|
14
17
|
<% else %>
|
15
18
|
require 'rake/testtask'
|
16
19
|
Rake::TestTask.new(:<%= test_task %>) do |<%= test_task %>|
|
@@ -22,8 +25,7 @@ end
|
|
22
25
|
|
23
26
|
<% case testing_framework %>
|
24
27
|
<% when :rspec %>
|
25
|
-
|
26
|
-
spec.libs << 'lib' << 'spec'
|
28
|
+
RSpec::Core::RakeTask.new(:rcov) do |spec|
|
27
29
|
spec.pattern = '<%= test_pattern %>'
|
28
30
|
spec.rcov = true
|
29
31
|
end
|
@@ -34,61 +36,33 @@ Micronaut::RakeTask.new(:rcov) do |examples|
|
|
34
36
|
examples.rcov = true
|
35
37
|
end
|
36
38
|
<% else %>
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
<%= test_task %>.verbose = true
|
43
|
-
end
|
44
|
-
rescue LoadError
|
45
|
-
task :rcov do
|
46
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
47
|
-
end
|
39
|
+
require 'rcov/rcovtask'
|
40
|
+
Rcov::RcovTask.new do |<%= test_task %>|
|
41
|
+
<%= test_task %>.libs << '<%= test_dir %>'
|
42
|
+
<%= test_task %>.pattern = '<%= test_pattern %>'
|
43
|
+
<%= test_task %>.verbose = true
|
48
44
|
end
|
49
45
|
<% end %>
|
50
46
|
|
51
|
-
task :<%= test_task %> => :check_dependencies
|
52
|
-
|
53
47
|
<% if should_use_cucumber %>
|
54
|
-
|
55
|
-
|
56
|
-
Cucumber::Rake::Task.new(:features)
|
57
|
-
|
58
|
-
task :features => :check_dependencies
|
59
|
-
rescue LoadError
|
60
|
-
task :features do
|
61
|
-
abort "Cucumber is not available. In order to run features, you must: sudo gem install cucumber"
|
62
|
-
end
|
63
|
-
end
|
48
|
+
require 'cucumber/rake/task'
|
49
|
+
Cucumber::Rake::Task.new(:features)
|
64
50
|
<% end %>
|
65
51
|
|
66
52
|
<% if should_use_reek %>
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
t.source_files = 'lib/**/*.rb'
|
73
|
-
end
|
74
|
-
rescue LoadError
|
75
|
-
task :reek do
|
76
|
-
abort "Reek is not available. In order to run reek, you must: sudo gem install reek"
|
77
|
-
end
|
53
|
+
require 'reek/rake/task'
|
54
|
+
Reek::Rake::Task.new do |t|
|
55
|
+
t.fail_on_error = true
|
56
|
+
t.verbose = false
|
57
|
+
t.source_files = 'lib/**/*.rb'
|
78
58
|
end
|
79
59
|
<% end %>
|
80
60
|
|
81
61
|
<% if should_use_roodi %>
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
t.verbose = false
|
87
|
-
end
|
88
|
-
rescue LoadError
|
89
|
-
task :roodi do
|
90
|
-
abort "Roodi is not available. In order to run roodi, you must: sudo gem install roodi"
|
91
|
-
end
|
62
|
+
require 'roodi'
|
63
|
+
require 'roodi_task'
|
64
|
+
RoodiTask.new do |t|
|
65
|
+
t.verbose = false
|
92
66
|
end
|
93
67
|
<% end %>
|
94
68
|
|
@@ -106,12 +80,6 @@ Rake::RDocTask.new do |rdoc|
|
|
106
80
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
107
81
|
end
|
108
82
|
<% when :yard %>
|
109
|
-
|
110
|
-
|
111
|
-
YARD::Rake::YardocTask.new
|
112
|
-
rescue LoadError
|
113
|
-
task :yardoc do
|
114
|
-
abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
|
115
|
-
end
|
116
|
-
end
|
83
|
+
require 'yard'
|
84
|
+
YARD::Rake::YardocTask.new
|
117
85
|
<% end %>
|
File without changes
|
@@ -1,10 +1,14 @@
|
|
1
|
+
<%= render_template 'bundler_setup.erb' %>
|
1
2
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
3
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
4
|
require '<%= require_name %>'
|
4
|
-
require '
|
5
|
-
require '
|
5
|
+
require 'rspec'
|
6
|
+
require 'rspec/autorun'
|
6
7
|
|
8
|
+
# Requires supporting files with custom matchers and macros, etc,
|
9
|
+
# in ./support/ and its subdirectories.
|
10
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
7
11
|
|
8
|
-
|
12
|
+
RSpec.configure do |config|
|
9
13
|
|
10
14
|
end
|
@@ -49,7 +49,7 @@ class Jeweler
|
|
49
49
|
module PlaintextExtension
|
50
50
|
def write
|
51
51
|
File.open(plaintext_path, 'w') do |file|
|
52
|
-
file.
|
52
|
+
file.write to_s
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
@@ -132,6 +132,5 @@ class Jeweler
|
|
132
132
|
absolute_path = File.expand_path(denormalized_path)
|
133
133
|
absolute_path.gsub(Dir.getwd + File::SEPARATOR, '')
|
134
134
|
end
|
135
|
-
|
136
135
|
end
|
137
136
|
end
|
@@ -13,7 +13,7 @@ begin
|
|
13
13
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
14
14
|
end
|
15
15
|
rescue LoadError
|
16
|
-
puts "Jeweler not available. Install it with:
|
16
|
+
puts "Jeweler not available. Install it with: gem install technicalpickles-jeweler -s http://gems.github.com"
|
17
17
|
end
|
18
18
|
|
19
19
|
require 'rake/testtask'
|
@@ -32,7 +32,7 @@ begin
|
|
32
32
|
end
|
33
33
|
rescue LoadError
|
34
34
|
task :rcov do
|
35
|
-
abort "RCov is not available. In order to run rcov, you must:
|
35
|
+
abort "RCov is not available. In order to run rcov, you must: gem install spicycode-rcov"
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
@@ -42,6 +42,7 @@ task :default => :test
|
|
42
42
|
require 'rake/rdoctask'
|
43
43
|
Rake::RDocTask.new do |rdoc|
|
44
44
|
if File.exist?('VERSION.yml')
|
45
|
+
require 'yaml'
|
45
46
|
config = YAML.load(File.read('VERSION.yml'))
|
46
47
|
version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
47
48
|
else
|
@@ -66,6 +67,7 @@ begin
|
|
66
67
|
namespace :release do
|
67
68
|
desc "Publish RDoc to RubyForge."
|
68
69
|
task :docs => [:rdoc] do
|
70
|
+
require 'yaml'
|
69
71
|
config = YAML.load(
|
70
72
|
File.read(File.expand_path('~/.rubyforge/user-config.yml'))
|
71
73
|
)
|
@@ -12,7 +12,7 @@ begin
|
|
12
12
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
13
13
|
end
|
14
14
|
rescue LoadError
|
15
|
-
puts "Jeweler not available. Install it with:
|
15
|
+
puts "Jeweler not available. Install it with: gem install technicalpickles-jeweler -s http://gems.github.com"
|
16
16
|
end
|
17
17
|
|
18
18
|
require 'rake/testtask'
|
@@ -31,7 +31,7 @@ begin
|
|
31
31
|
end
|
32
32
|
rescue LoadError
|
33
33
|
task :rcov do
|
34
|
-
abort "RCov is not available. In order to run rcov, you must:
|
34
|
+
abort "RCov is not available. In order to run rcov, you must: gem install spicycode-rcov"
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -41,6 +41,7 @@ task :default => :test
|
|
41
41
|
require 'rake/rdoctask'
|
42
42
|
Rake::RDocTask.new do |rdoc|
|
43
43
|
if File.exist?('VERSION.yml')
|
44
|
+
require 'yaml'
|
44
45
|
config = YAML.load(File.read('VERSION.yml'))
|
45
46
|
version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
46
47
|
else
|
@@ -65,6 +66,7 @@ begin
|
|
65
66
|
namespace :release do
|
66
67
|
desc "Publish RDoc to RubyForge."
|
67
68
|
task :docs => [:rdoc] do
|
69
|
+
require 'yaml'
|
68
70
|
config = YAML.load(
|
69
71
|
File.read(File.expand_path('~/.rubyforge/user-config.yml'))
|
70
72
|
)
|