epitools 0.4.36 → 0.4.37

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.36
1
+ 0.4.37
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{epitools}
8
- s.version = "0.4.36"
8
+ s.version = "0.4.37"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["epitron"]
12
- s.date = %q{2011-05-23}
12
+ s.date = %q{2011-05-29}
13
13
  s.description = %q{Miscellaneous utility libraries to make my life easier.}
14
14
  s.email = %q{chris@ill-logic.com}
15
15
  s.extra_rdoc_files = [
@@ -3,6 +3,7 @@ autoload :URI, 'uri'
3
3
  autoload :CGI, 'cgi'
4
4
  autoload :Base64, 'base64'
5
5
  autoload :JSON, 'json'
6
+ autoload :YAML, 'yaml'
6
7
  autoload :Zlib, 'zlib'
7
8
  autoload :FileUtils, 'fileutils'
8
9
  autoload :Tempfile, 'tempfile'
@@ -52,6 +52,11 @@ class Path
52
52
  def self.ls(path); Path[path].ls end
53
53
 
54
54
  def self.ls_r(path); Path[path].ls_r; end
55
+
56
+ ## TODO: Verbose mode
57
+ #def self.verbose=(value); @@verbose = value; end
58
+ #def self.verbose; @@verbose ||= false; end
59
+
55
60
 
56
61
  ## setters
57
62
 
@@ -302,26 +307,28 @@ class Path
302
307
  def rename_to(path)
303
308
  rename :path=>path
304
309
  end
305
- alias_method :move, :rename
306
- alias_method :ren, :rename
307
-
308
- def delete!
309
- File.unlink(self)
310
+ alias_method :mv, :rename_to
311
+
312
+ {
313
+ :mkdir => "Dir.mkdir",
314
+ :mkdir_p =>"FileUtils.mkdir_p"
315
+ }.each do |method, expression|
316
+ class_eval %{
317
+ def #{method}
318
+ if exists?
319
+ if directory?
320
+ false
321
+ else
322
+ raise "Error: Tried to make a directory over top of an existing file."
323
+ end
324
+ else
325
+ #{expression}(path)
326
+ true
327
+ end
328
+ end
329
+ }
310
330
  end
311
- alias_method :"unlink!", :"delete!"
312
331
 
313
- def mkdir
314
-
315
- end
316
-
317
- def mkdir_p
318
- if exists?
319
- raise "Error: Path already exists."
320
- else
321
- FileUtils.mkdir_p(path)
322
- end
323
- end
324
-
325
332
  def cp_r(dest)
326
333
  FileUtils.cp_r(path, dest) #if Path[dest].exists?
327
334
  end
@@ -333,13 +340,25 @@ class Path
333
340
  Path[File.join(path, other)]
334
341
  end
335
342
  end
343
+
344
+
345
+ ## Dangerous methods.
336
346
 
337
- def truncate
338
- File.truncate(self)
347
+ def rm
348
+ if directory?
349
+ Dir.rmdir(self) == 0
350
+ else
351
+ File.unlink(self) == 1
352
+ end
339
353
  end
354
+ alias_method :"delete!", :rm
355
+ alias_method :"unlink!", :rm
356
+ alias_method :"remove!", :rm
340
357
 
341
-
342
-
358
+ def truncate(offset=0)
359
+ File.truncate(self, offset)
360
+ end
361
+
343
362
 
344
363
  ## Checksums
345
364
 
@@ -357,6 +376,25 @@ class Path
357
376
 
358
377
  alias_method :md5sum, :md5
359
378
 
379
+
380
+ ## Class method versions of FileUtils-like things
381
+
382
+ %w[
383
+ mkdir
384
+ mkdir_p
385
+ sha1
386
+ sha2
387
+ md5
388
+ rm
389
+ truncate
390
+ ].each do |method|
391
+ class_eval %{
392
+ def self.#{method}(path)
393
+ Path[path].#{method}
394
+ end
395
+ }
396
+ end
397
+
360
398
  end
361
399
 
362
400
  #
@@ -38,8 +38,7 @@ describe Path do
38
38
  path.ext = "mkv"
39
39
  path.ext.should == "mkv"
40
40
 
41
- path.ext = "mkv"
42
- path.ext.should == "mkv"
41
+ path.filename[-4..-1].should == ".mkv"
43
42
  end
44
43
 
45
44
  it "replaces filename" do
@@ -169,14 +168,27 @@ describe Path do
169
168
  path.to_s.should == str+".dat"
170
169
  end
171
170
 
172
- it "deletes" do
171
+ it "rms" do
173
172
  path = Path.tmpfile
174
173
  path << "data"
175
174
  path.exists?.should == true
176
- path.delete!
175
+ path.rm.should == true
177
176
  path.exists?.should == false
178
177
  end
179
178
 
179
+ it "truncates" do
180
+ path = Path.tmpfile
181
+
182
+ path << "1"*100
183
+ path.size.should == 100
184
+
185
+ path.truncate(50)
186
+ path.size.should == 50
187
+
188
+ path.truncate
189
+ path.size.should == 0
190
+ end
191
+
180
192
  it "checksums" do
181
193
  a, b = Path["*.rb"].take(2)
182
194
  [:sha1, :sha2, :md5].each do |meth|
@@ -189,4 +201,19 @@ describe Path do
189
201
  end
190
202
  end
191
203
 
204
+ it "mkdirs" do
205
+ tmp = Path.tmpfile
206
+ lambda { tmp.mkdir }.should raise_error
207
+ tmp.rm
208
+ tmp.mkdir.should == true
209
+ tmp.rm.should == true
210
+ end
211
+
212
+ it "has classmethods" do
213
+ path = Path.tmpfile
214
+
215
+ path << "whee"*100
216
+ path.sha1.should == Path.sha1(path)
217
+ end
218
+
192
219
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: epitools
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.4.36
5
+ version: 0.4.37
6
6
  platform: ruby
7
7
  authors:
8
8
  - epitron
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-23 00:00:00 -04:00
13
+ date: 2011-05-29 00:00:00 -04:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency