hoe 1.3.0 → 1.4.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 (4) hide show
  1. data/History.txt +123 -63
  2. data/Rakefile +1 -1
  3. data/lib/hoe.rb +56 -2
  4. metadata +55 -48
@@ -1,9 +1,20 @@
1
+ === 1.4.0 / 2007-12-20
2
+
3
+ * 1 Major Enhancement:
4
+
5
+ * rake package now supports INLINE=1 and FORCE_PLATFORM=whatever.
6
+ * Supports ruby_inline extensions.
7
+ * Contributed by Luis Lavena. Thanks Luis!
8
+
1
9
  === 1.3.0 / 2007-08-13
2
10
 
3
- * 1 major enhancement:
11
+ * 1 Major Enhancement:
12
+
4
13
  * Hoe now builds signed gems automatically. Run the generate_key task to
5
14
  automatically create a signing key.
6
- * 4 minor enhancements:
15
+
16
+ * 4 Minor Enhancements:
17
+
7
18
  * Extended rdoc pattern to include ext dirs.
8
19
  * Fixed dependency adding for versionless dependencies.
9
20
  * Added NODOT env var to disable RDoc diagram generation.
@@ -11,15 +22,19 @@
11
22
 
12
23
  === 1.2.2 / 2007-07-23
13
24
 
14
- * 2 minor enhancement:
25
+ * 2 Minor Enhancements:
26
+
15
27
  * Added exclude parameter for check_manifest filtering to .hoerc.
16
28
  * Documented .hoerc stuffs.
17
- * 1 bug fix:
29
+
30
+ * 1 Bug Fix:
31
+
18
32
  * Various (untested) fixes for windows compatibility.
19
33
 
20
34
  === 1.2.1 / 2007-05-21
21
35
 
22
- * 8 minor enhancements:
36
+ * 8 Minor Enhancements:
37
+
23
38
  * Allow for spaces in filenames in manifest. Thanks to Aaron Patterson.
24
39
  * Allow rsync flags to be set.
25
40
  * Allow rdoc destination directory to be set.
@@ -28,107 +43,152 @@
28
43
  * Use gdiff if available, diff otherwise. Allows to work on borked Solaris.
29
44
  * Move RDoc to attr* from big 'ol chunk at the top of the class.
30
45
  * Basic conversion of history/urls from rdoc to markdown.
31
- * 1 bug fixes:
46
+
47
+ * 1 Bug Fix:
48
+
32
49
  * Fixed executables regexp to /^bin/.
33
50
 
34
51
  === 1.2.0 / 2007-02-13
35
52
 
36
- * Added more support for ext dirs.
37
- * Added a simple config file (yaml). Use 'rake config_hoe' to edit.
38
- * Added post_blog task (thanks Aaron!), configured via config_hoe.
39
- * Announce task now posts to your blogs and/or publishes API depending on config.
53
+ * 4 Minor Enhancements:
54
+
55
+ * Added more support for ext dirs.
56
+ * Added a simple config file (yaml). Use 'rake config_hoe' to edit.
57
+ * Added post_blog task (thanks Aaron!), configured via config_hoe.
58
+ * Announce task now posts to your blogs and/or publishes API
59
+ depending on config.
40
60
 
41
61
  === 1.1.7 / 2007-01-10
42
62
 
43
- * extra_deps is now self-healing, and ensures no (direct) cycles.
44
- * cleans check_manifest for CVS projects.
45
- * rubyforge changes for config.
46
- * Now uses rsync for publish_docs. YAY for fast!
47
- * Bug #7193 fix spelling of 'synopsys'. Submitted by Jacob Atzen.
63
+ * 5 Minor Enhancements:
64
+
65
+ * extra_deps is now self-healing, and ensures no (direct) cycles.
66
+ * cleans check_manifest for CVS projects.
67
+ * rubyforge changes for config.
68
+ * Now uses rsync for publish_docs. YAY for fast!
69
+ * Bug #7193 fix spelling of 'synopsys'. Submitted by Jacob Atzen.
48
70
 
49
71
  === 1.1.6 / 2006-11-29
50
72
 
51
- * Fix release to work correctly with need_zip and need_tar.
73
+ * 1 Bug Fix:
74
+
75
+ * Fix release to work correctly with need_zip and need_tar.
52
76
 
53
77
  === 1.1.5 / 2006-11-29
54
78
 
55
- * Reduced check_manifest dependencies to just diff for windows.
56
- * Don't use default author in summary, description or changes.
79
+ * 2 Minor Enhancements:
80
+
81
+ * Reduced check_manifest dependencies to just diff for windows.
82
+ * Don't use default author in summary, description or changes.
57
83
 
58
84
  === 1.1.4 / 2006-11-12
59
85
 
60
- * Added need_tar and need_zip to customize package requirements. Stupid windoze.
61
- * Extended spec_extras to take procs as values. Passes in named parameter.
62
- * Removed test from require_paths. I thought I already parameterized this. :/
86
+ * 3 Minor Enhancements:
87
+
88
+ * Added need_tar and need_zip to customize package requirements. Stupid windoze.
89
+ * Extended spec_extras to take procs as values. Passes in named parameter.
90
+ * Removed test from require_paths. I thought I already parameterized this. :/
63
91
 
64
92
  === 1.1.3 / 2006-11-09
65
93
 
66
- * Added test_deps, now you can automatically discover test dependency ommisions.
67
- * Added ext support! Build C extensions with hoe!
68
- * Gemspec uses test_all.rb or result of test_globs. Tweak those tests.
69
- * Now uses https to login to rubyforge. Rubyforge crackers beware!
70
- * Fixed doco and automated updating of it.
71
- * Added rdoc_pattern. Go doco go!
94
+ * 6 Minor Enhancements:
95
+
96
+ * Added test_deps, now you can automatically discover test dependency ommisions.
97
+ * Added ext support! Build C extensions with hoe!
98
+ * Gemspec uses test_all.rb or result of test_globs. Tweak those tests.
99
+ * Now uses https to login to rubyforge. Rubyforge crackers beware!
100
+ * Fixed doco and automated updating of it.
101
+ * Added rdoc_pattern. Go doco go!
72
102
 
73
103
  === 1.1.2 / 2006-10-22
74
104
 
75
- * Added -d and -t flags to sow to make dev or trunk subdirs for p4 and svn projects.
76
- * Added install_gem to further test gem builds.
77
- * Added test_globs to customize your test file list.
78
- * Removed demo.rb from clean_globs. I'm torn on this one.
79
- * Fixed bug in install rule.
105
+ * 4 Minor Enhancements:
106
+
107
+ * Added -d and -t flags to sow to make dev or trunk subdirs for p4
108
+ and svn projects.
109
+ * Added install_gem to further test gem builds.
110
+ * Added test_globs to customize your test file list.
111
+ * Removed demo.rb from clean_globs. I'm torn on this one.
112
+
113
+ * 1 Bug Fix:
114
+
115
+ * Fixed bug in install rule.
80
116
 
81
117
  === 1.1.1 / 2006-10-11
82
118
 
83
- * Fixed minor problem with subject of email.
84
- * Fixed problem in test.
119
+ * 2 Bug Fixes:
120
+
121
+ * Fixed minor problem with subject of email.
122
+ * Fixed problem in test.
85
123
 
86
124
  === 1.1.0 / 2006-10-04
87
125
 
88
- * Added sow, a command-line tool for quickly creating new projects.
89
- * Added check_manifest task
126
+ * 1 Major Enhancement:
127
+
128
+ * Added sow, a command-line tool for quickly creating new projects.
129
+
130
+ * 1 Minor Enhancement:
131
+
132
+ * Added check_manifest task
90
133
 
91
134
  === 1.0.5 / 2006-10-03
92
135
 
93
- * Doco cleanup.
94
- * Removed Manifest.txt from rdoc and added title.
95
- * Added changeset support.
96
- * Added spec_extras for easy gemspec attribute setting.
97
- * Added release_notes, changeset setting for releases.
98
- * Added paragraphs_of utility method.
99
- * Added email and rubyforge news announcement tasks.
100
- * Url attribute may now be an array of urls.
136
+ * 8 Minor Enhancements:
137
+
138
+ * Doco cleanup.
139
+ * Removed Manifest.txt from rdoc and added title.
140
+ * Added changeset support.
141
+ * Added spec_extras for easy gemspec attribute setting.
142
+ * Added release_notes, changeset setting for releases.
143
+ * Added paragraphs_of utility method.
144
+ * Added email and rubyforge news announcement tasks.
145
+ * Url attribute may now be an array of urls.
101
146
 
