hoe 2.9.6 → 2.10.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.
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,15 @@
1
+ === 2.10.0 / 2011-06-30
2
+
3
+ * 3 minor enhancements:
4
+
5
+ * Added parse_urls to deal with array and hash style url lists in README.txt.
6
+ * Added urls accessor.
7
+ * Deprecated url accessors.
8
+
9
+ * 1 bug fix:
10
+
11
+ * Specified wrong version of racc in racc plugin.
12
+
1
13
  === 2.9.6 / 2011-06-22
2
14
 
3
15
  * 3 bug fixes:
data/README.txt CHANGED
@@ -1,9 +1,9 @@
1
1
  = Hoe
2
2
 
3
- * http://rubyforge.org/projects/seattlerb/
4
- * http://seattlerb.rubyforge.org/hoe/
5
- * http://seattlerb.rubyforge.org/hoe/Hoe.pdf
6
- * http://github.com/jbarnette/hoe-plugin-examples
3
+ home :: https://github.com/seattlerb/hoe
4
+ rdoc :: http://seattlerb.rubyforge.org/hoe/
5
+ doco :: http://seattlerb.rubyforge.org/hoe/Hoe.pdf
6
+ other :: http://github.com/jbarnette/hoe-plugin-examples
7
7
 
8
8
  == DESCRIPTION:
9
9
 
@@ -284,7 +284,7 @@ We use the bug trackers hosted at: http://rubyforge.org/projects/seattlerb
284
284
 
285
285
  (The MIT License)
286
286
 
287
- Copyright (c) Ryan Davis, Seattle.rb
287
+ Copyright (c) Ryan Davis, seattle.rb
288
288
 
289
289
  Permission is hereby granted, free of charge, to any person obtaining
290
290
  a copy of this software and associated documentation files (the
data/lib/hoe.rb CHANGED
@@ -67,7 +67,7 @@ class Hoe
67
67
  include Rake::DSL if defined?(Rake::DSL)
68
68
 
69
69
  # duh
70
- VERSION = '2.9.6'
70
+ VERSION = '2.10.0'
71
71
 
72
72
  @@plugins = [:clean, :debug, :deps, :flay, :flog, :newb, :package,
73
73
  :publish, :rcov, :gemcutter, :signing, :test]
@@ -211,12 +211,22 @@ class Hoe
211
211
  attr_accessor :test_globs
212
212
 
213
213
  ##
214
- # Optional: The url(s) of the project. (can be array).
214
+ # Deprecated: Optional: The url(s) of the project. (can be array).
215
215
  # Auto-populates to a list of urls read from the beginning of
216
216
  # README.txt.
217
+ #
217
218
 
218
219
  attr_accessor :url
219
220
 
221
+ ##
222
+ # Optional: The urls of the project. This can be an array or
223
+ # (preferably) a hash. Auto-populates to the urls read from the
224
+ # beginning of README.txt.
225
+ #
226
+ # See parse_urls for more details
227
+
228
+ attr_accessor :urls
229
+
220
230
  ##
221
231
  # *MANDATORY*: The version. Don't hardcode! use a constant in the project.
222
232
 
@@ -532,10 +542,19 @@ class Hoe
532
542
  }]
533
543
  desc = sections.values_at(*description_sections).join("\n\n")
534
544
  summ = desc.split(/\.\s+/).first(summary_sentences).join(". ")
545
+ urls = parse_urls(readme[1])
535
546
 
547
+ self.urls ||= urls
536
548
  self.description ||= desc
537
549
  self.summary ||= summ
538
- self.url ||= readme[1].gsub(/^\* /, '').split(/\n/).grep(/\S+/)
550
+ self.url ||= case urls
551
+ when Hash then
552
+ urls["home"] || urls["repo"] || urls.values.first
553
+ when Array then
554
+ urls
555
+ else
556
+ raise "unknown urls format: #{urls.inspect}"
557
+ end
539
558
  else
540
559
  missing readme_file
541
560
  end
@@ -549,6 +568,33 @@ class Hoe
549
568
  end
550
569
  end
551
570
 
