capsaicin 0.1.2 → 0.1.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/Rakefile CHANGED
@@ -14,6 +14,7 @@ begin
14
14
 
15
15
  s.authors = ["Joe Khoobyar"]
16
16
  s.email = "joe@ankhcraft.com"
17
+ s.rubyforge_project = "capsaicin"
17
18
 
18
19
  s.add_dependency 'capistrano', ['>= 2.0']
19
20
  s.add_dependency 'archive-tar-minitar', ['>= 0.5']
@@ -22,6 +23,34 @@ rescue LoadError
22
23
  puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
23
24
  end
24
25
 
26
+ # These are new tasks
27
+ begin
28
+ require 'rake/contrib/sshpublisher'
29
+ namespace :rubyforge do
30
+
31
+ desc "Release gem and RDoc documentation to RubyForge"
32
+ task :release => ["rubyforge:release:gem", "rubyforge:release:docs"]
33
+
34
+ namespace :release do
35
+ desc "Publish RDoc to RubyForge."
36
+ task :docs => [:rdoc] do
37
+ config = YAML.load(
38
+ File.read(File.expand_path('~/.rubyforge/user-config.yml'))
39
+ )
40
+
41
+ host = "#{config['username']}@rubyforge.org"
42
+ remote_dir = "/var/www/gforge-projects/capsaicin/"
43
+ local_dir = 'rdoc'
44
+
45
+ Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
46
+ end
47
+ end
48
+ end
49
+ rescue LoadError
50
+ puts "Rake SshDirPublisher is unavailable or your rubyforge environment is not configured."
51
+ end
52
+
53
+
25
54
  # --------- RDoc Documentation ---------
26
55
  desc "Generate RDoc documentation"
27
56
  Rake::RDocTask.new(:rdoc) do |rdoc|
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :patch: 2
3
- :major: 0
4
2
  :minor: 1
3
+ :patch: 3
4
+ :major: 0
@@ -42,6 +42,42 @@ module Capsaicin
42
42
  cd dir
43
43
  end
44
44
 
45
+ def tar_c(dest, src, options={}, &filter)
46
+ logger and
47
+ logger.trace "tar -cf #{dest} " + Array(src).map { |s| s.gsub ' ', '\\ ' }.join(' ')
48
+ _tar File.open(dest, 'wb'), src, v, &filter
49
+ end
50
+
51
+ def tar_cz(dest, src, options={}, &filter)
52
+ require 'zlib' unless defined? Zlib::GzipWriter
53
+ logger and
54
+ logger.trace "tar -czf #{dest} " + Array(src).map { |s| s.gsub ' ', '\\ ' }.join(' ')
55
+ _tar Zlib::GzipWriter.new(File.open(dest, 'wb')), src, options, &filter
56
+ end
57
+
58
+ private
59
+
60
+ def _tar(os, src, options, &filter)
61
+ verbose = options[:v] || options[:verbose]
62
+ require 'find' unless defined? Find
63
+ unless defined? Archive::Tar::Minitar
64
+ require 'archive/tar/minitar'
65
+ end
66
+ minitar = Archive::Tar::Minitar
67
+
68
+ minitar::Output.open os do |outp|
69
+ Array(src).each do |path|
70
+ Find.find(path) do |entry|
71
+ if filter and filter[entry]
72
+ Find.prune if File.directory? entry
73
+ else
74
+ logger.trace " + #{entry}" if verbose
75
+ minitar.pack_file entry, outp
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
45
81
  end
46
82
  end
47
83
  end
@@ -17,6 +17,25 @@ module Capsaicin
17
17
  end
18
18
  end
19
19
 
20
+ def chmod(mode, list, options={})
21
+ _r 'chmod', Array(list).unshift(mode.to_s(8))
22
+ end
23
+
24
+ def chmod_R(mode, list, options={})
25
+ _r 'chmod -R', Array(list).unshift(mode.to_s(8))
26
+ end
27
+
28
+ def install(src, dest, options={})
29
+ src = Array(src)
30
+ case options[:mode]
31
+ when Fixnum
32
+ src << '-m' << options[:mode].to_s(8)
33
+ when String
34
+ src << '-m' << options[:mode]
35
+ end
36
+ _r 'install', src.push(dest)
37
+ end
38
+
20
39
  FILE_TESTS.each do |m,t|
21
40
  class_eval <<-EODEF
22
41
  def #{m}(a, options={})
@@ -68,6 +87,21 @@ module Capsaicin
68
87
  capture 'pwd', :via => _via
69
88
  end
70
89
 
90
+ def tar_c(dest, src, options={}, &filter)
91
+ filter and abort "tar_c: remote mode does not support a filtering proc"
92
+ _r 'tar -cf', Array(src).unshift(dest)
93
+ end
94
+
95
+ def tar_cz(dest, src, options={}, &filter)
96
+ filter and abort "tar_cz: remote mode does not support a filtering proc"
97
+ _r 'tar -czf', Array(src).unshift(dest)
98
+ end
99
+
100
+ def tar_cj(dest, src, options={}, &filter)
101
+ filter and abort "tar_cj: remote mode does not support a filtering proc"
102
+ _r 'tar -cjf', Array(src).unshift(dest)
103
+ end
104
+
71
105
  private
72
106
 
73
107
  def _t(cmd, args=nil, min=nil)
@@ -103,7 +137,7 @@ module Capsaicin
103
137
  end
104
138
 
105
139
  def _q(*list)
106
- list.map { |l| "'#{l.gsub("'", "\\'")}'" }.join ' '
140
+ list.map { |l| "'#{l.to_s.gsub("'", "\\'")}'" }.join ' '
107
141
  end
108
142
 
109
143
  def _via
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capsaicin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Khoobyar
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-05-07 00:00:00 -04:00
12
+ date: 2009-05-29 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -82,8 +82,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
82
  version:
83
83
  requirements: []
84
84
 
85
- rubyforge_project:
86
- rubygems_version: 1.3.2
85
+ rubyforge_project: capsaicin
86
+ rubygems_version: 1.3.3
87
87
  signing_key:
88
88
  specification_version: 3
89
89
  summary: Joe Khoobyar's spicy capistrano extensions