hoe 1.3.0 → 1.4.0

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