echoe 1.1 → 1.2

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.
@@ -0,0 +1,6 @@
1
+
2
+
3
+ 1.2. build_manifest Rake task
4
+ 1.1. Sane error messages on releasing new or duplicate gems; allow Manifest to not end in .txt
5
+ 1.0.0. Fork from Hoe
6
+
File without changes
@@ -0,0 +1,8 @@
1
+ ./CHANGELOG
2
+ ./LICENSE
3
+ ./README
4
+ ./Rakefile
5
+ ./bin/echoe
6
+ ./lib/echoe.rb
7
+ ./test/test_echoe.rb
8
+ ./Manifest
@@ -4,7 +4,7 @@ echoe
4
4
 
5
5
  == DESCRIPTION:
6
6
 
7
- echoe is a simple rake/rubygems helper for project Rakefiles. It
7
+ Echoe is a simple packaging tool for working with rubygems. It
8
8
  generates all the usual tasks for projects including rdoc generation,
9
9
  testing, packaging, and deployment.
10
10
 
@@ -30,11 +30,14 @@ Tasks Provided:
30
30
  * test_deps - Show which test files fail when run alone.
31
31
  * uninstall - Uninstall the package.
32
32
 
33
- See class rdoc for help. Hint: ri echoe
33
+ First, see the Rakefile used to distribute Echoe itself. Also see the class rdoc for
34
+ help.
34
35
 
35
36
  == DIFFERENCES FROM HOE:
36
37
 
37
38
  * Removes unnecessary meta-dependency on self in created gems
39
+ * Better error reporting
40
+ * Can auto-generate the Manifest
38
41
 
39
42
  == FEATURES/PROBLEMS:
40
43
 
data/Rakefile CHANGED
@@ -1,14 +1,15 @@
1
- # -*- ruby -*-
2
1
 
3
- require './lib/echoe.rb'
2
+ require 'lib/echoe'
4
3
 
5
- Echoe.new("echoe", Echoe::VERSION) do |p|
4
+ Echoe.new("echoe", `cat CHANGELOG`[/^([\d\.]+)\. /, 1]) do |p|
6
5
  p.name = "echoe"
7
6
  p.rubyforge_name = "fauna"
8
- p.summary = "Echoe makes gem creation easy."
9
- p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
10
- p.url = p.paragraphs_of('README.txt', 0).first.split(/\n/)[1..-1]
11
- p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
7
+ p.summary = "Echoe is a simple packaging tool for working with rubygems."
8
+ p.description = "Echoe is a simple packaging tool for working with rubygems. It
9
+ generates all the usual tasks for projects including rdoc generation,
10
+ testing, packaging, and deployment."
11
+ p.url = "http://blog.evanweaver.com/articles/2007/01/10/if-you-dont-want-to-hoe-echoe"
12
+ p.changes = `cat CHANGELOG`[/^([\d\.]+\. .*)/, 1]
13
+ p.extra_deps = [['rake'], ['rubyforge', '>= 0.4.0']]
12
14
  end
13
15
 
14
- # vim: syntax=Ruby
@@ -35,6 +35,7 @@ require 'rbconfig'
35
35
  # * announce - Generate email announcement file and post to rubyforge.
36
36
  # * audit - Run ZenTest against the package
37
37
  # * check_manifest - Verify the manifest
38
+ # * build_manifest - Build a manifest from your current tree
38
39
  # * clean - Clean up all the extras
39
40
  # * debug_gem - Show information about the gem.
40
41
  # * default - Run the default tasks
@@ -89,7 +90,6 @@ require 'rbconfig'
89
90
  # * RUBY_FLAGS - Used to specify flags to ruby [has smart default].
90
91
 
91
92
  class Echoe
92
- VERSION = '1.1'
93
93
 
94
94
  rubyprefix = Config::CONFIG['prefix']
95
95
  sitelibdir = Config::CONFIG['sitelibdir']
@@ -105,7 +105,6 @@ class Echoe
105
105
  "-w -I#{%w(lib ext bin test).join(File::PATH_SEPARATOR)}" +
106
106
  (RUBY_DEBUG ? " #{RUBY_DEBUG}" : '')