571
+ ##
572
+ # Parse the urls section of the readme file. Returns a hash or an
573
+ # array depending on the format of the section.
574
+ #
575
+ # label1 :: url1
576
+ # label2 :: url2
577
+ # label3 :: url3
578
+ #
579
+ # vs:
580
+ #
581
+ # * url1
582
+ # * url2
583
+ # * url3
584
+ #
585
+ # The hash format is preferred as it will be used to populate gem
586
+ # metadata. The array format will work, but will warn that you
587
+ # should update the readme.
588
+
589
+ def parse_urls text
590
+ lines = text.gsub(/^\* /, '').split(/\n/).grep(/\S+/)
591
+ if lines.first =~ /::/ then
592
+ Hash[lines.map { |line| line.split(/\s*::\s*/) }]
593
+ else
594
+ lines
595
+ end
596
+ end
597
+
552
598
  ##
553
599
  # Load activated plugins by calling their define tasks method.
554
600
 
@@ -43,7 +43,7 @@ module Hoe::Racc
43
43
  self.racc_flags ||= "-v -l"
44
44
  self.rex_flags ||= "--independent"
45
45
 
46
- dependency 'racc', '~> 1.4.7', :development
46
+ dependency 'racc', '~> 1.4.6', :development
47
47
  end
48
48
 
49
49
  ##
@@ -11,6 +11,12 @@ end
11
11
  $rakefile = nil # shuts up a warning in rdoctask.rb
12
12
 
13
13
  class TestHoe < MiniTest::Unit::TestCase
14
+ def hoe
15
+ @hoe ||= Hoe.spec("blah") do
16
+ developer 'author', 'email'
17
+ end
18
+ end
19
+
14
20
  def setup
15
21
  Rake.application.clear
16
22
  end
@@ -24,10 +30,6 @@ class TestHoe < MiniTest::Unit::TestCase
24
30
  end
25
31
 
26
32
  def test_activate_plugins
27
- hoe = Hoe.spec 'blah' do
28
- developer 'author', 'email'
29
- end
30
-
31
33
  initializers = hoe.methods.grep(/^initialize/).map { |s| s.to_s }
32
34
 
33
35
  assert_includes initializers, 'initialize_clean'
@@ -56,11 +58,7 @@ class TestHoe < MiniTest::Unit::TestCase
56
58
  io.write YAML.dump('plugins' => %w[hoerc])
57
59
  end
58
60
 
59
- spec = Hoe.spec 'blah' do
60
- developer 'author', 'email'
61
- end
62
-
63
- methods = spec.methods.grep(/^initialize/).map { |s| s.to_s }
61
+ methods = hoe.methods.grep(/^initialize/).map { |s| s.to_s }
64
62
 
65
63
  assert_includes methods, 'initialize_hoerc'
66
64
  end
@@ -90,12 +88,9 @@ class TestHoe < MiniTest::Unit::TestCase
90
88
  io.write YAML.dump('plugins' => %w[hoerc])
91
89
  end
92
90
 
93
- spec = Hoe.spec 'blah' do
94
- developer 'author', 'email'
95
- end
96
-
97
- assert_includes spec.instance_variables.map(&:to_s), '@hoerc_plugin_initialized',
98
- "Hoerc plugin wasn't initialized"
91
+ methods = hoe.instance_variables.map(&:to_s)
92
+ assert_includes(methods, '@hoerc_plugin_initialized',
93
+ "Hoerc plugin wasn't initialized")
99
94
  end
100
95
  ensure
101
96
  Hoe.instance_variable_get(:@loaded).delete :hoerc
@@ -113,6 +108,38 @@ class TestHoe < MiniTest::Unit::TestCase
113
108
  end
114
109
  end
115
110
 
