fancypath 0.1.0 → 0.3.0

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
@@ -5,7 +5,7 @@ require 'date'
5
5
  require 'spec/rake/spectask'
6
6
 
7
7
  GEM = "fancypath"
8
- GEM_VERSION = "0.1.0"
8
+ GEM_VERSION = "0.3.0"
9
9
  AUTHORS = ["Myles Byrne", "Chris Lloyd"]
10
10
  EMAIL = "myles@ducknewmedia.com"
11
11
  HOMEPAGE = "http://ducknewmedia.com/fancypath"
data/lib/fancypath.rb CHANGED
@@ -4,18 +4,25 @@ class Pathname
4
4
  def to_path
5
5
  Fancypath.new(self)
6
6
  end
7
+
8
+ alias_method :to_fancypath, :to_path
9
+
7
10
  end
8
11
 
9
12
  class String
10
13
  def to_path
11
14
  Fancypath.new(self)
12
15
  end
16
+
17
+ alias_method :to_fancypath, :to_path
18
+
13
19
  end
14
20
 
15
21
  class Fancypath < Pathname
16
22
  # methods are chainable and do what you think they do
17
23
 
18
24
  alias_method :exists?, :exist?
25
+ alias_method :rename_to, :rename
19
26
 
20
27
  def /(path)
21
28
  self.join(path).to_path
@@ -24,31 +31,48 @@ class Fancypath < Pathname
24
31
  # make file
25
32
  def touch
26
33
  FileUtils.touch self.to_s
27
- self
34
+ self.to_path
28
35
  end
29
36
 
30
37
  # make dir
31
38
  def create
32
39
  mkpath unless exist?
40
+ self.to_path
41
+ end
42
+
43
+ def copy(dest)
44
+ FileUtils.cp(self, dest)
33
45
  self
34
46
  end
35
47
 
36
48
  # file or dir
37
49
  def remove
38
50
  directory? ? rmtree : delete if exist?
39
- self
51
+ self.to_path
40
52
  end
41
53
 
42
- def write(contents)
54
+ def write(contents, mode='wb')
43
55
  dirname.create
44
- open('wb') { |f| f.write contents }
45
- self
56
+ open(mode) { |f| f.write contents }
57
+ self.to_path
58
+ end
59
+
60
+ def append(contents)
61
+ write(contents,'a+')
46
62
  end
47
63
 
48
64
  def visible_children
49
65
  children.reject { |c| c.basename.to_s =~ /^\./ }
50
66
  end
51
67
 
68
+ def inspect
69
+ super.sub('Pathname','Fancypath')
70
+ end
71
+
72
+ def to_path
73
+ self
74
+ end
75
+
52
76
  end
53
77
 
54
78
  def Fancypath(path); Fancypath.new(path) end
@@ -12,7 +12,7 @@ after { TMP_DIR.rmtree }
12
12
 
13
13
  describe '#/' do
14
14
 
15
- it('returns Fancypath') { (@dir/'somefile').class.should == Fancypath }
15
+ it('returns a Fancypath') { (@dir/'somefile').class.should == Fancypath }
16
16
  it('joins paths') { (@dir/'somefile').to_s.should =~ /\/somefile$/ }
17
17
 
18
18
  end
@@ -20,13 +20,15 @@ end
20
20
  describe '#touch', 'file does not exist' do
21
21
 
22
22
  it('returns self') { @file.touch.should == @file }
23
+ it('returns a Fancypath') { @file.touch.should be_instance_of(Fancypath) }
23
24
  it('creates file') { @file.touch.should be_file }
24
25
 
25
26
  end
26
27
 
27
28
  describe '#create', 'dir does not exist' do
28
29
 
29
- it('returns self') { @dir.create.should == @dir }
30
+ it('returns self') { @dir.create.should == @dir }
31
+ it('returns a Fancypath') { @dir.create.should be_instance_of(Fancypath) }
30
32
  it('creates directory') { @dir.create.should be_directory }
31
33
 
32
34
  end
@@ -34,6 +36,7 @@ end
34
36
  describe '#remove' do
35
37
 
36
38
  it('returns self') { @file.remove.should == @file }
39
+ it('returns a Fancypath') { @file.remove.should be_instance_of(Fancypath) }
37
40
  it('removes file') { @file.touch.remove.should_not exist }
38
41
  it('removes directory') { @dir.create.remove.should_not exist }
39
42
 
@@ -42,9 +45,31 @@ end
42
45
  describe '#write' do
43
46
 
44
47
  it('returns self') { @file.write('').should == @file }
48
+ it('returns a Fancypath') { @file.write('').should be_instance_of(Fancypath) }
45
49
  it('writes contents to file') { @file.write('test').read.should == 'test' }
46
50
 
47
51
  end
48
52
 
53
+ describe '#copy' do
54
+
55
+ before { @file.touch }
56
+ it('returns a Fancypath') { @file.copy(TMP_DIR/'foo').should be_instance_of(Fancypath) }
57
+ it('creates a new file') { @file.copy(TMP_DIR/'foo').should exist }
58
+ it('keeps the original') { @file.copy(TMP_DIR/'foo'); @file.should exist }
59
+ it('copies the contents') { @file.copy(TMP_DIR/'foo').read.should == @file.read }
60
+
61
+ end
62
+
63
+ end #/Fancypath
64
+
65
+ describe "String#to_path" do
66
+
67
+ it('returns a Fancypath') { 'test'.to_path.should be_instance_of(Fancypath) }
68
+
69
+ end
49
70
 
50
- end #/Fancypath
71
+ describe "Pathname#to_path" do
72
+
73
+ it('returns a Fancypath') { Fancypath.new('/').to_path.should be_instance_of(Fancypath) }
74
+
75
+ end
data/spec/spec_helper.rb CHANGED
@@ -3,4 +3,4 @@ $:.push File.join(File.dirname(__FILE__), '..', 'lib')
3
3
 
4
4
  require 'fancypath'
5
5
 
6
- TMP_DIR = Pathname.new(__FILE__).dirname.join('..', 'tmp', 'fancypath')
6
+ TMP_DIR = __FILE__.to_path.dirname/'..'/'tmp'/'fancypath'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fancypath
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Myles Byrne
@@ -10,7 +10,7 @@ autorequire: fancypath
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2008-11-03 00:00:00 +11:00
13
+ date: 2008-11-24 00:00:00 +11:00
14
14
  default_executable:
15
15
  dependencies: []
16
16
 
@@ -52,7 +52,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
52
52
  requirements: []
53
53
 
54
54
  rubyforge_project:
55
- rubygems_version: 1.2.0
55
+ rubygems_version: 1.3.1
56
56
  signing_key:
57
57
  specification_version: 2
58
58
  summary: Extensions for the Pathname library.