rsanheim-echoe 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/CHANGELOG +62 -0
- data/LICENSE +184 -0
- data/MIT-LICENSE +21 -0
- data/Manifest +11 -0
- data/README +114 -0
- data/Rakefile +14 -0
- data/TODO +4 -0
- data/echoe.gemspec +38 -0
- data/lib/echoe.rb +700 -0
- data/lib/echoe/client.rb +25 -0
- data/lib/echoe/extensions.rb +57 -0
- data/lib/echoe/platform.rb +74 -0
- metadata +102 -0
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
|
@@ -0,0 +1,57 @@
|
|
1
|
+
|
2
|
+
class String #:nodoc:
|
3
|
+
def uncapitalize #:nodoc:
|
4
|
+
"#{self[0..0].downcase}#{self[1..-1]}"
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
class ::Rake::SshDirPublisher # :nodoc:
|
9
|
+
attr_reader :host, :remote_dir, :local_dir
|
10
|
+
end
|
11
|
+
|
12
|
+
class Echoe
|
13
|
+
|
14
|
+
def self.silence
|
15
|
+
if !ENV['VERBOSE']
|
16
|
+
stdout, stderr = $stdout.clone, $stderr.clone
|
17
|
+
$stdout.reopen(File.new('/tmp/stdout.echoe', 'w'))
|
18
|
+
$stderr.reopen(File.new('/tmp/stderr.echoe', 'w'))
|
19
|
+
begin
|
20
|
+
yield
|
21
|
+
ensure
|
22
|
+
$stdout.reopen(stdout)
|
23
|
+
$stderr.reopen(stderr)
|
24
|
+
end
|
25
|
+
else
|
26
|
+
yield
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
# Redefine instead of chain a Rake task
|
33
|
+
# http://www.bigbold.com/snippets/posts/show/2032
|
34
|
+
|
35
|
+
module Rake
|
36
|
+
module TaskManager
|
37
|
+
def redefine_task(task_class, *args, &block)
|
38
|
+
task_name, deps = resolve_args(args)
|
39
|
+
task_name = task_class.scope_name(@scope, task_name)
|
40
|
+
deps = [deps] unless deps.respond_to?(:to_ary)
|
41
|
+
deps = deps.collect {|d| d.to_s }
|
42
|
+
task = @tasks[task_name.to_s] = task_class.new(task_name, self)
|
43
|
+
task.application = self
|
44
|
+
task.send(:add_comment, @last_comment)
|
45
|
+
@last_comment = nil
|
46
|
+
task.enhance(deps, &block)
|
47
|
+
task
|
48
|
+
end
|
49
|
+
end
|
50
|
+
class Task
|
51
|
+
class << self
|
52
|
+
def redefine_task(*args, &block)
|
53
|
+
Rake.application.redefine_task(self, *args, &block)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
|
2
|
+
### Platform check regexes
|
3
|
+
|
4
|
+
module Platform
|
5
|
+
def self.windows?
|
6
|
+
@windows ||= RUBY_PLATFORM =~ /djgpp|(cyg|ms|bcc)win|mingw/
|
7
|
+
!@windows.nil?
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.gcc?
|
11
|
+
@gcc ||= RUBY_PLATFORM =~ /mingw/
|
12
|
+
!@gcc.nil?
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.msvc?
|
16
|
+
@msvc ||= RUBY_PLATFORM =~ /mswin/
|
17
|
+
!@msvc.nil?
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.java?
|
21
|
+
@java ||= RUBY_PLATFORM =~ /java/
|
22
|
+
!@java.nil?
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.rake
|
26
|
+
windows? ? 'rake.bat' : 'rake'
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.make
|
30
|
+
msvc? ? 'nmake' : 'make'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
### Overrides for cross packaging, which Rubygems 0.9.5 doesn't do
|
35
|
+
|
36
|
+
module Gem
|
37
|
+
class Specification
|
38
|
+
|
39
|
+
alias :old_validate :validate
|
40
|
+
|
41
|
+
PLATFORM_CROSS_TARGETS = ["aix", "cygwin", "darwin", "freebsd", "hpux", "java", "linux", "mingw", "mswin", "netbsdelf", "openbsd", "solaris", "_platform", "jruby"]
|
42
|
+
|
43
|
+
def validate
|
44
|
+
begin
|
45
|
+
old_validate
|
46
|
+
rescue Gem::InvalidSpecificationException
|
47
|
+
if platform =~ /(#{PLATFORM_CROSS_TARGETS.join("|")})/i
|
48
|
+
true
|
49
|
+
else
|
50
|
+
raise Gem::InvalidSpecificationException, "Unknown package target \"#{platform}\"."
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
### Some runtime Echoe hacks
|
59
|
+
|
60
|
+
$platform = "ruby" # or Gem::PLATFORM::RUBY maybe
|
61
|
+
|
62
|
+
def reset_target target #:nodoc:
|
63
|
+
$platform = target
|
64
|
+
Object.send(:remove_const, "RUBY_PLATFORM")
|
65
|
+
Object.send(:const_set, "RUBY_PLATFORM", target)
|
66
|
+
end
|
67
|
+
|
68
|
+
if target = ARGV.detect do |arg|
|
69
|
+
# Hack to get the platform set before the Rakefile evaluates
|
70
|
+
Gem::Specification::PLATFORM_CROSS_TARGETS.include? arg
|
71
|
+
end
|
72
|
+
reset_target target
|
73
|
+
end
|
74
|
+
|
metadata
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rsanheim-echoe
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: "3"
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Evan Weaver
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-07-04 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rake
|
17
|
+
version_requirement:
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: "0"
|
23
|
+
version:
|
24
|
+
- !ruby/object:Gem::Dependency
|
25
|
+
name: rubyforge
|
26
|
+
version_requirement:
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 1.0.0
|
32
|
+
version:
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: highline
|
35
|
+
version_requirement:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: "0"
|
41
|
+
version:
|
42
|
+
description: A Rubygems packaging tool that provides Rake tasks for documentation, extension compiling, testing, and deployment.
|
43
|
+
email: ""
|
44
|
+
executables: []
|
45
|
+
|
46
|
+
extensions: []
|
47
|
+
|
48
|
+
extra_rdoc_files:
|
49
|
+
- CHANGELOG
|
50
|
+
- lib/echoe/client.rb
|
51
|
+
- lib/echoe/extensions.rb
|
52
|
+
- lib/echoe/platform.rb
|
53
|
+
- lib/echoe.rb
|
54
|
+
- LICENSE
|
55
|
+
- README
|
56
|
+
- TODO
|
57
|
+
files:
|
58
|
+
- CHANGELOG
|
59
|
+
- lib/echoe/client.rb
|
60
|
+
- lib/echoe/extensions.rb
|
61
|
+
- lib/echoe/platform.rb
|
62
|
+
- lib/echoe.rb
|
63
|
+
- LICENSE
|
64
|
+
- Manifest
|
65
|
+
- MIT-LICENSE
|
66
|
+
- Rakefile
|
67
|
+
- README
|
68
|
+
- TODO
|
69
|
+
- echoe.gemspec
|
70
|
+
has_rdoc: true
|
71
|
+
homepage: http://blog.evanweaver.com/files/doc/fauna/echoe/
|
72
|
+
post_install_message:
|
73
|
+
rdoc_options:
|
74
|
+
- --line-numbers
|
75
|
+
- --inline-source
|
76
|
+
- --title
|
77
|
+
- Echoe
|
78
|
+
- --main
|
79
|
+
- README
|
80
|
+
require_paths:
|
81
|
+
- lib
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: "0"
|
87
|
+
version:
|
88
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - "="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: "1.2"
|
93
|
+
version:
|
94
|
+
requirements: []
|
95
|
+
|
96
|
+
rubyforge_project: fauna
|
97
|
+
rubygems_version: 1.2.0
|
98
|
+
signing_key:
|
99
|
+
specification_version: 2
|
100
|
+
summary: A Rubygems packaging tool that provides Rake tasks for documentation, extension compiling, testing, and deployment.
|
101
|
+
test_files: []
|
102
|
+
|