107
107
  FILTER = ENV['FILTER'] # for tests (eg FILTER="-n test_blah")
108
-
109
108
  attr_accessor :author, :bin_files, :changes, :clean_globs, :description, :email, :extra_deps, :lib_files, :name, :need_tar, :need_tar_gz, :need_zip, :rdoc_pattern, :rubyforge_name, :spec, :spec_extras, :summary, :test_files, :test_globs, :url, :version, :tar_extension #, :tar_separator, :zip_separator
110
109
 
111
110
  def initialize(name, version)
@@ -131,13 +130,6 @@ class Echoe
131
130
  # self.tar_separator = "." # separator choice is buried in rake/packagetask, bah
132
131
  # self.zip_separator = "."
133
132
 
134
- if name == 'echoe' then
135
- extra_deps << ['rake']
136
- extra_deps << ['rubyforge', '>= 0.4.0']
137
- else
138
- # extra_deps << ['echoe', ">= #{VERSION}"]
139
- end
140
-
141
133
  yield self if block_given?
142
134
 
143
135
  define_tasks
@@ -193,7 +185,11 @@ class Echoe
193
185
 
194
186
  manifest = "Manifest"
195
187
  manifest += ".txt" if File.exist? "Manifest.txt"
196
- s.files = File.read(manifest).split
188
+ begin
189
+ s.files = File.read(manifest).split
190
+ rescue Errno::ENOENT
191
+ $stderr.puts "Missing Manifest. You can build one with\n$ rake build_manifest"
192
+ end
197
193
  s.executables = s.files.grep(/bin/) { |f| File.basename(f) }
198
194
 
199
195
  s.bindir = "bin"
@@ -417,6 +413,20 @@ class Echoe
417
413
  rm f
418
414
  end
419
415
 
416
+ desc "Build a Manifest from your current tree"
417
+ task :build_manifest do
418
+ files = []
419
+ find_files = proc { |dir|
420
+ Dir["#{dir}/**"].each do |file|
421
+ File.directory?(file) ? find_files[file] : files << file
422
+ end
423
+ }
424
+ manifest = File.exist?("./Manifest.txt") ? "./Manifest.txt" : "./Manifest"
425
+ find_files['.']
426
+ files = (files << manifest).uniq
427
+ File.open(manifest, 'w').puts files
428
+ puts files
429
+ end
420
430
  end # end define
421
431
 
422
432
  def announcement
metadata CHANGED
@@ -3,15 +3,15 @@ rubygems_version: 0.9.2
3
3
  specification_version: 1
4
4
  name: echoe
5
5
  version: !ruby/object:Gem::Version
6
- version: "1.1"
7
- date: 2007-02-06 00:00:00 -05:00
8
- summary: Echoe makes gem creation easy.
6
+ version: "1.2"
7
+ date: 2007-04-30 00:00:00 -04:00
8
+ summary: Echoe is a simple packaging tool for working with rubygems.
9
9
  require_paths:
10
10
  - lib
11
11
  email: ""
12
- homepage: " http://rubyforge.org/projects/fauna/"
12
+ homepage: http://blog.evanweaver.com/articles/2007/01/10/if-you-dont-want-to-hoe-echoe
13
13
  rubyforge_project: fauna
14
- description: "echoe 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 * debug_gem - Show information about the gem. * default - Run the default tasks * docs - Build the docs HTML Files * email - Generate email announcement file. * 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_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. See class rdoc for help. Hint: ri echoe"
14
+ description: Echoe is a simple packaging tool for working with rubygems. It generates all the usual tasks for projects including rdoc generation, testing, packaging, and deployment.
15
15
  autorequire:
16
16
  default_executable:
17
17
  bindir: bin
@@ -29,14 +29,14 @@ post_install_message:
29
29
  authors:
30
30
  - ""
31
31
  files:
32
- - History.txt
33
- - Manifest.txt
34
- - README.txt
35
- - LICENSE.txt
36
- - Rakefile
37
- - bin/echoe
38
- - lib/echoe.rb
39
- - test/test_echoe.rb
32
+ - ./CHANGELOG
33
+ - ./LICENSE
34
+ - ./README
35
+ - ./Rakefile
36
+ - ./bin/echoe
37
+ - ./lib/echoe.rb
38
+ - ./test/test_echoe.rb
39
+ - ./Manifest
40
40
  test_files:
41
41
  - test/test_echoe.rb
42
42
  rdoc_options: []
@@ -1,90 +0,0 @@
1
- = 1.0.0 2007-01-10
2
-
3
- * Echoe fork to remove unecessary meta-dependency on self in output gems
4
-
5
- = 1.1.6 2006-11-29
6
-
7
- * Fix release to work correctly with need_zip and need_tar.
8
-
9
- = 1.1.5 2006-11-29
10
-
11
- * Reduced check_manifest dependencies to just diff for windows.
12
- * Don't use default author in summary, description or changes.
13
-
14
- = 1.1.4 2006-11-12
15
-
16
- * Added need_tar and need_zip to customize package requirements. Stupid windoze.
17
- * Extended spec_extras to take procs as values. Passes in named parameter.
18
- * Removed test from require_paths. I thought I already parameterized this. :/
19
-
20
- = 1.1.3 2006-11-09
21
-
22
- * Added test_deps, now you can automatically discover test dependency ommisions.
23
- * Added ext support! Build C extensions with hoe!
24
- * Gemspec uses test_all.rb or result of test_globs. Tweak those tests.
25
- * Now uses https to login to rubyforge. Rubyforge crackers beware!
26
- * Fixed doco and automated updating of it.
27
- * Added rdoc_pattern. Go doco go!
28
-
29
- = 1.1.2 2006-10-22
30
-
31
- * Added -d and -t flags to sow to make dev or trunk subdirs for p4 and svn projects.
32
- * Added install_gem to further test gem builds.
33
- * Added test_globs to customize your test file list.
34
- * Removed demo.rb from clean_globs. I'm torn on this one.
35
- * Fixed bug in install rule.
36
-
37
- = 1.1.1 2006-10-11
38
-
39
- * Fixed minor problem with subject of email.
40
- * Fixed problem in test.
41
-
42
- = 1.1.0 2006-10-04
43
-
44
- * Added sow, a command-line tool for quickly creating new projects.
45
- * Added check_manifest task
46
-
47
- = 1.0.5 2006-10-03
48
-
49
- * Doco cleanup.
50
- * Removed Manifest.txt from rdoc and added title.
51
- * Added changeset support.
52
- * Added spec_extras for easy gemspec attribute setting.
53
- * Added release_notes, changeset setting for releases.
54
- * Added paragraphs_of utility method.
55
- * Added email and rubyforge news announcement tasks.
56
- * Url attribute may now be an array of urls.
57
-
58
- = 1.0.4 2006-09-23
59
-
60
- * Damnit... I messed up. There is no rubygems gem to be dependent upon. Duh.
61
-
62
- = 1.0.3 2006-09-23
63
-
64
- * Added debug_gem rule.
65
- * Added lots of doco.
66
- * Added proper deps to hoe for other's gems, and rake/rubyforge/rubygems for hoe.
67
- * Added ridocs to generate ri locally for testing.
68
- * Added support for multiple authors.
69
- * Fixed include paths.
70
- * Rdoc now includes any top level .txt files.
71
- * Renamed deploy to release.
72
- * Renamed upload to publish_docs.
73
- * publish_docs is now smart about subprojects and missing subdirectories.
74
-
75
- = 1.0.2 2006-09-20
76
-
77
- * Wee little tests.
78
- * Fixed up gemspec's require_paths.
79
-
80
- = 1.0.1 2006-09-20
81
-
82
- * Finally got deployment straightened out. Maybe. Some might be on rubyforge.org.
83
- * Added default description and summary.
84
- * Added dependency mechanism.
85
- * Improved gemspec debugging.
86
- * Swapped gem with tgz in deploy... we'd rather screw up on tgz
87
-
88
- = 1.0.0 2006-09-19
89
-
90
- * Birthday!
@@ -1,8 +0,0 @@
1
- History.txt
2
- Manifest.txt
3
- README.txt
4
- LICENSE.txt
5
- Rakefile
6
- bin/echoe
7
- lib/echoe.rb
8
- test/test_echoe.rb