102
147
  === 1.0.4 / 2006-09-23
103
148
 
104
- * Damnit... I messed up. There is no rubygems gem to be dependent upon. Duh.
149
+ * 1 Bug Fix:
150
+
151
+ * Damnit... I messed up. There is no rubygems gem to be dependent upon. Duh.
105
152
 
106
153
  === 1.0.3 / 2006-09-23
107
154
 
108
- * Added debug_gem rule.
109
- * Added lots of doco.
110
- * Added proper deps to hoe for other's gems, and rake/rubyforge/rubygems for hoe.
111
- * Added ridocs to generate ri locally for testing.
112
- * Added support for multiple authors.
113
- * Fixed include paths.
114
- * Rdoc now includes any top level .txt files.
115
- * Renamed deploy to release.
116
- * Renamed upload to publish_docs.
117
- * publish_docs is now smart about subprojects and missing subdirectories.
155
+ * 9 Minor Enhancements:
156
+
157
+ * Added debug_gem rule.
158
+ * Added lots of doco.
159
+ * Added proper deps to hoe for other's gems, and
160
+ rake/rubyforge/rubygems for hoe.
161
+ * Added ridocs to generate ri locally for testing.
162
+ * Added support for multiple authors.
163
+ * Rdoc now includes any top level .txt files.
164
+ * Renamed deploy to release.
165
+ * Renamed upload to publish_docs.
166
+ * publish_docs is now smart about subprojects and missing subdirectories.
167
+
168
+ * 1 Bug Fix:
169
+
170
+ * Fixed include paths.
118
171
 
119
172
  === 1.0.2 / 2006-09-20
120
173
 
121
- * Wee little tests.
122
- * Fixed up gemspec's require_paths.
174
+ * 2 Minor Enhancements:
175
+
176
+ * Wee little tests.
177
+ * Fixed up gemspec's require_paths.
123
178
 
124
179
  === 1.0.1 / 2006-09-20
125
180
 
126
- * Finally got deployment straightened out. Maybe. Some might be on rubyforge.org.
127
- * Added default description and summary.
128
- * Added dependency mechanism.
129
- * Improved gemspec debugging.
130
- * Swapped gem with tgz in deploy... we'd rather screw up on tgz
181
+ * 5 Minor Enhancements:
182
+
183
+ * Finally got deployment straightened out. Maybe. Some might be on
184
+ rubyforge.org.
185
+ * Added default description and summary.
186
+ * Added dependency mechanism.
187
+ * Improved gemspec debugging.
188
+ * Swapped gem with tgz in deploy... we'd rather screw up on tgz
131
189
 
132
190
  === 1.0.0 / 2006-09-19
133
191
 
134
- * Birthday!
192
+ * 1 Major Enhancement:
193
+
194
+ * Birthday!
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ Hoe.new("hoe", Hoe::VERSION) do |p|
7
7
  p.summary = "Hoe is a way to write Rakefiles much easier and cleaner."
8
8
  p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
9
9
  p.url = p.paragraphs_of('README.txt', 1).first.gsub(/^\* /, '').split(/\n/)
10
- p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
10
+ p.changes = p.paragraphs_of('History.txt', 0..2).join("\n\n")
11
11
  end
12
12
 
13
13
  # vim: syntax=Ruby
data/lib/hoe.rb CHANGED
@@ -96,8 +96,28 @@ require 'yaml'
96
96
  # data.tar.gz.sig
97
97
  # metadata.gz
98
98
  # metadata.gz.sig
