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