echoe-4.6.5/ 0000755 0000041 0000041 00000000000 12247337443 012652 5 ustar www-data www-data echoe-4.6.5/Rakefile 0000644 0000041 0000041 00000001143 12247337443 014316 0 ustar www-data www-data ($:.unshift File.expand_path(File.join( File.dirname(__FILE__), 'lib' ))).uniq!
require 'echoe'
Echoe.new('echoe') do |p|
p.project = 'fauna'
p.author = 'Evan Weaver'
p.summary = 'A Rubygems packaging tool that provides Rake tasks for documentation, extension compiling, testing, and deployment.'
p.runtime_dependencies = ['rubyforge >=2.0.4', 'allison >=2.0.3', 'rdoc >=2.5.11', 'rake >=0.9.2']
p.development_dependencies = []
p.certificate_chain = "echoe.pem"
p.require_signed
p.retain_gemspec = true
p.licenses = ["Academic Free License (AFL) v. 3.0"]
p.rubygems_version = ">=1.8.4"
end
echoe-4.6.5/CHANGELOG 0000644 0000041 0000041 00000010720 12247337443 014064 0 ustar www-data www-data v4.6.5. Gem public cert.
v4.6.4. Compatibility hack for pre-Darkfish RDoc templates.
v4.6.3. Better JRuby compatibility.
v4.6.2. Require 'psych' if you have it, to fix Rubygems bug.
v4.6.1. Compatibility with Rake 0.9.2, which deprecated the API added in 0.9.0.
v4.6.0. Compatibility with RubyGems 1.8.4 and Rake 0.9.0. Uncertain behavior on previous versions.
v4.5.6. Add :prerelease task for user release checks.
v4.5.5. Tag releases in git automatically (smulube).
v4.5.2. Ruby 1.9.2 compatibility, except for publish_docs. Ugh.
v4.5.1. Create all subfolders.
v4.5. Default to Allison template.
v4.4.1. Correct default url.
v4.4. Use GitHub for default url and documentation hosting.
v4.3.1. Don't stop if gemcutter's plugin cannot be loaded, don't define RSpec tasks if RSpec is not present (Flameeyes). Use Dir.tmpdir.
v4.3. Don't use sudo if the GEM_HOME is local. Support prerelease gem versions.
v4.2. Allow custom requirements (TylerRick); take advantage of .git_ignore (greatseth); only use -P MediumSecurity on install if it is the packaging machine.
v4.1. Remove prompts until I can find a cursor library that's not GPL. Restore Rubyforge gem dependency, for the announce method.
v4.0. Use gemcutter. Dump Rubyforge.
v3.2. Sort manifest.
v3.1.3. Removing Evan's keychain so GitHub can build the gem. Version bump to force GitHub to re-generate gem.
v3.1.2. Small bugfix. Version bump to force GitHub to re-generate gem.
v3.1.1. Remove Rake/contrib from the gem requirements and vendor it. Fix some load paths on Ruby 1.9.
v3.1. Fix some bugs; become Ruby 1.9 compatible.
v3.0.2. Support for alternative Rakefile naming.
v3.0.1. Compatibility with Rubygems 1.3.
v3. Compatibility with Rubyforge 1.0.0 and Rubygems 1.2.
v2.7.13. Avoid Rubyforge 1.0.0 which seems broken.
v2.7.12. Respect system EDITOR setting (osteele).
v2.7.11. Include Platform module for abstracting RUBY_PLATFORM regex checks (luislavena).
v2.7.10. Include RDoc options in generated gemspec (Rob McKinnon).
v2.7.9. Fix redefine task helper for new Rake.
v2.7.8. Better default test pattern.
v2.7.7. Don't use sudo on win32/cygwin (Kevin Williams).
v2.7.6. Better Echoe.silence behavior.
v2.7.5. Fix bug when MultiRails isn't installed; remove "test" from platform targets.
v2.7.4. Ensured teardown.rb just like setup.rb. Load multi_rails automatically if its available. ENV['VERBOSE'] obeyed for Echoe.silence.
v2.7.3. Put some handy things in lib/echoe/extensions.rb; use Rake::TestTask instead of screwing around in the shell. Automatically run test/setup.rb before the test task, if it exists.
v2.7.2. Don't try to verify the existence of the RDoc template. Fixes for the RCov task.
v2.7.1. Rcov changed to a weak dependency for JRuby.
v2.7.0. Add coverage task; change default test pattern; Rubygems 0.9.4.5 compatibility and requirement. Cross-packaging hacks for same. Add rubygems_version accessor. Manifest alerts about removed files now as well as added. Allow targeting of every platform on RubyGems 0.9.5.
v2.6.4. Fix related issue.
v2.6.3. Fix issue with shared object paths in :compile task.
v2.6.2. Fix executable pattern bug; use a better default clean pattern.
v2.6. Unify pattern handling; changelog accessor, version accessor, expand paths of keys and certificates; support verbose (Rails-style) changelogs.
v2.5. Add some extension building tasks; adjust clean behavior; rdoc inclusions definitely depend on Manifest now; ruby_version accessor; ignore_pattern for skipping files during the manifest build; bugfixes.
v2.4.1. Manifest doesn't require itself (willcodeforwork).
v2.4. Sign gems automatically if ENV['GEM_PRIVATE_KEY'] is present; add certificate_chain and private_key accessors.
v2.3. Work around metadependencies issue by including gemspecs instead of Rakefiles by default; include_gemspec and include_rakefile accessors.
v2.2. Need_gem option; announce task.
v2.1. Adjust default RDoc include pattern; extra_deps now dependencies; rubyforge_name now project; support install messages; manifest instead of build_manifest.
v2. Support documentation hosts other than rubyforge; auto-load CHANGELOG contents; remove bin/echoe which doesn't work anyway. Incompatible changes.
v1.4. Auto-detect readme file; make rdoc default pattern compatible with manifest generator; fix publish_docs task.
v1.3. Avoid rubyforge gem multi-activation conflict.
v1.2. build_manifest Rake task.
v1.1. Sane error messages on releasing new or duplicate gems; allow Manifest to not end in .txt.
v1.0. Fork from Hoe.
echoe-4.6.5/vendor/ 0000755 0000041 0000041 00000000000 12247337443 014147 5 ustar www-data www-data echoe-4.6.5/vendor/rake/ 0000755 0000041 0000041 00000000000 12247337443 015071 5 ustar www-data www-data echoe-4.6.5/vendor/rake/MIT-LICENSE 0000644 0000041 0000041 00000002046 12247337443 016527 0 ustar www-data www-data Copyright (c) 2003, 2004 Jim Weirich
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
echoe-4.6.5/vendor/rake/lib/ 0000755 0000041 0000041 00000000000 12247337443 015637 5 ustar www-data www-data echoe-4.6.5/vendor/rake/lib/rake/ 0000755 0000041 0000041 00000000000 12247337443 016561 5 ustar www-data www-data echoe-4.6.5/vendor/rake/lib/rake/contrib/ 0000755 0000041 0000041 00000000000 12247337443 020221 5 ustar www-data www-data echoe-4.6.5/vendor/rake/lib/rake/contrib/sshpublisher.rb 0000644 0000041 0000041 00000002137 12247337443 023264 0 ustar www-data www-data module Rake
# Publish an entire directory to an existing remote directory using
# SSH.
class SshDirPublisher
def initialize(host, remote_dir, local_dir)
@host = host
@remote_dir = remote_dir
@local_dir = local_dir
end
def upload
sh %{scp -rq #{@local_dir}/* #{@host}:#{@remote_dir}}
end
end
# Publish an entire directory to a fresh remote directory using SSH.
class SshFreshDirPublisher < SshDirPublisher
def upload
sh %{ssh #{@host} rm -rf #{@remote_dir}} rescue nil
sh %{ssh #{@host} mkdir #{@remote_dir}}
super
end
end
# Publish a list of files to an existing remote directory.
class SshFilePublisher
# Create a publisher using the give host information.
def initialize(host, remote_dir, local_dir, *files)
@host = host
@remote_dir = remote_dir
@local_dir = local_dir
@files = files
end
# Upload the local directory to the remote directory.
def upload
@files.each do |fn|
sh %{scp -q #{@local_dir}/#{fn} #{@host}:#{@remote_dir}}
end
end
end
end
echoe-4.6.5/vendor/rake/lib/rake/contrib/rubyforgepublisher.rb 0000644 0000041 0000041 00000000511 12247337443 024465 0 ustar www-data www-data #!/usr/bin/env ruby
require 'rake/contrib/sshpublisher'
module Rake
class RubyForgePublisher < SshDirPublisher
attr_reader :project, :proj_id, :user
def initialize(projname, user)
super(
"#{user}@rubyforge.org",
"/var/www/gforge-projects/#{projname}",
"html")
end
end
end
echoe-4.6.5/vendor/rake/lib/rake/contrib/sys.rb 0000644 0000041 0000041 00000013606 12247337443 021372 0 ustar www-data www-data #!/usr/bin/env ruby
#--
# Copyright (c) 2003, 2004 Jim Weirich
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#++
#
begin
require 'ftools'
rescue LoadError
end
require 'rbconfig'
######################################################################
# Sys provides a number of file manipulation tools for the convenience
# of writing Rakefiles. All commands in this module will announce
# their activity on standard output if the $verbose flag is set
# ($verbose = true is the default). You can control this by globally
# setting $verbose or by using the +verbose+ and +quiet+ methods.
#
# Sys has been deprecated in favor of the FileUtils module available
# in Ruby 1.8.
#
module Sys
RUBY = Config::CONFIG['ruby_install_name']
# Install all the files matching +wildcard+ into the +dest_dir+
# directory. The permission mode is set to +mode+.
def install(wildcard, dest_dir, mode)
Dir[wildcard].each do |fn|
File.install(fn, dest_dir, mode, $verbose)
end
end
# Run the system command +cmd+.
def run(cmd)
log cmd
system(cmd) or fail "Command Failed: [#{cmd}]"
end
# Run a Ruby interpreter with the given arguments.
def ruby(*args)
run "#{RUBY} #{args.join(' ')}"
end
# Copy a single file from +file_name+ to +dest_file+.
def copy(file_name, dest_file)
log "Copying file #{file_name} to #{dest_file}"
File.copy(file_name, dest_file)
end
# Copy all files matching +wildcard+ into the directory +dest_dir+.
def copy_files(wildcard, dest_dir)
for_matching_files(wildcard, dest_dir) { |from, to| copy(from, to) }
end
# Link +file_name+ to +dest_file+.
def link(file_name, dest_file)
log "Linking file #{file_name} to #{dest_file}"
File.link(file_name, dest_file)
end
# Link all files matching +wildcard+ into the directory +dest_dir+.
def link_files(wildcard, dest_dir)
for_matching_files(wildcard, dest_dir) { |from, to| link(from, to) }
end
# Symlink +file_name+ to +dest_file+.
def symlink(file_name, dest_file)
log "Symlinking file #{file_name} to #{dest_file}"
File.symlink(file_name, dest_file)
end
# Symlink all files matching +wildcard+ into the directory +dest_dir+.
def symlink_files(wildcard, dest_dir)
for_matching_files(wildcard, dest_dir) { |from, to| link(from, to) }
end
# Remove all files matching +wildcard+. If a matching file is a
# directory, it must be empty to be removed. used +delete_all+ to
# recursively delete directories.
def delete(*wildcards)
wildcards.each do |wildcard|
Dir[wildcard].each do |fn|
if File.directory?(fn)
log "Deleting directory #{fn}"
Dir.delete(fn)
else
log "Deleting file #{fn}"
File.delete(fn)
end
end
end
end
# Recursively delete all files and directories matching +wildcard+.
def delete_all(*wildcards)
wildcards.each do |wildcard|
Dir[wildcard].each do |fn|
next if ! File.exist?(fn)
if File.directory?(fn)
Dir["#{fn}/*"].each do |subfn|
next if subfn=='.' || subfn=='..'
delete_all(subfn)
end
log "Deleting directory #{fn}"
Dir.delete(fn)
else
log "Deleting file #{fn}"
File.delete(fn)
end
end
end
end
# Make the directories given in +dirs+.
def makedirs(*dirs)
dirs.each do |fn|
log "Making directory #{fn}"
File.makedirs(fn)
end
end
# Make +dir+ the current working directory for the duration of
# executing the given block.
def indir(dir)
olddir = Dir.pwd
Dir.chdir(dir)
yield
ensure
Dir.chdir(olddir)
end
# Split a file path into individual directory names.
#
# For example:
# split_all("a/b/c") => ['a', 'b', 'c']
def split_all(path)
head, tail = File.split(path)
return [tail] if head == '.' || tail == '/'
return [head, tail] if head == '/'
return split_all(head) + [tail]
end
# Write a message to standard out if $verbose is enabled.
def log(msg)
print " " if $trace && $verbose
puts msg if $verbose
end
# Perform a block with $verbose disabled.
def quiet(&block)
with_verbose(false, &block)
end
# Perform a block with $verbose enabled.
def verbose(&block)
with_verbose(true, &block)
end
# Perform a block with each file matching a set of wildcards.
def for_files(*wildcards)
wildcards.each do |wildcard|
Dir[wildcard].each do |fn|
yield(fn)
end
end
end
extend(self)
private # ----------------------------------------------------------
def for_matching_files(wildcard, dest_dir)
Dir[wildcard].each do |fn|
dest_file = File.join(dest_dir, fn)
parent = File.dirname(dest_file)
makedirs(parent) if ! File.directory?(parent)
yield(fn, dest_file)
end
end
def with_verbose(v)
oldverbose = $verbose
$verbose = v
yield
ensure
$verbose = oldverbose
end
end
echoe-4.6.5/vendor/rake/lib/rake/contrib/compositepublisher.rb 0000644 0000041 0000041 00000000575 12247337443 024475 0 ustar www-data www-data #!/usr/bin/env ruby
module Rake
# Manage several publishers as a single entity.
class CompositePublisher
def initialize
@publishers = []
end
# Add a publisher to the composite.
def add(pub)
@publishers << pub
end
# Upload all the individual publishers.
def upload
@publishers.each { |p| p.upload }
end
end
end
echoe-4.6.5/vendor/rake/lib/rake/contrib/publisher.rb 0000644 0000041 0000041 00000003734 12247337443 022552 0 ustar www-data www-data #!/usr/bin/env ruby
# Copyright 2003, 2004 by Jim Weirich (jim@weirichhouse.org)
# All rights reserved.
# Permission is granted for use, copying, modification, distribution,
# and distribution of modified versions of this work as long as the
# above copyright notice is included.
# Configuration information about an upload host system.
# * name :: Name of host system.
# * webdir :: Base directory for the web information for the
# application. The application name (APP) is appended to
# this directory before using.
# * pkgdir :: Directory on the host system where packages can be
# placed.
HostInfo = Struct.new(:name, :webdir, :pkgdir)
# Manage several publishers as a single entity.
class CompositePublisher
def initialize
@publishers = []
end
# Add a publisher to the composite.
def add(pub)
@publishers << pub
end
# Upload all the individual publishers.
def upload
@publishers.each { |p| p.upload }
end
end
# Publish an entire directory to an existing remote directory using
# SSH.
class SshDirPublisher
def initialize(host, remote_dir, local_dir)
@host = host
@remote_dir = remote_dir
@local_dir = local_dir
end
def upload
run %{scp -rq #{@local_dir}/* #{@host}:#{@remote_dir}}
end
end
# Publish an entire directory to a fresh remote directory using SSH.
class SshFreshDirPublisher < SshDirPublisher
def upload
run %{ssh #{@host} rm -rf #{@remote_dir}} rescue nil
run %{ssh #{@host} mkdir #{@remote_dir}}
super
end
end
# Publish a list of files to an existing remote directory.
class SshFilePublisher
# Create a publisher using the give host information.
def initialize(host, remote_dir, local_dir, *files)
@host = host
@remote_dir = remote_dir
@local_dir = local_dir
@files = files
end
# Upload the local directory to the remote directory.
def upload
@files.each do |fn|
run %{scp -q #{@local_dir}/#{fn} #{@host}:#{@remote_dir}}
end
end
end
echoe-4.6.5/vendor/rake/lib/rake/contrib/ftptools.rb 0000644 0000041 0000041 00000007325 12247337443 022427 0 ustar www-data www-data #!/usr/bin/env ruby
# = Tools for FTP uploading.
#
# This file is still under development and is not released for general
# use.
require 'date'
require 'net/ftp'
module Rake # :nodoc:
####################################################################
# Note: Not released for general use.
class FtpFile
attr_reader :name, :size, :owner, :group, :time
def self.date
@date_class ||= Date
end
def self.time
@time_class ||= Time
end
def initialize(path, entry)
@path = path
@mode, line, @owner, @group, size, d1, d2, d3, @name = entry.split(' ')
@size = size.to_i
@time = determine_time(d1, d2, d3)
end
def path
File.join(@path, @name)
end
def directory?
@mode[0] == ?d
end
def mode
parse_mode(@mode)
end
def symlink?
@mode[0] == ?l
end
private # --------------------------------------------------------
def parse_mode(m)
result = 0
(1..9).each do |i|
result = 2*result + ((m[i]==?-) ? 0 : 1)
end
result
end
def determine_time(d1, d2, d3)
now = self.class.time.now
if /:/ =~ d3
h, m = d3.split(':')
result = Time.parse("#{d1} #{d2} #{now.year} #{d3}")
if result > now
result = Time.parse("#{d1} #{d2} #{now.year-1} #{d3}")
end
else
result = Time.parse("#{d1} #{d2} #{d3}")
end
result
# elements = ParseDate.parsedate("#{d1} #{d2} #{d3}")
# if elements[0].nil?
# today = self.class.date.today
# if elements[1] > today.month
# elements[0] = today.year - 1
# else
# elements[0] = today.year
# end
# end
# elements = elements.collect { |el| el.nil? ? 0 : el }
# Time.mktime(*elements[0,7])
end
end
####################################################################
# Manage the uploading of files to an FTP account.
class FtpUploader
# Log uploads to standard output when true.
attr_accessor :verbose
class << FtpUploader
# Create an uploader and pass it to the given block as +up+.
# When the block is complete, close the uploader.
def connect(path, host, account, password)
up = self.new(path, host, account, password)
begin
yield(up)
ensure
up.close
end
end
end
# Create an FTP uploader targetting the directory +path+ on +host+
# using the given account and password. +path+ will be the root
# path of the uploader.
def initialize(path, host, account, password)
@created = Hash.new
@path = path
@ftp = Net::FTP.new(host, account, password)
makedirs(@path)
@ftp.chdir(@path)
end
# Create the directory +path+ in the uploader root path.
def makedirs(path)
route = []
File.split(path).each do |dir|
route << dir
current_dir = File.join(route)
if @created[current_dir].nil?
@created[current_dir] = true
puts "Creating Directory #{current_dir}" if @verbose
@ftp.mkdir(current_dir) rescue nil
end
end
end
# Upload all files matching +wildcard+ to the uploader's root
# path.
def upload_files(wildcard)
Dir[wildcard].each do |fn|
upload(fn)
end
end
# Close the uploader.
def close
@ftp.close
end
private # --------------------------------------------------------
# Upload a single file to the uploader's root path.
def upload(file)
puts "Uploading #{file}" if @verbose
dir = File.dirname(file)
makedirs(dir)
@ftp.putbinaryfile(file, file) unless File.directory?(file)
end
end
end
echoe-4.6.5/MIT-LICENSE 0000644 0000041 0000041 00000002064 12247337443 014310 0 ustar www-data www-data
Copyright (c) 2006 Ryan Davis, Zen Spider Software
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
echoe-4.6.5/data.tar.gz.sig 0000444 0000041 0000041 00000000400 12247337443 015463 0 ustar www-data www-data twkw=a)-5RtU<'ut u{^ciE\ԭ|F2p~_qQ!Y~'lHe>%,HaWÞ@< kEK@
CN
, LÏ PJ