echoe 2.7.13 → 3
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 +0 -0
- data/CHANGELOG +2 -0
- data/Manifest +1 -0
- data/README +6 -3
- data/Rakefile +2 -6
- data/echoe.gemspec +105 -0
- data/lib/echoe.rb +35 -24
- data/lib/echoe/client.rb +25 -0
- metadata +13 -7
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGELOG
CHANGED
data/Manifest
CHANGED
data/README
CHANGED
@@ -24,7 +24,12 @@ If you use this software, please {make a donation}[http://blog.evanweaver.com/do
|
|
24
24
|
|
25
25
|
== Installation
|
26
26
|
|
27
|
+
Install the gem:
|
27
28
|
sudo gem install echoe
|
29
|
+
|
30
|
+
If you haven't already, make sure Rubyforge is configured locally and your password is correctly set:
|
31
|
+
rubyforge setup
|
32
|
+
rubyforge config
|
28
33
|
|
29
34
|
== Project configuration
|
30
35
|
|
@@ -57,9 +62,7 @@ More advanced configuration is described in the Echoe class.
|
|
57
62
|
|
58
63
|
== Deploying your gem
|
59
64
|
|
60
|
-
|
61
|
-
|
62
|
-
Now, to deploy the gem and documentation:
|
65
|
+
To deploy the gem and documentation:
|
63
66
|
|
64
67
|
rake manifest
|
65
68
|
rake release
|
data/Rakefile
CHANGED
@@ -7,12 +7,8 @@ Echoe.new('echoe') do |p|
|
|
7
7
|
p.summary = 'A Rubygems packaging tool that provides Rake tasks for documentation, extension compiling, testing, and deployment.'
|
8
8
|
p.url = 'http://blog.evanweaver.com/files/doc/fauna/echoe/'
|
9
9
|
p.docs_host = 'blog.evanweaver.com:~/www/bax/public/files/doc/'
|
10
|
-
p.
|
10
|
+
p.runtime_dependencies = ['rake', 'rubyforge >=1.0.0', 'highline']
|
11
|
+
p.development_dependencies = []
|
11
12
|
p.require_signed = true
|
12
|
-
p.rubygems_version = '>= 0.9.4.5'
|
13
|
-
|
14
|
-
# Echoe is self-dependent
|
15
|
-
p.include_gemspec = false
|
16
|
-
p.include_rakefile = true
|
17
13
|
end
|
18
14
|
|
data/echoe.gemspec
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
|
2
|
+
# Gem::Specification for Echoe-3
|
3
|
+
# Originally generated by Echoe
|
4
|
+
|
5
|
+
--- !ruby/object:Gem::Specification
|
6
|
+
name: echoe
|
7
|
+
version: !ruby/object:Gem::Version
|
8
|
+
version: "3"
|
9
|
+
platform: ruby
|
10
|
+
authors:
|
11
|
+
- Evan Weaver
|
12
|
+
autorequire:
|
13
|
+
bindir: bin
|
14
|
+
date: 2008-06-23 00:00:00 -04:00
|
15
|
+
default_executable:
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
18
|
+
name: rake
|
19
|
+
type: :runtime
|
20
|
+
version_requirement:
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
requirements:
|
23
|
+
- - ">="
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: "0"
|
26
|
+
version:
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rubyforge
|
29
|
+
type: :runtime
|
30
|
+
version_requirement:
|
31
|
+
version_requirements: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 1.0.0
|
36
|
+
version:
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: highline
|
39
|
+
type: :runtime
|
40
|
+
version_requirement:
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: "0"
|
46
|
+
version:
|
47
|
+
description: A Rubygems packaging tool that provides Rake tasks for documentation, extension compiling, testing, and deployment.
|
48
|
+
email: ""
|
49
|
+
executables: []
|
50
|
+
|
51
|
+
extensions: []
|
52
|
+
|
53
|
+
extra_rdoc_files:
|
54
|
+
- CHANGELOG
|
55
|
+
- lib/echoe/client.rb
|
56
|
+
- lib/echoe/extensions.rb
|
57
|
+
- lib/echoe/platform.rb
|
58
|
+
- lib/echoe.rb
|
59
|
+
- LICENSE
|
60
|
+
- README
|
61
|
+
- TODO
|
62
|
+
files:
|
63
|
+
- CHANGELOG
|
64
|
+
- lib/echoe/client.rb
|
65
|
+
- lib/echoe/extensions.rb
|
66
|
+
- lib/echoe/platform.rb
|
67
|
+
- lib/echoe.rb
|
68
|
+
- LICENSE
|
69
|
+
- Manifest
|
70
|
+
- MIT-LICENSE
|
71
|
+
- Rakefile
|
72
|
+
- README
|
73
|
+
- TODO
|
74
|
+
- echoe.gemspec
|
75
|
+
has_rdoc: true
|
76
|
+
homepage: http://blog.evanweaver.com/files/doc/fauna/echoe/
|
77
|
+
post_install_message:
|
78
|
+
rdoc_options:
|
79
|
+
- --line-numbers
|
80
|
+
- --inline-source
|
81
|
+
- --title
|
82
|
+
- Echoe
|
83
|
+
- --main
|
84
|
+
- README
|
85
|
+
require_paths:
|
86
|
+
- lib
|
87
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: "0"
|
92
|
+
version:
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: "1.2"
|
98
|
+
version:
|
99
|
+
requirements: []
|
100
|
+
|
101
|
+
rubyforge_project: fauna
|
102
|
+
rubygems_version: 1.2.0
|
103
|
+
specification_version: 2
|
104
|
+
summary: A Rubygems packaging tool that provides Rake tasks for documentation, extension compiling, testing, and deployment.
|
105
|
+
test_files: []
|
data/lib/echoe.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
|
2
2
|
require 'rubygems'
|
3
3
|
|
4
|
-
gem 'rubyforge', '=0.4.5'
|
5
4
|
require 'rubyforge'
|
6
5
|
|
7
6
|
require 'rake'
|
@@ -20,7 +19,6 @@ rescue LoadError
|
|
20
19
|
end
|
21
20
|
|
22
21
|
begin
|
23
|
-
gem 'hoe', '<= 1.5.0'
|
24
22
|
require 'load_multi_rails_rake_tasks'
|
25
23
|
rescue LoadError
|
26
24
|
end
|
@@ -28,6 +26,7 @@ end
|
|
28
26
|
$LOAD_PATH << File.dirname(__FILE__)
|
29
27
|
require 'echoe/platform'
|
30
28
|
require 'echoe/extensions'
|
29
|
+
require 'echoe/client'
|
31
30
|
|
32
31
|
=begin rdoc
|
33
32
|
|
@@ -42,7 +41,7 @@ For example, a simple <tt>Rakefile</tt> might look like this:
|
|
42
41
|
p.summary = "A library that uncapitalizes strings. It's awesome."
|
43
42
|
p.url = "http://www.uncapitalizer.com"
|
44
43
|
p.docs_host = "uncapitalizer.com:~/www/files/doc/"
|
45
|
-
p.
|
44
|
+
p.runtime_dependencies = ["string_tools >=1.4.0"]
|
46
45
|
end
|
47
46
|
|
48
47
|
See below for the full list.
|
@@ -69,9 +68,9 @@ Note that you can also set the key and certificate locations in the Rakefile its
|
|
69
68
|
|
70
69
|
== Metadependencies
|
71
70
|
|
72
|
-
Echoe does not force packages to depend on Echoe itself. Instead, it generates a <tt>gemspec</tt> from your <tt>Rakefile</tt> and includes that
|
71
|
+
Echoe does not force packages to depend on Echoe itself. Instead, it generates a <tt>gemspec</tt> from your <tt>Rakefile</tt> and includes that. Downstream repackagers can use the <tt>gemspec</tt> as-is to build new versions of your gem even without Echoe.
|
73
72
|
|
74
|
-
|
73
|
+
However, Echoe is added to the <tt>development_dependencies</tt> array so that users can automatically install it via <tt>gem install --development</tt> if they prefer. You can override this behavior by setting <tt>p.development_dependencies = []</tt>.
|
75
74
|
|
76
75
|
== Cross-packaging
|
77
76
|
|
@@ -105,7 +104,8 @@ Versioning options:
|
|
105
104
|
|
106
105
|
Common packaging options:
|
107
106
|
|
108
|
-
* <tt>
|
107
|
+
* <tt>runtime_dependencies</tt> - An array of runtime dependencies for this gem. For example, <tt>['mongrel', 'activesupport >= 2.0.2']</tt>.
|
108
|
+
* <tt>development_dependencies</tt> - An array of development dependencies for this gem. For example, <tt>['rake >=0.7.1']</tt>.
|
109
109
|
* <tt>extension_pattern</tt> - A filename array, glob array, or regex for extension files that need to be run at install time. Defaults to <tt>"ext/**/extconf.rb"</tt>.
|
110
110
|
|
111
111
|
Testing options:
|
@@ -121,7 +121,7 @@ Uncommon packaging options:
|
|
121
121
|
* <tt>need_tar_gz</tt> - Whether to generate a <tt>.tar.gz</tt> package. Defaults to <tt>true</tt>.
|
122
122
|
* <tt>need_tgz</tt> - Whether to generate a <tt>.tgz</tt> package. Defaults to <tt>false</tt>.
|
123
123
|
* <tt>need_zip</tt> - Whether to generate a <tt>.zip</tt> package. Defaults to <tt>false</tt>.
|
124
|
-
* <tt>include_rakefile</tt> - Include the Rakefile directly within the package. Defaults to <tt>
|
124
|
+
* <tt>include_rakefile</tt> - Include the Rakefile directly within the package. Defaults to <tt>true</tt>.
|
125
125
|
* <tt>include_gemspec</tt> - Include the generated gemspec file within the package. Defaults to <tt>true</tt>.
|
126
126
|
* <tt>ruby_version</tt> - Version string for which Ruby to require (for example, <tt>'>= 1.8.4'</tt>.
|
127
127
|
* <tt>eval</tt> - Accepts a proc to be evaluated in the context of the Gem::Specification object. This allows you to set more unusual gemspec options.
|
@@ -149,13 +149,13 @@ Documentation options:
|
|
149
149
|
class Echoe
|
150
150
|
|
151
151
|
# user-configurable
|
152
|
-
attr_accessor :author, :changes, :clean_pattern, :description, :email, :
|
152
|
+
attr_accessor :author, :changes, :clean_pattern, :description, :email, :runtime_dependencies, :development_dependencies, :need_tgz, :need_tar_gz, :need_gem, :need_zip, :rdoc_pattern, :project, :summary, :test_pattern, :url, :version, :docs_host, :rdoc_template, :manifest_name, :install_message, :extension_pattern, :private_key, :certificate_chain, :require_signed, :ruby_version, :platform, :ignore_pattern, :executable_pattern, :changelog, :rcov_options
|
153
153
|
|
154
154
|
# best left alone
|
155
155
|
attr_accessor :name, :lib_files, :test_files, :bin_files, :spec, :rdoc_options, :rubyforge_name, :has_rdoc, :include_gemspec, :include_rakefile, :gemspec_name, :eval, :files, :changelog_patterns, :rubygems_version, :use_sudo
|
156
156
|
|
157
157
|
# legacy
|
158
|
-
attr_accessor :extra_deps, :rdoc_files, :extensions
|
158
|
+
attr_accessor :extra_deps, :rdoc_files, :extensions, :dependencies
|
159
159
|
|
160
160
|
def initialize(name, _version = nil)
|
161
161
|
# Defaults
|
@@ -196,7 +196,8 @@ class Echoe
|
|
196
196
|
readme = Dir['*'].detect { |filename| filename =~ /^readme/i }
|
197
197
|
self.rdoc_options += ['--main', readme] if readme
|
198
198
|
|
199
|
-
self.
|
199
|
+
self.runtime_dependencies = []
|
200
|
+
self.development_dependencies = ["echoe"]
|
200
201
|
self.manifest_name = "Manifest"
|
201
202
|
self.extension_pattern = ["ext/**/extconf.rb", "ext/extconf.rb"]
|
202
203
|
self.private_key = ENV['GEM_PRIVATE_KEY']
|
@@ -209,14 +210,16 @@ class Echoe
|
|
209
210
|
self.need_zip = false
|
210
211
|
self.platform = $platform
|
211
212
|
|
212
|
-
self.include_rakefile =
|
213
|
+
self.include_rakefile = true
|
213
214
|
self.include_gemspec = true
|
214
215
|
self.gemspec_name = "#{name}.gemspec"
|
216
|
+
self.rubygems_version = "1.2"
|
215
217
|
|
216
218
|
yield self if block_given?
|
217
219
|
|
218
220
|
# legacy compatibility
|
219
|
-
self.
|
221
|
+
self.runtime_dependencies = dependencies if dependencies and runtime_dependencies.empty?
|
222
|
+
self.runtime_dependencies = extra_deps if extra_deps and runtime_dependencies.empty?
|
220
223
|
self.project = rubyforge_name if rubyforge_name
|
221
224
|
self.rdoc_pattern = rdoc_files if rdoc_files
|
222
225
|
self.extension_pattern = extensions if extensions
|
@@ -300,6 +303,7 @@ class Echoe
|
|
300
303
|
self.spec = Gem::Specification.new do |s|
|
301
304
|
s.name = name
|
302
305
|
s.version = version
|
306
|
+
# s.specification_version = 3
|
303
307
|
s.summary = summary
|
304
308
|
s.author = Array(author).join(", ")
|
305
309
|
s.email = email
|
@@ -318,9 +322,14 @@ class Echoe
|
|
318
322
|
s.cert_chain = certificate_chain
|
319
323
|
end
|
320
324
|
|
321
|
-
|
325
|
+
runtime_dependencies.each do |dep|
|
322
326
|
dep = dep.split(" ") if dep.is_a? String
|
323
|
-
s.
|
327
|
+
s.add_runtime_dependency(*dep)
|
328
|
+
end
|
329
|
+
|
330
|
+
development_dependencies.each do |dep|
|
331
|
+
dep = dep.split(" ") if dep.is_a? String
|
332
|
+
s.add_development_dependency(*dep)
|
324
333
|
end
|
325
334
|
|
326
335
|
s.files = files
|
@@ -367,16 +376,10 @@ class Echoe
|
|
367
376
|
if include_gemspec
|
368
377
|
File.open(gemspec_name, 'w') do |f|
|
369
378
|
f.puts "\n# Gem::Specification for #{name.capitalize}-#{version}\n# Originally generated by Echoe\n\n"
|
370
|
-
spec.
|
379
|
+
spec.to_yaml.split("\n").each do |line|
|
371
380
|
# Don't publish any information about the private key or certificate chain
|
372
381
|
f.puts line unless line =~ /signing_key|cert_chain|\.pem/
|
373
|
-
end
|
374
|
-
|
375
|
-
f.puts "\n\n# # Original Rakefile source (requires the Echoe gem):\n# \n"
|
376
|
-
File.open("Rakefile").readlines.each do |line|
|
377
|
-
# Ditto
|
378
|
-
f.write "# #{line}" unless line =~ /private_key|certificate_chain|\.pem/
|
379
|
-
end
|
382
|
+
end
|
380
383
|
end
|
381
384
|
end
|
382
385
|
end
|
@@ -410,6 +413,13 @@ class Echoe
|
|
410
413
|
task :install => [:clean, :package, :uninstall] do
|
411
414
|
system "#{'sudo' if use_sudo} gem install pkg/*.gem -P MediumSecurity --no-update-sources"
|
412
415
|
end
|
416
|
+
|
417
|
+
namespace :install do
|
418
|
+
desc 'Install the gem including development dependencies'
|
419
|
+
task :development => [:clean, :package, :uninstall] do
|
420
|
+
system "#{'sudo' if use_sudo} gem install pkg/*.gem -P MediumSecurity --no-update-sources --development"
|
421
|
+
end
|
422
|
+
end
|
413
423
|
|
414
424
|
desc 'Uninstall the gem'
|
415
425
|
task :uninstall do
|
@@ -427,7 +437,7 @@ class Echoe
|
|
427
437
|
pkg_tar_gz = pkg + ".tar.gz"
|
428
438
|
pkg_zip = pkg + ".zip"
|
429
439
|
|
430
|
-
rf = RubyForge.new
|
440
|
+
rf = RubyForge.new.configure
|
431
441
|
puts "Logging in"
|
432
442
|
rf.login
|
433
443
|
|
@@ -572,7 +582,7 @@ class Echoe
|
|
572
582
|
|
573
583
|
body = File.open(filename).readlines.reject { |line| line =~ /Subject: / }.join.gsub("\n\n\n", "\n\n")
|
574
584
|
|
575
|
-
rf = RubyForge.new
|
585
|
+
rf = RubyForge.new.configure
|
576
586
|
rf.login
|
577
587
|
rf.post_news(project, subject, body)
|
578
588
|
puts "Published."
|
@@ -615,6 +625,7 @@ class Echoe
|
|
615
625
|
File.open(manifest_name, 'w').puts(files)
|
616
626
|
|
617
627
|
(files | old_files).sort.each do |file|
|
628
|
+
next if file == gemspec_name
|
618
629
|
sign = " "
|
619
630
|
if old_files.include?(file) and !files.include?(file)
|
620
631
|
sign = "-"
|
data/lib/echoe/client.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# Fixes for Rubyforge 1.0.0 client.rb
|
2
|
+
|
3
|
+
class RubyForge::Client
|
4
|
+
def boundary_data_for(boundary, parameters)
|
5
|
+
parameters.sort_by {|k,v| k.to_s }.map { |k,v|
|
6
|
+
parameter = "--#{boundary}\r\nContent-Disposition: form-data; name=\"" +
|
7
|
+
WEBrick::HTTPUtils.escape_form(k.to_s) + "\""
|
8
|
+
|
9
|
+
if v.respond_to?(:path)
|
10
|
+
parameter += "; filename=\"#{File.basename(v.path)}\"\r\n"
|
11
|
+
parameter += "Content-Transfer-Encoding: binary\r\n"
|
12
|
+
parameter += "Content-Type: text/plain"
|
13
|
+
end
|
14
|
+
parameter += "\r\n\r\n"
|
15
|
+
|
16
|
+
if v.respond_to?(:path)
|
17
|
+
parameter += v.read
|
18
|
+
elsif
|
19
|
+
parameter += v.to_s
|
20
|
+
end
|
21
|
+
|
22
|
+
parameter
|
23
|
+
}.join("\r\n") + "\r\n--#{boundary}--\r\n"
|
24
|
+
end
|
25
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: echoe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: "3"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Weaver
|
@@ -30,11 +30,12 @@ cert_chain:
|
|
30
30
|
yZ0=
|
31
31
|
-----END CERTIFICATE-----
|
32
32
|
|
33
|
-
date: 2008-
|
33
|
+
date: 2008-06-23 00:00:00 -04:00
|
34
34
|
default_executable:
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
+
type: :runtime
|
38
39
|
version_requirement:
|
39
40
|
version_requirements: !ruby/object:Gem::Requirement
|
40
41
|
requirements:
|
@@ -44,15 +45,17 @@ dependencies:
|
|
44
45
|
version:
|
45
46
|
- !ruby/object:Gem::Dependency
|
46
47
|
name: rubyforge
|
48
|
+
type: :runtime
|
47
49
|
version_requirement:
|
48
50
|
version_requirements: !ruby/object:Gem::Requirement
|
49
51
|
requirements:
|
50
|
-
- - "
|
52
|
+
- - ">="
|
51
53
|
- !ruby/object:Gem::Version
|
52
|
-
version: 0.
|
54
|
+
version: 1.0.0
|
53
55
|
version:
|
54
56
|
- !ruby/object:Gem::Dependency
|
55
57
|
name: highline
|
58
|
+
type: :runtime
|
56
59
|
version_requirement:
|
57
60
|
version_requirements: !ruby/object:Gem::Requirement
|
58
61
|
requirements:
|
@@ -68,6 +71,7 @@ extensions: []
|
|
68
71
|
|
69
72
|
extra_rdoc_files:
|
70
73
|
- CHANGELOG
|
74
|
+
- lib/echoe/client.rb
|
71
75
|
- lib/echoe/extensions.rb
|
72
76
|
- lib/echoe/platform.rb
|
73
77
|
- lib/echoe.rb
|
@@ -76,6 +80,7 @@ extra_rdoc_files:
|
|
76
80
|
- TODO
|
77
81
|
files:
|
78
82
|
- CHANGELOG
|
83
|
+
- lib/echoe/client.rb
|
79
84
|
- lib/echoe/extensions.rb
|
80
85
|
- lib/echoe/platform.rb
|
81
86
|
- lib/echoe.rb
|
@@ -85,6 +90,7 @@ files:
|
|
85
90
|
- Rakefile
|
86
91
|
- README
|
87
92
|
- TODO
|
93
|
+
- echoe.gemspec
|
88
94
|
has_rdoc: true
|
89
95
|
homepage: http://blog.evanweaver.com/files/doc/fauna/echoe/
|
90
96
|
post_install_message:
|
@@ -105,14 +111,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
105
111
|
version:
|
106
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
113
|
requirements:
|
108
|
-
- - "
|
114
|
+
- - "="
|
109
115
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
116
|
+
version: "1.2"
|
111
117
|
version:
|
112
118
|
requirements: []
|
113
119
|
|
114
120
|
rubyforge_project: fauna
|
115
|
-
rubygems_version: 1.
|
121
|
+
rubygems_version: 1.2.0
|
116
122
|
signing_key:
|
117
123
|
specification_version: 2
|
118
124
|
summary: A Rubygems packaging tool that provides Rake tasks for documentation, extension compiling, testing, and deployment.
|
metadata.gz.sig
CHANGED
Binary file
|