99
+ #
100
+ # === Platform awareness
101
+ #
102
+ # Hoe allows bundling of pre-compiled extensions in the +package+ task.
103
+ #
104
+ # To create a package for your current platform:
105
+ #
106
+ # rake package INLINE=1
107
+ #
108
+ # This will force Hoe analize your +Inline+ already compiled
109
+ # extensions and include them in your gem.
110
+ #
111
+ # If somehow you need to force a specific platform:
112
+ #
113
+ # rake package INLINE=1 FORCE_PLATFORM=mswin32
114
+ #
115
+ # This will set the +Gem::Specification+ platform to the one indicated in
116
+ # +FORCE_PLATFORM+ (instead of default Gem::Platform::CURRENT)
117
+ #
118
+
99
119
  class Hoe
100
- VERSION = '1.3.0'
120
+ VERSION = '1.4.0'
101
121
 
102
122
  ruby_prefix = Config::CONFIG['prefix']
103
123
  sitelibdir = Config::CONFIG['sitelibdir']
@@ -133,7 +153,9 @@ class Hoe
133
153
  File.join(PREFIX, sitelibdir[ruby_prefix.size..-1])
134
154
  end
135
155
 
136
- WINDOZE = /win32/ =~ RUBY_PLATFORM unless defined? WINDOZE
156
+ DLEXT = Config::CONFIG['DLEXT']
157
+
158
+ WINDOZE = /djgpp|(cyg|ms|bcc)win|mingw/ =~ RUBY_PLATFORM unless defined? WINDOZE
137
159
 
138
160
  DIFF = if WINDOZE
139
161
  'diff.exe'
@@ -389,6 +411,38 @@ class Hoe
389
411
  s.cert_chain = cert_chain
390
412
  end
391
413
 
414
+ ############################################################
415
+ # Allow automatic inclusion of compiled extensions
416
+ if ENV['INLINE'] then
417
+ s.platform = ENV['FORCE_PLATFORM'] || Gem::Platform::CURRENT
418
+ # name of the extension is CamelCase
419
+ if name =~ /[A-Z]/
420
+ # ClassName => class_name
421
+ alternate_name = name.reverse.scan(%r/[A-Z]+|[^A-Z]*[A-Z]+?/).reverse.map { |word| word.reverse.downcase }.join('_')
422
+ elsif name =~ /_/
423
+ # class_name = ClassName
424
+ alternate_name = name.strip.split(/\s*_+\s*/).map! { |w| w.downcase.sub(/^./) { |c| c.upcase } }.join
425
+ end
426
+
427
+ # Try collecting Inline extensions for +name+
428
+ if defined?(Inline) then
429
+ directory 'lib/inline'
430
+
431
+ extensions = Dir.chdir(Inline::directory) {
432
+ Dir["Inline_{#{name},#{alternate_name}}_*.#{DLEXT}"]
433
+ }
434
+ extensions.each do |ext|
435
+ # add the inlined extension to the spec files
436
+ s.files += ["lib/inline/#{ext}"]
437
+
438
+ # include the file in the tasks
439
+ file "lib/inline/#{ext}" => ["lib/inline"] do
440
+ cp File.join(Inline::directory, ext), "lib/inline"
441
+ end
442
+ end
443
+ end
444
+ end
445
+
392
446
  # Do any extra stuff the user wants
393
447
  spec_extras.each do |msg, val|
394
448
  case val
metadata CHANGED
@@ -1,61 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: hoe
5
3
  version: !ruby/object:Gem::Version
