rsanheim-echoe 3

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