jeweler 0.10.2 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog.markdown +12 -1
- data/README.markdown +16 -10
- data/Rakefile +1 -1
- data/VERSION.yml +2 -2
- data/lib/jeweler/commands/version/base.rb +1 -1
- data/lib/jeweler/gemspec_helper.rb +30 -3
- data/lib/jeweler/generator/application.rb +4 -0
- data/lib/jeweler/generator/options.rb +6 -1
- data/lib/jeweler/specification.rb +64 -0
- data/lib/jeweler/tasks.rb +2 -3
- data/lib/jeweler/templates/Rakefile +1 -1
- data/lib/jeweler.rb +8 -25
- data/test/fixtures/bar/bin/foo_the_ultimate_bin +1 -0
- data/test/fixtures/bar/hey_include_me_in_gemspec +0 -0
- data/test/fixtures/bar/lib/foo_the_ultimate_lib.rb +1 -0
- data/test/test_helper.rb +23 -11
- data/test/test_jeweler.rb +2 -5
- data/test/test_options.rb +14 -0
- data/test/test_specification.rb +57 -0
- data/test/test_tasks.rb +12 -2
- metadata +49 -47
- data/TODO +0 -11
data/ChangeLog.markdown
CHANGED
@@ -1,4 +1,15 @@
|
|
1
|
-
# jeweler
|
1
|
+
# jeweler 0.11.0 2009-04-05
|
2
|
+
|
3
|
+
* generator will respect JEWELER_OPTS, as a way to provide default options
|
4
|
+
(pat-maddox)
|
5
|
+
* Include 'examples' and 'rails' directories by default in gemspec files
|
6
|
+
* generated gemspec now will only include files (not directories). also, they are listed one per line, and sorted.
|
7
|
+
* Jeweler::Tasks's intializer has been improved:
|
8
|
+
* You can now pass it an existing gemspec (othewise a new one will be created)
|
9
|
+
* Jeweler sets its defaults before yielding the gemspec to you. This allows you to append to its defaults, so you aren't forced to entirely overwrite them just to add one value.
|
10
|
+
* Managing a gemspec's files, test_files, and extra_rdoc_files is now more flexible. They are now wrapped in a FileList, so you can easily 'include' or 'exclude' patterns.
|
11
|
+
|
12
|
+
# jeweler 0.10.2 2009-03-26
|
2
13
|
|
3
14
|
* 'rake install' now will 'rake build' first
|
4
15
|
* Support for releasing to RubyForge, thanks to jtrupiano
|
data/README.markdown
CHANGED
@@ -14,23 +14,23 @@ Jeweler provides two things:
|
|
14
14
|
|
15
15
|
## Using in an existing project
|
16
16
|
|
17
|
-
It's easy to get up and running. Update your instantiate a `Jeweler::Tasks`, and give it a block with details about your project.
|
17
|
+
It's easy to get up and running. Update your Rakefile to instantiate a `Jeweler::Tasks`, and give it a block with details about your project.
|
18
18
|
|
19
19
|
begin
|
20
20
|
require 'jeweler'
|
21
|
-
Jeweler::Tasks.new do |
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
21
|
+
Jeweler::Tasks.new do |gemspec|
|
22
|
+
gemspec.name = "the-perfect-gem"
|
23
|
+
gemspec.summary = "TODO"
|
24
|
+
gemspec.email = "josh@technicalpickles.com"
|
25
|
+
gemspec.homepage = "http://github.com/technicalpickles/the-perfect-gem"
|
26
|
+
gemspec.description = "TODO"
|
27
|
+
gemspec.authors = ["Josh Nichols"]
|
28
28
|
end
|
29
29
|
rescue LoadError
|
30
30
|
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
31
31
|
end
|
32
32
|
|
33
|
-
|
33
|
+
The yield object here, `gemspec`, is a `Gem::Specification` object. See the [Customizing your project's gem specification](http://wiki.github.com/technicalpickles/jeweler/customizing-your-projects-gem-specification) for more details about how you can customize your gemspec.
|
34
34
|
|
35
35
|
## Using to start a new project
|
36
36
|
|
@@ -48,7 +48,13 @@ It supports a number of options:
|
|
48
48
|
* --shoulda: generate test_helper.rb and test ready for shoulda (this is the default)
|
49
49
|
* --rspec: generate spec_helper.rb and spec ready for rspec
|
50
50
|
* --bacon: generate spec_helper.rb and spec ready for bacon
|
51
|
-
* --
|
51
|
+
* --rubyforge: setup releasing to rubyforge
|
52
|
+
|
53
|
+
### Default options
|
54
|
+
|
55
|
+
Jeweler respects the JEWELER_OPTS environment variable. Want to always use RSpec, and you're using bash? Add this to ~/.bashrc:
|
56
|
+
|
57
|
+
export JEWELER_OPTS="--rspec"
|
52
58
|
|
53
59
|
## Gemspec
|
54
60
|
|
data/Rakefile
CHANGED
@@ -11,7 +11,7 @@ begin
|
|
11
11
|
gem.homepage = "http://github.com/technicalpickles/jeweler"
|
12
12
|
gem.description = "Simple and opinionated helper for creating Rubygem projects on GitHub"
|
13
13
|
gem.authors = ["Josh Nichols"]
|
14
|
-
gem.files
|
14
|
+
gem.files.include %w(lib/jeweler/templates/.document lib/jeweler/templates/.gitignore)
|
15
15
|
gem.add_dependency "peterwald-git"
|
16
16
|
gem.rubyforge_project = "pickles"
|
17
17
|
end
|
data/VERSION.yml
CHANGED
@@ -19,10 +19,18 @@ class Jeweler
|
|
19
19
|
false
|
20
20
|
end
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
def write
|
24
|
+
normalize_files(:files)
|
25
|
+
normalize_files(:files)
|
26
|
+
normalize_files(:extra_rdoc_files)
|
27
|
+
|
24
28
|
File.open(path, 'w') do |f|
|
25
|
-
|
29
|
+
gemspec_ruby = @spec.to_ruby
|
30
|
+
gemspec_ruby = prettyify_array(gemspec_ruby, :files)
|
31
|
+
gemspec_ruby = prettyify_array(gemspec_ruby, :test_files)
|
32
|
+
gemspec_ruby = prettyify_array(gemspec_ruby, :extra_rdoc_files)
|
33
|
+
f.write gemspec_ruby
|
26
34
|
end
|
27
35
|
end
|
28
36
|
|
@@ -35,10 +43,29 @@ class Jeweler
|
|
35
43
|
def parse
|
36
44
|
data = File.read(path)
|
37
45
|
parsed_gemspec = nil
|
38
|
-
Thread.new { parsed_gemspec = eval("$SAFE = 3\n#{data}", binding, path) }.join
|
46
|
+
Thread.new { parsed_gemspec = eval("$SAFE = 3\n#{data}", binding, path) }.join
|
39
47
|
parsed_gemspec
|
40
48
|
end
|
41
49
|
|
50
|
+
def normalize_files(array_name)
|
51
|
+
array = @spec.send(array_name)
|
52
|
+
# only keep files, no directories, and sort
|
53
|
+
array = array.select do |path|
|
54
|
+
File.file? File.join(@base_dir, path)
|
55
|
+
end.sort
|
56
|
+
|
57
|
+
@spec.send("#{array_name}=", array)
|
58
|
+
end
|
59
|
+
|
60
|
+
def prettyify_array(gemspec_ruby, array_name)
|
61
|
+
array = @spec.send(array_name)
|
62
|
+
quoted_array = array.map {|file| %Q{"#{file}"}}
|
63
|
+
nastily_formated_array = "s.#{array_name} = [#{quoted_array.join(", ")}]"
|
64
|
+
nicely_formated_array = "s.#{array_name} = [\n #{quoted_array.join(",\n ")}\n ]"
|
65
|
+
|
66
|
+
gemspec_ruby.gsub(nastily_formated_array, nicely_formated_array)
|
67
|
+
end
|
68
|
+
|
42
69
|
def gem_path
|
43
70
|
File.join(@base_dir, 'pkg', parse.file_name)
|
44
71
|
end
|
@@ -3,7 +3,11 @@ class Jeweler
|
|
3
3
|
class Application
|
4
4
|
class << self
|
5
5
|
def run!(*arguments)
|
6
|
+
env_opts = if ENV['JEWELER_OPTS']
|
7
|
+
Jeweler::Generator::Options.new(ENV['JEWELER_OPTS'].split(' '))
|
8
|
+
end
|
6
9
|
options = Jeweler::Generator::Options.new(arguments)
|
10
|
+
options = options.merge(env_opts) if env_opts
|
7
11
|
|
8
12
|
if options[:show_help]
|
9
13
|
$stderr.puts options.opts
|
@@ -1,11 +1,12 @@
|
|
1
1
|
class Jeweler
|
2
2
|
class Generator
|
3
3
|
class Options < Hash
|
4
|
-
attr_reader :opts
|
4
|
+
attr_reader :opts, :orig_args
|
5
5
|
|
6
6
|
def initialize(args)
|
7
7
|
super()
|
8
8
|
|
9
|
+
@orig_args = args.clone
|
9
10
|
self[:testing_framework] = :shoulda
|
10
11
|
|
11
12
|
@opts = OptionParser.new do |o|
|
@@ -63,6 +64,10 @@ class Jeweler
|
|
63
64
|
@opts.parse!(args)
|
64
65
|
end
|
65
66
|
|
67
|
+
def merge(other)
|
68
|
+
self.class.new(@orig_args + other.orig_args)
|
69
|
+
end
|
70
|
+
|
66
71
|
end
|
67
72
|
end
|
68
73
|
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'rubygems/specification'
|
2
|
+
|
3
|
+
class Jeweler
|
4
|
+
# Extend a Gem::Specification instance with this module to give it Jeweler
|
5
|
+
# super-cow powers.
|
6
|
+
module Specification
|
7
|
+
|
8
|
+
def self.filelist_attribute(name)
|
9
|
+
code = %{
|
10
|
+
def #{name}
|
11
|
+
@#{name} ||= FileList[]
|
12
|
+
end
|
13
|
+
def #{name}=(value)
|
14
|
+
@#{name} = FileList[value]
|
15
|
+
end
|
16
|
+
}
|
17
|
+
|
18
|
+
module_eval code, __FILE__, __LINE__ - 9
|
19
|
+
end
|
20
|
+
|
21
|
+
filelist_attribute :files
|
22
|
+
filelist_attribute :test_files
|
23
|
+
filelist_attribute :extra_rdoc_files
|
24
|
+
|
25
|
+
|
26
|
+
# Assigns the Jeweler defaults to the Gem::Specification
|
27
|
+
def set_jeweler_defaults(base_dir)
|
28
|
+
Dir.chdir(base_dir) do
|
29
|
+
if blank?(files)
|
30
|
+
self.files = FileList["[A-Z]*.*", "{bin,examples,generators,lib,rails,spec,test}/**/*", 'Rakefile', 'LICENSE*']
|
31
|
+
end
|
32
|
+
|
33
|
+
if blank?(test_files)
|
34
|
+
self.test_files = FileList['{spec,test,examples}/**/*.rb']
|
35
|
+
end
|
36
|
+
|
37
|
+
if blank?(executable)
|
38
|
+
self.executables = Dir["bin/*"].map { |f| File.basename(f) }
|
39
|
+
end
|
40
|
+
|
41
|
+
self.has_rdoc = true
|
42
|
+
rdoc_options << '--charset=UTF-8'
|
43
|
+
|
44
|
+
if blank?(extra_rdoc_files)
|
45
|
+
self.extra_rdoc_files = FileList["README*", "ChangeLog*", "LICENSE*"]
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# Used by Specification#to_ruby to generate a ruby-respresentation of a Gem::Specification
|
51
|
+
def ruby_code(obj)
|
52
|
+
case obj
|
53
|
+
when Rake::FileList then obj.to_a.inspect
|
54
|
+
else super
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
def blank?(value)
|
61
|
+
value.nil? || value.empty?
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
data/lib/jeweler/tasks.rb
CHANGED
@@ -6,10 +6,9 @@ class Jeweler
|
|
6
6
|
attr_accessor :gemspec, :jeweler
|
7
7
|
|
8
8
|
def initialize(gemspec = nil, &block)
|
9
|
-
@gemspec = gemspec || Gem::Specification.new
|
10
|
-
yield @gemspec if block_given?
|
11
|
-
|
9
|
+
@gemspec = gemspec || Gem::Specification.new
|
12
10
|
@jeweler = Jeweler.new(@gemspec)
|
11
|
+
yield @gemspec if block_given?
|
13
12
|
|
14
13
|
define
|
15
14
|
end
|
@@ -36,7 +36,7 @@ require 'rake/testtask'
|
|
36
36
|
Rake::TestTask.new(:<%= test_or_spec %>) do |<%= test_or_spec %>|
|
37
37
|
<%= test_or_spec %>.libs << 'lib' << '<%= test_or_spec %>'
|
38
38
|
<%= test_or_spec %>.pattern = '<%= test_or_spec %>/**/*_<%= test_or_spec %>.rb'
|
39
|
-
<%= test_or_spec %>.verbose =
|
39
|
+
<%= test_or_spec %>.verbose = true
|
40
40
|
end
|
41
41
|
<% end %>
|
42
42
|
|
data/lib/jeweler.rb
CHANGED
@@ -14,6 +14,8 @@ require 'jeweler/commands'
|
|
14
14
|
|
15
15
|
require 'jeweler/tasks'
|
16
16
|
|
17
|
+
require 'jeweler/specification'
|
18
|
+
|
17
19
|
# A Jeweler helps you craft the perfect Rubygem. Give him a gemspec, and he takes care of the rest.
|
18
20
|
class Jeweler
|
19
21
|
|
@@ -23,13 +25,16 @@ class Jeweler
|
|
23
25
|
def initialize(gemspec, base_dir = '.')
|
24
26
|
raise(GemspecError, "Can't create a Jeweler with a nil gemspec") if gemspec.nil?
|
25
27
|
|
28
|
+
@gemspec = gemspec
|
29
|
+
@gemspec.extend(Specification)
|
30
|
+
@gemspec.set_jeweler_defaults(base_dir)
|
31
|
+
|
26
32
|
@base_dir = base_dir
|
27
|
-
@gemspec = fill_in_gemspec_defaults(gemspec)
|
28
33
|
@repo = Git.open(base_dir) if in_git_repo?
|
29
|
-
@version_helper = Jeweler::VersionHelper.new(
|
34
|
+
@version_helper = Jeweler::VersionHelper.new(base_dir)
|
30
35
|
@output = $stdout
|
31
36
|
@commit = true
|
32
|
-
@gemspec_helper = GemSpecHelper.new(
|
37
|
+
@gemspec_helper = GemSpecHelper.new(gemspec, base_dir)
|
33
38
|
@rubyforge = RubyForge.new
|
34
39
|
end
|
35
40
|
|
@@ -128,27 +133,5 @@ class Jeweler
|
|
128
133
|
File.exists?(File.join(self.base_dir, '.git'))
|
129
134
|
end
|
130
135
|
|
131
|
-
protected
|
132
|
-
|
133
|
-
def fill_in_gemspec_defaults(gemspec)
|
134
|
-
if gemspec.files.nil? || gemspec.files.empty?
|
135
|
-
gemspec.files = FileList["[A-Z]*.*", "{bin,generators,lib,test,spec}/**/*"]
|
136
|
-
end
|
137
|
-
|
138
|
-
if gemspec.executables.nil? || gemspec.executables.empty?
|
139
|
-
gemspec.executables = Dir["#{@base_dir}/bin/*"].map do |f|
|
140
|
-
File.basename(f)
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
gemspec.has_rdoc = true
|
145
|
-
gemspec.rdoc_options << '--inline-source' << '--charset=UTF-8'
|
146
|
-
|
147
|
-
if gemspec.extra_rdoc_files.nil? || gemspec.extra_rdoc_files.empty?
|
148
|
-
gemspec.extra_rdoc_files = FileList["README*", "ChangeLog*", "LICENSE*"]
|
149
|
-
end
|
150
|
-
|
151
|
-
gemspec
|
152
|
-
end
|
153
136
|
end
|
154
137
|
|
@@ -0,0 +1 @@
|
|
1
|
+
# You betcha!
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
# Uhuh
|
data/test/test_helper.rb
CHANGED
@@ -1,9 +1,16 @@
|
|
1
|
+
# Use vendored gem because of limited gem availability on runcoderun
|
2
|
+
# This is loosely based on 'vendor everything'.
|
3
|
+
Dir[File.join(File.dirname(__FILE__), '..', 'vendor', 'gems', '**')].each do |dir|
|
4
|
+
lib = "#{dir}/lib"
|
5
|
+
$LOAD_PATH.unshift(lib) if File.directory?(lib)
|
6
|
+
end
|
7
|
+
|
1
8
|
require 'test/unit'
|
2
9
|
|
3
10
|
require 'rubygems'
|
4
11
|
require 'shoulda'
|
5
12
|
begin
|
6
|
-
require 'ruby-debug'
|
13
|
+
require 'ruby-debug'
|
7
14
|
rescue LoadError
|
8
15
|
end
|
9
16
|
require 'rr'
|
@@ -15,31 +22,36 @@ require 'jeweler'
|
|
15
22
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
16
23
|
require 'shoulda_macros/jeweler_macros'
|
17
24
|
|
18
|
-
|
19
|
-
|
20
|
-
Dir[File.join(File.dirname(__FILE__), '..', 'vendor', 'gems', '**')].each do |dir|
|
21
|
-
lib = "#{dir}/lib"
|
22
|
-
$LOAD_PATH.unshift(lib) if File.directory?(lib)
|
23
|
-
end
|
25
|
+
TMP_DIR = File.expand_path('../tmp', __FILE__)
|
26
|
+
FIXTURE_DIR = File.expand_path('../fixtures', __FILE__)
|
24
27
|
|
25
28
|
class RubyForgeStub
|
26
29
|
attr_accessor :userconfig, :autoconfig
|
27
|
-
|
28
30
|
def initialize
|
29
31
|
@userconfig = {}
|
30
32
|
@autoconfig = {}
|
31
33
|
end
|
32
34
|
end
|
33
35
|
|
36
|
+
require 'output_catcher'
|
37
|
+
|
34
38
|
class Test::Unit::TestCase
|
35
39
|
include RR::Adapters::TestUnit unless include?(RR::Adapters::TestUnit)
|
36
40
|
|
41
|
+
def tmp_dir
|
42
|
+
TMP_DIR
|
43
|
+
end
|
44
|
+
|
37
45
|
def fixture_dir
|
38
|
-
File.join(
|
46
|
+
File.join(FIXTURE_DIR, 'bar')
|
39
47
|
end
|
40
48
|
|
41
|
-
def
|
42
|
-
|
49
|
+
def remove_tmpdir!
|
50
|
+
FileUtils.rm_rf(tmp_dir)
|
51
|
+
end
|
52
|
+
|
53
|
+
def create_tmpdir!
|
54
|
+
FileUtils.mkdir_p(tmp_dir)
|
43
55
|
end
|
44
56
|
|
45
57
|
def build_spec(*files)
|
data/test/test_jeweler.rb
CHANGED
@@ -4,6 +4,7 @@ class TestJeweler < Test::Unit::TestCase
|
|
4
4
|
|
5
5
|
def build_jeweler(base_dir = nil)
|
6
6
|
base_dir ||= non_git_dir_path
|
7
|
+
FileUtils.mkdir_p base_dir
|
7
8
|
|
8
9
|
Jeweler.new(build_spec, base_dir)
|
9
10
|
end
|
@@ -17,14 +18,10 @@ class TestJeweler < Test::Unit::TestCase
|
|
17
18
|
end
|
18
19
|
|
19
20
|
def build_git_dir
|
20
|
-
return_to = Dir.pwd
|
21
21
|
|
22
22
|
FileUtils.mkdir_p git_dir_path
|
23
|
-
|
24
|
-
Dir.chdir git_dir_path
|
23
|
+
Dir.chdir git_dir_path do
|
25
24
|
Git.init
|
26
|
-
ensure
|
27
|
-
Dir.chdir return_to
|
28
25
|
end
|
29
26
|
end
|
30
27
|
|
data/test/test_options.rb
CHANGED
@@ -93,4 +93,18 @@ class TestOptions < Test::Unit::TestCase
|
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
96
|
+
context "merging options" do
|
97
|
+
should "take options from each" do
|
98
|
+
options = Jeweler::Generator::Options.new(["--rspec"]).
|
99
|
+
merge Jeweler::Generator::Options.new(["--create-repo"])
|
100
|
+
assert_equal :rspec, options[:testing_framework]
|
101
|
+
assert options[:create_repo]
|
102
|
+
end
|
103
|
+
|
104
|
+
should "shadow options" do
|
105
|
+
options = Jeweler::Generator::Options.new(["--bacon"]).
|
106
|
+
merge Jeweler::Generator::Options.new(["--rspec"])
|
107
|
+
assert_equal :rspec, options[:testing_framework]
|
108
|
+
end
|
109
|
+
end
|
96
110
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestSpecification < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
remove_tmpdir!
|
6
|
+
FileUtils.cp_r fixture_dir, tmp_dir
|
7
|
+
|
8
|
+
|
9
|
+
@spec = Gem::Specification.new
|
10
|
+
@spec.extend(Jeweler::Specification)
|
11
|
+
@spec.set_jeweler_defaults(tmp_dir)
|
12
|
+
end
|
13
|
+
|
14
|
+
def teardown
|
15
|
+
remove_tmpdir!
|
16
|
+
end
|
17
|
+
|
18
|
+
context "Gem::Specification with Jeweler monkey-patches" do
|
19
|
+
context "when setting defaults" do
|
20
|
+
should "should populate `files'" do
|
21
|
+
assert_equal %w{Rakefile VERSION.yml bin/foo_the_ultimate_bin lib/foo_the_ultimate_lib.rb }, @spec.files.sort
|
22
|
+
end
|
23
|
+
|
24
|
+
should "should populate `executables'" do
|
25
|
+
assert_equal %w{ foo_the_ultimate_bin }, @spec.executables
|
26
|
+
end
|
27
|
+
|
28
|
+
context "with values already set" do
|
29
|
+
setup do
|
30
|
+
@spec.files = %w{ hey_include_me_in_gemspec }
|
31
|
+
@spec.set_jeweler_defaults(fixture_dir)
|
32
|
+
end
|
33
|
+
|
34
|
+
should "not re-populate `files'" do
|
35
|
+
assert_equal %w{ hey_include_me_in_gemspec }, @spec.files
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "for rdoc" do
|
40
|
+
should "be enabled" do
|
41
|
+
assert @spec.has_rdoc
|
42
|
+
end
|
43
|
+
|
44
|
+
should "be utf-8" do
|
45
|
+
assert @spec.rdoc_options.include?('--charset=UTF-8')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
should "allow the user to concat files to the existing `files' array" do
|
51
|
+
before = @spec.files.dup
|
52
|
+
@spec.files << 'extra'
|
53
|
+
|
54
|
+
assert_equal before + %w{ extra }, @spec.files
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
data/test/test_tasks.rb
CHANGED
@@ -8,8 +8,7 @@ class TestTasks < Test::Unit::TestCase
|
|
8
8
|
setup do
|
9
9
|
Task.clear
|
10
10
|
|
11
|
-
@jt = Jeweler::Tasks.new
|
12
|
-
end
|
11
|
+
@jt = Jeweler::Tasks.new {}
|
13
12
|
end
|
14
13
|
|
15
14
|
should 'assign @gemspec' do
|
@@ -20,6 +19,17 @@ class TestTasks < Test::Unit::TestCase
|
|
20
19
|
assert_not_nil @jt.jeweler
|
21
20
|
end
|
22
21
|
|
22
|
+
should 'yield the gemspec instance' do
|
23
|
+
spec = nil; Jeweler::Tasks.new { |s| spec = s }
|
24
|
+
assert_not_nil spec
|
25
|
+
end
|
26
|
+
|
27
|
+
should 'set the gemspec defaults before yielding it' do
|
28
|
+
Jeweler::Tasks.new do |s|
|
29
|
+
assert !s.files.empty?
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
23
33
|
should 'define tasks' do
|
24
34
|
assert Task.task_defined?(:build)
|
25
35
|
assert Task.task_defined?(:install)
|
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.
|
4
|
+
version: 0.11.0
|
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-
|
12
|
+
date: 2009-04-05 00:00:00 -04:00
|
13
13
|
default_executable: jeweler
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -29,87 +29,71 @@ executables:
|
|
29
29
|
extensions: []
|
30
30
|
|
31
31
|
extra_rdoc_files:
|
32
|
-
- README.markdown
|
33
32
|
- ChangeLog.markdown
|
34
33
|
- LICENSE
|
34
|
+
- README.markdown
|
35
35
|
files:
|
36
36
|
- ChangeLog.markdown
|
37
37
|
- LICENSE
|
38
|
-
- Rakefile
|
39
38
|
- README.markdown
|
40
|
-
-
|
39
|
+
- Rakefile
|
41
40
|
- VERSION.yml
|
42
41
|
- bin/jeweler
|
43
|
-
- lib/jeweler
|
44
|
-
- lib/jeweler/commands
|
42
|
+
- lib/jeweler.rb
|
43
|
+
- lib/jeweler/commands.rb
|
45
44
|
- lib/jeweler/commands/build_gem.rb
|
46
45
|
- lib/jeweler/commands/install_gem.rb
|
47
46
|
- lib/jeweler/commands/release.rb
|
48
47
|
- lib/jeweler/commands/release_to_rubyforge.rb
|
49
48
|
- lib/jeweler/commands/setup_rubyforge.rb
|
50
49
|
- lib/jeweler/commands/validate_gemspec.rb
|
51
|
-
- lib/jeweler/commands/version
|
52
50
|
- lib/jeweler/commands/version/base.rb
|
53
51
|
- lib/jeweler/commands/version/bump_major.rb
|
54
52
|
- lib/jeweler/commands/version/bump_minor.rb
|
55
53
|
- lib/jeweler/commands/version/bump_patch.rb
|
56
54
|
- lib/jeweler/commands/version/write.rb
|
57
55
|
- lib/jeweler/commands/write_gemspec.rb
|
58
|
-
- lib/jeweler/commands.rb
|
59
56
|
- lib/jeweler/errors.rb
|
60
57
|
- lib/jeweler/gemspec_helper.rb
|
61
|
-
- lib/jeweler/generator
|
58
|
+
- lib/jeweler/generator.rb
|
62
59
|
- lib/jeweler/generator/application.rb
|
63
60
|
- lib/jeweler/generator/options.rb
|
64
|
-
- lib/jeweler/
|
61
|
+
- lib/jeweler/specification.rb
|
65
62
|
- lib/jeweler/tasks.rb
|
66
|
-
- lib/jeweler/templates
|
67
|
-
- lib/jeweler/templates
|
63
|
+
- lib/jeweler/templates/.document
|
64
|
+
- lib/jeweler/templates/.gitignore
|
65
|
+
- lib/jeweler/templates/LICENSE
|
66
|
+
- lib/jeweler/templates/README.rdoc
|
67
|
+
- lib/jeweler/templates/Rakefile
|
68
68
|
- lib/jeweler/templates/bacon/flunking.rb
|
69
69
|
- lib/jeweler/templates/bacon/helper.rb
|
70
|
-
- lib/jeweler/templates/features
|
71
70
|
- lib/jeweler/templates/features/default.feature
|
72
|
-
- lib/jeweler/templates/features/support
|
73
71
|
- lib/jeweler/templates/features/support/env.rb
|
74
|
-
- lib/jeweler/templates/LICENSE
|
75
|
-
- lib/jeweler/templates/micronaut
|
76
72
|
- lib/jeweler/templates/micronaut/flunking.rb
|
77
73
|
- lib/jeweler/templates/micronaut/helper.rb
|
78
|
-
- lib/jeweler/templates/minitest
|
79
74
|
- lib/jeweler/templates/minitest/flunking.rb
|
80
75
|
- lib/jeweler/templates/minitest/helper.rb
|
81
|
-
- lib/jeweler/templates/Rakefile
|
82
|
-
- lib/jeweler/templates/README.rdoc
|
83
|
-
- lib/jeweler/templates/rspec
|
84
76
|
- lib/jeweler/templates/rspec/flunking.rb
|
85
77
|
- lib/jeweler/templates/rspec/helper.rb
|
86
|
-
- lib/jeweler/templates/shoulda
|
87
78
|
- lib/jeweler/templates/shoulda/flunking.rb
|
88
79
|
- lib/jeweler/templates/shoulda/helper.rb
|
89
|
-
- lib/jeweler/templates/testunit
|
90
80
|
- lib/jeweler/templates/testunit/flunking.rb
|
91
81
|
- lib/jeweler/templates/testunit/helper.rb
|
92
82
|
- lib/jeweler/version_helper.rb
|
93
|
-
- lib/jeweler.rb
|
94
|
-
- test/fixtures
|
95
|
-
- test/fixtures/bar
|
96
83
|
- test/fixtures/bar/VERSION.yml
|
97
|
-
- test/fixtures/
|
98
|
-
- test/fixtures/
|
99
|
-
- test/fixtures/
|
100
|
-
- test/fixtures/existing-project-with-version/lib/existing_project_with_version.rb
|
84
|
+
- test/fixtures/bar/bin/foo_the_ultimate_bin
|
85
|
+
- test/fixtures/bar/hey_include_me_in_gemspec
|
86
|
+
- test/fixtures/bar/lib/foo_the_ultimate_lib.rb
|
101
87
|
- test/fixtures/existing-project-with-version/LICENSE
|
102
|
-
- test/fixtures/existing-project-with-version/Rakefile
|
103
88
|
- test/fixtures/existing-project-with-version/README.rdoc
|
104
|
-
- test/fixtures/existing-project-with-version/
|
89
|
+
- test/fixtures/existing-project-with-version/Rakefile
|
90
|
+
- test/fixtures/existing-project-with-version/VERSION.yml
|
91
|
+
- test/fixtures/existing-project-with-version/existing-project-with-version.gemspec
|
92
|
+
- test/fixtures/existing-project-with-version/lib/existing_project_with_version.rb
|
105
93
|
- test/fixtures/existing-project-with-version/test/existing_project_with_version_test.rb
|
106
94
|
- test/fixtures/existing-project-with-version/test/test_helper.rb
|
107
|
-
- test/fixtures/existing-project-with-version/VERSION.yml
|
108
95
|
- test/geminstaller.yml
|
109
|
-
- test/generators
|
110
96
|
- test/generators/initialization_test.rb
|
111
|
-
- test/jeweler
|
112
|
-
- test/jeweler/commands
|
113
97
|
- test/jeweler/commands/test_build_gem.rb
|
114
98
|
- test/jeweler/commands/test_install_gem.rb
|
115
99
|
- test/jeweler/commands/test_release.rb
|
@@ -117,13 +101,11 @@ files:
|
|
117
101
|
- test/jeweler/commands/test_setup_rubyforge.rb
|
118
102
|
- test/jeweler/commands/test_validate_gemspec.rb
|
119
103
|
- test/jeweler/commands/test_write_gemspec.rb
|
120
|
-
- test/jeweler/commands/version
|
121
104
|
- test/jeweler/commands/version/test_base.rb
|
122
105
|
- test/jeweler/commands/version/test_bump_major.rb
|
123
106
|
- test/jeweler/commands/version/test_bump_minor.rb
|
124
107
|
- test/jeweler/commands/version/test_bump_patch.rb
|
125
108
|
- test/jeweler/commands/version/test_write.rb
|
126
|
-
- test/shoulda_macros
|
127
109
|
- test/shoulda_macros/jeweler_macros.rb
|
128
110
|
- test/test_application.rb
|
129
111
|
- test/test_gemspec_helper.rb
|
@@ -131,20 +113,14 @@ files:
|
|
131
113
|
- test/test_helper.rb
|
132
114
|
- test/test_jeweler.rb
|
133
115
|
- test/test_options.rb
|
116
|
+
- test/test_specification.rb
|
134
117
|
- test/test_tasks.rb
|
135
118
|
- test/test_version_helper.rb
|
136
|
-
- test/tmp
|
137
|
-
- test/tmp/git
|
138
|
-
- test/tmp/nongit
|
139
|
-
- test/version_tmp
|
140
119
|
- test/version_tmp/VERSION.yml
|
141
|
-
- lib/jeweler/templates/.document
|
142
|
-
- lib/jeweler/templates/.gitignore
|
143
120
|
has_rdoc: true
|
144
121
|
homepage: http://github.com/technicalpickles/jeweler
|
145
122
|
post_install_message:
|
146
123
|
rdoc_options:
|
147
|
-
- --inline-source
|
148
124
|
- --charset=UTF-8
|
149
125
|
require_paths:
|
150
126
|
- lib
|
@@ -167,5 +143,31 @@ rubygems_version: 1.3.1
|
|
167
143
|
signing_key:
|
168
144
|
specification_version: 2
|
169
145
|
summary: Simple and opinionated helper for creating Rubygem projects on GitHub
|
170
|
-
test_files:
|
171
|
-
|
146
|
+
test_files:
|
147
|
+
- test/fixtures/bar/lib/foo_the_ultimate_lib.rb
|
148
|
+
- test/fixtures/existing-project-with-version/lib/existing_project_with_version.rb
|
149
|
+
- test/fixtures/existing-project-with-version/test/existing_project_with_version_test.rb
|
150
|
+
- test/fixtures/existing-project-with-version/test/test_helper.rb
|
151
|
+
- test/generators/initialization_test.rb
|
152
|
+
- test/jeweler/commands/test_build_gem.rb
|
153
|
+
- test/jeweler/commands/test_install_gem.rb
|
154
|
+
- test/jeweler/commands/test_release.rb
|
155
|
+
- test/jeweler/commands/test_release_to_rubyforge.rb
|
156
|
+
- test/jeweler/commands/test_setup_rubyforge.rb
|
157
|
+
- test/jeweler/commands/test_validate_gemspec.rb
|
158
|
+
- test/jeweler/commands/test_write_gemspec.rb
|
159
|
+
- test/jeweler/commands/version/test_base.rb
|
160
|
+
- test/jeweler/commands/version/test_bump_major.rb
|
161
|
+
- test/jeweler/commands/version/test_bump_minor.rb
|
162
|
+
- test/jeweler/commands/version/test_bump_patch.rb
|
163
|
+
- test/jeweler/commands/version/test_write.rb
|
164
|
+
- test/shoulda_macros/jeweler_macros.rb
|
165
|
+
- test/test_application.rb
|
166
|
+
- test/test_gemspec_helper.rb
|
167
|
+
- test/test_generator.rb
|
168
|
+
- test/test_helper.rb
|
169
|
+
- test/test_jeweler.rb
|
170
|
+
- test/test_options.rb
|
171
|
+
- test/test_specification.rb
|
172
|
+
- test/test_tasks.rb
|
173
|
+
- test/test_version_helper.rb
|
data/TODO
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
* use some sort of logger instead of stdout and stderr
|
2
|
-
* jeweler --delete-repo
|
3
|
-
* output gemspec as yaml
|
4
|
-
* move interactions with github into separate class
|
5
|
-
* use Net::HTTP.post_form instead of `` for enabling gem creation
|
6
|
-
* Generators
|
7
|
-
* Rails generator for making a plugin that's Jeweler enabled
|
8
|
-
* Change generated test filename (test_foo not foo_test)
|
9
|
-
* Releasing
|
10
|
-
* Have a way to check if the gem is built yet
|
11
|
-
* Option for enabling
|