111
+ def test_parse_urls_ary
112
+ ary = ["* https://github.com/seattlerb/hoe",
113
+ "* http://seattlerb.rubyforge.org/hoe/",
114
+ "* http://seattlerb.rubyforge.org/hoe/Hoe.pdf",
115
+ "* http://github.com/jbarnette/hoe-plugin-examples"].join "\n"
116
+
117
+ exp = ["https://github.com/seattlerb/hoe",
118
+ "http://seattlerb.rubyforge.org/hoe/",
119
+ "http://seattlerb.rubyforge.org/hoe/Hoe.pdf",
120
+ "http://github.com/jbarnette/hoe-plugin-examples"]
121
+
122
+ assert_equal exp, hoe.parse_urls(ary)
123
+ end
124
+
125
+ def test_parse_urls_hash
126
+ hash = [
127
+ "home :: https://github.com/seattlerb/hoe",
128
+ "rdoc :: http://seattlerb.rubyforge.org/hoe/",
129
+ "doco :: http://seattlerb.rubyforge.org/hoe/Hoe.pdf",
130
+ "other :: http://github.com/jbarnette/hoe-plugin-examples",
131
+ ].join "\n"
132
+
133
+ exp = {
134
+ "home" => "https://github.com/seattlerb/hoe",
135
+ "rdoc" => "http://seattlerb.rubyforge.org/hoe/",
136
+ "doco" => "http://seattlerb.rubyforge.org/hoe/Hoe.pdf",
137
+ "other" => "http://github.com/jbarnette/hoe-plugin-examples",
138
+ }
139
+
140
+ assert_equal exp, hoe.parse_urls(hash)
141
+ end
142
+
116
143
  def test_possibly_better
117
144
  t = Gem::Specification::TODAY
118
145
  hoe = Hoe.spec("blah") do
@@ -124,6 +151,16 @@ class TestHoe < MiniTest::Unit::TestCase
124
151
 
125
152
  spec = hoe.spec
126
153
 
154
+ urls = {
155
+ "home" => "https://github.com/seattlerb/hoe",
156
+ "rdoc" => "http://seattlerb.rubyforge.org/hoe/",
157
+ "doco" => "http://seattlerb.rubyforge.org/hoe/Hoe.pdf",
158
+ "other" => "http://github.com/jbarnette/hoe-plugin-examples",
159
+ }
160
+
161
+ assert_equal "https://github.com/seattlerb/hoe", hoe.url
162
+ assert_equal urls, hoe.urls
163
+
127
164
  text_files = files.grep(/txt$/).reject { |f| f =~ /template/ }
128
165
 
129
166
  assert_equal 'blah', spec.name
@@ -137,7 +174,8 @@ class TestHoe < MiniTest::Unit::TestCase
137
174
  assert_equal ['sow'], spec.executables
138
175
  assert_equal text_files, spec.extra_rdoc_files
139
176
  assert_equal files, spec.files
140
- assert_equal "http://rubyforge.org/projects/seattlerb/", spec.homepage
177
+ assert_equal "https://github.com/seattlerb/hoe", spec.homepage
178
+ # TODO: assert_equal "https://github.com/seattlerb/hoe", spec.metadata
141
179
  assert_equal ['--main', 'README.txt'], spec.rdoc_options
142
180
  assert_equal ['lib'], spec.require_paths
143
181
  assert_equal 'blah', spec.rubyforge_project
@@ -155,6 +193,8 @@ class TestHoe < MiniTest::Unit::TestCase
155
193
  assert_equal expected, deps.map { |dep|
156
194
  [dep.name, dep.type, dep.requirement.to_s]
157
195
  }
196
+
197
+ # flunk "not yet"
158
198
  end
159
199
 
160
200
  def test_plugins
metadata CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
- - 9
9
- - 6
10
- version: 2.9.6
8
+ - 10
9
+ - 0
10
+ version: 2.10.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ryan Davis
@@ -36,7 +36,7 @@ cert_chain:
36
36
  FBHgymkyj/AOSqKRIpXPhjC6
37
37
  -----END CERTIFICATE-----
38
38
 
39
- date: 2011-06-23 00:00:00 Z
39
+ date: 2011-06-30 00:00:00 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
@@ -61,12 +61,12 @@ dependencies:
61
61
  requirements:
62
62
  - - ">="
63
63
  - !ruby/object:Gem::Version
64
- hash: 3
64
+ hash: 1
65
65
  segments:
66
66
  - 2
67
67
  - 3
68
- - 0
69
- version: 2.3.0
68
+ - 1
69
+ version: 2.3.1
70
70
  type: :development
71
71
  version_requirements: *id002
72
72
  description: |-
@@ -129,7 +129,7 @@ files:
129
129
  - test/test_hoe_gemcutter.rb
130
130
  - test/test_hoe_test.rb
131
131
  - .gemtest
132
- homepage: http://rubyforge.org/projects/seattlerb/
132
+ homepage: https://github.com/seattlerb/hoe
133
133
  licenses: []
134
134
 
135
135
  post_install_message:
metadata.gz.sig CHANGED
Binary file