echoe 1.1 → 1.2

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