6
- version: 1.3.0
7
- date: 2007-08-13 00:00:00 -07:00
8
- summary: Hoe is a way to write Rakefiles much easier and cleaner.
9
- require_paths:
10
- - lib
11
- email: ryand-ruby@zenspider.com
12
- homepage: http://rubyforge.org/projects/seattlerb/
13
- rubyforge_project: seattlerb
14
- description: "== DESCRIPTION: Hoe is a simple rake/rubygems helper for project Rakefiles. It generates all the usual tasks for projects including rdoc generation, testing, packaging, and deployment. Tasks Provided: * announce - Generate email announcement file and post to rubyforge. * audit - Run ZenTest against the package * check_manifest - Verify the manifest * clean - Clean up all the extras * config_hoe - Create a fresh ~/.hoerc file * debug_gem - Show information about the gem. * default - Run the default tasks * docs - Build the docs HTML Files * email - Generate email announcement file. * gem - Build the gem file only. * install - Install the package. Uses PREFIX and RUBYLIB * install_gem - Install the package as a gem * multi - Run the test suite using multiruby * package - Build all the packages * post_blog - Post announcement to blog. * post_news - Post announcement to rubyforge. * publish_docs - Publish RDoc to RubyForge * release - Package and upload the release to rubyforge. * ridocs - Generate ri locally for testing * test - Run the test suite. Use FILTER to add to the command line. * test_deps - Show which test files fail when run alone. * uninstall - Uninstall the package."
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: 1.4.0
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Ryan Davis
31
- files:
32
- - History.txt
33
- - Manifest.txt
34
- - README.txt
35
- - Rakefile
36
- - bin/sow
37
- - lib/hoe.rb
38
- - test/test_hoe.rb
39
- test_files:
40
- - test/test_hoe.rb
41
- rdoc_options:
42
- - --main
43
- - README.txt
44
- extra_rdoc_files:
45
- - History.txt
46
- - Manifest.txt
47
- - README.txt
48
- executables:
49
- - sow
50
- extensions: []
51
-
52
- requirements: []
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
53
11
 
12
+ date: 2007-12-22 00:00:00 -08:00
13
+ default_executable:
54
14
  dependencies:
55
15
  - !ruby/object:Gem::Dependency
56
16
  name: rubyforge
57
17
  version_requirement:
58
- version_requirements: !ruby/object:Gem::Version::Requirement
18
+ version_requirements: !ruby/object:Gem::Requirement
59
19
  requirements:
60
20
  - - ">="
61
21
  - !ruby/object:Gem::Version
@@ -64,9 +24,56 @@ dependencies:
64
24
  - !ruby/object:Gem::Dependency
65
25
  name: rake
66
26
  version_requirement:
67
- version_requirements: !ruby/object:Gem::Version::Requirement
27
+ version_requirements: !ruby/object:Gem::Requirement
68
28
  requirements:
69
29
  - - ">="
70
30
  - !ruby/object:Gem::Version
71
31
  version: 0.7.3
72
32
  version:
33
+ description: "== DESCRIPTION: Hoe is a simple rake/rubygems helper for project Rakefiles. It generates all the usual tasks for projects including rdoc generation, testing, packaging, and deployment. Tasks Provided: * announce - Generate email announcement file and post to rubyforge. * audit - Run ZenTest against the package * check_manifest - Verify the manifest * clean - Clean up all the extras * config_hoe - Create a fresh ~/.hoerc file * debug_gem - Show information about the gem. * default - Run the default tasks * docs - Build the docs HTML Files * email - Generate email announcement file. * gem - Build the gem file only. * install - Install the package. Uses PREFIX and RUBYLIB * install_gem - Install the package as a gem * multi - Run the test suite using multiruby * package - Build all the packages * post_blog - Post announcement to blog. * post_news - Post announcement to rubyforge. * publish_docs - Publish RDoc to RubyForge * release - Package and upload the release to rubyforge. * ridocs - Generate ri locally for testing * test - Run the test suite. Use FILTER to add to the command line. * test_deps - Show which test files fail when run alone. * uninstall - Uninstall the package."
34
+ email: ryand-ruby@zenspider.com
35
+ executables:
36
+ - sow
37
+ extensions: []
38
+
39
+ extra_rdoc_files:
40
+ - History.txt
41
+ - Manifest.txt
42
+ - README.txt
43
+ files:
44
+ - History.txt
45
+ - Manifest.txt
46
+ - README.txt
47
+ - Rakefile
48
+ - bin/sow
49
+ - lib/hoe.rb
50
+ - test/test_hoe.rb
51
+ has_rdoc: true
52
+ homepage: http://rubyforge.org/projects/seattlerb/
53
+ post_install_message:
54
+ rdoc_options:
55
+ - --main
56
+ - README.txt
57
+ require_paths:
58
+ - lib
59
+ required_ruby_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: "0"
70
+ version:
71
+ requirements: []
72
+
73
+ rubyforge_project: seattlerb
74
+ rubygems_version: 1.0.1
75
+ signing_key:
76
+ specification_version: 2
77
+ summary: Hoe is a way to write Rakefiles much easier and cleaner.
78
+ test_files:
79
+ - test/test_hoe.rb