vfs 0.0.4 → 0.1.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 +2 -2
- data/lib/vfs.rb +18 -0
- data/lib/vfs/entries/dir.rb +272 -0
- data/lib/vfs/entries/entry.rb +127 -0
- data/lib/vfs/entries/file.rb +185 -0
- data/lib/vfs/entries/universal_entry.rb +24 -0
- data/lib/vfs/entry_proxy.rb +38 -0
- data/lib/vfs/error.rb +4 -0
- data/lib/vfs/integration/string.rb +19 -0
- data/lib/vfs/path.rb +125 -0
- data/lib/vfs/storages/hash_fs.rb +194 -0
- data/lib/vfs/storages/local.rb +138 -0
- data/lib/vfs/storages/specification.rb +127 -0
- data/lib/vfs/support.rb +2 -0
- data/readme.md +110 -14
- data/spec/container_spec.rb +31 -0
- data/spec/dir_spec.rb +224 -0
- data/spec/entry_spec.rb +24 -0
- data/spec/file_spec.rb +189 -0
- data/spec/path_spec.rb +121 -0
- data/spec/spec_helper.rb +2 -9
- data/spec/storages/hash_fs_spec.rb +10 -0
- data/spec/storages/local_spec.rb +10 -0
- data/spec/universal_entry_spec.rb +42 -0
- metadata +25 -23
- data/lib/old/ssh.rb +0 -11
- data/lib/rsh.rb +0 -19
- data/lib/rsh/box.rb +0 -182
- data/lib/rsh/box/marks.rb +0 -29
- data/lib/rsh/drivers/abstract.rb +0 -15
- data/lib/rsh/drivers/local.rb +0 -48
- data/lib/rsh/drivers/ssh.rb +0 -147
- data/lib/rsh/gems.rb +0 -2
- data/lib/rsh/support.rb +0 -30
- data/spec/abstract_driver.rb +0 -82
- data/spec/abstract_driver/dir/dir2/file +0 -0
- data/spec/abstract_driver/local_file +0 -1
- data/spec/box_spec.rb +0 -109
- data/spec/box_spec/dir/dir2/file +0 -0
- data/spec/box_spec/local_file +0 -1
- data/spec/config.example.yml +0 -4
- data/spec/config.yml +0 -5
- data/spec/local_driver_spec.rb +0 -9
- data/spec/ssh_driver_spec.rb +0 -15
    
        data/spec/entry_spec.rb
    ADDED
    
    | @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe 'Entry' do
         | 
| 4 | 
            +
              before :each do
         | 
| 5 | 
            +
                @fs = '/'.to_entry_on(Vfs::Storages::HashFs.new)
         | 
| 6 | 
            +
                @path = @fs['/a/b/c']
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
              
         | 
| 9 | 
            +
              it "name" do
         | 
| 10 | 
            +
                @path.name.should == 'c'
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
              
         | 
| 13 | 
            +
              it 'tmp' do
         | 
| 14 | 
            +
                tmp = @fs.tmp
         | 
| 15 | 
            +
                tmp.should be_dir
         | 
| 16 | 
            +
                
         | 
| 17 | 
            +
                tmp = nil
         | 
| 18 | 
            +
                @fs.tmp do |path|
         | 
| 19 | 
            +
                  tmp = path
         | 
| 20 | 
            +
                  tmp.should be_dir
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
                tmp.should_not exist
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            end
         | 
    
        data/spec/file_spec.rb
    ADDED
    
    | @@ -0,0 +1,189 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe 'File' do
         | 
| 4 | 
            +
              before :each do
         | 
| 5 | 
            +
                @fs = '/'.to_entry_on(Vfs::Storages::HashFs.new)
         | 
| 6 | 
            +
                @path = @fs['/a/b/c']
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
              
         | 
| 9 | 
            +
              describe 'existence' do
         | 
| 10 | 
            +
                it "should check only files" do
         | 
| 11 | 
            +
                  @path.should_not exist
         | 
| 12 | 
            +
                  @path.dir.create
         | 
| 13 | 
            +
                  @path.should be_dir
         | 
| 14 | 
            +
                  @path.file.should_not exist
         | 
| 15 | 
            +
                  @path.file.create!
         | 
| 16 | 
            +
                  @path.should be_file
         | 
| 17 | 
            +
                  @path.file.should exist
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
                
         | 
| 21 | 
            +
              describe 'read' do
         | 
| 22 | 
            +
                it 'should raise error if not exist' do    
         | 
| 23 | 
            +
                  -> {@path.read}.should raise_error(Vfs::Error, /not exist/)      
         | 
| 24 | 
            +
                  -> {@path.read{|buff|}}.should raise_error(Vfs::Error, /not exist/)      
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
                
         | 
| 27 | 
            +
                it 'should not raise error in silent mode' do  
         | 
| 28 | 
            +
                  @path.read(bang: false).should == ''     
         | 
| 29 | 
            +
                  data = ""; @path.read(bang: false){|buff| data << buff}; data.should == ''
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
                  
         | 
| 32 | 
            +
                it "reading" do
         | 
| 33 | 
            +
                  @path.write('something')
         | 
| 34 | 
            +
                  
         | 
| 35 | 
            +
                  @path.read.should == 'something'
         | 
| 36 | 
            +
                  @path.read(bang: false).should == 'something'      
         | 
| 37 | 
            +
                  data = ""; @path.read{|buff| data << buff}; data.should == 'something'      
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
                
         | 
| 40 | 
            +
                it 'content' do
         | 
| 41 | 
            +
                  @path.write('something')
         | 
| 42 | 
            +
                  @path.content.should == 'something'
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
              end
         | 
| 45 | 
            +
              
         | 
| 46 | 
            +
              describe 'creation' do
         | 
| 47 | 
            +
                it 'create' do
         | 
| 48 | 
            +
                  file = @path.file
         | 
| 49 | 
            +
                
         | 
| 50 | 
            +
                  file.should_receive(:write).with('', {})
         | 
| 51 | 
            +
                  file.create
         | 
| 52 | 
            +
                
         | 
| 53 | 
            +
                  file.should_receive(:write).with('', override: true)
         | 
| 54 | 
            +
                  file.create!
         | 
| 55 | 
            +
                end
         | 
| 56 | 
            +
                
         | 
| 57 | 
            +
                it 'should be chainable' do
         | 
| 58 | 
            +
                  @path.file.create.should == @path
         | 
| 59 | 
            +
                  @path.file.create!.should == @path
         | 
| 60 | 
            +
                end
         | 
| 61 | 
            +
              end
         | 
| 62 | 
            +
              
         | 
| 63 | 
            +
              describe 'write' do
         | 
| 64 | 
            +
                it 'should create parent dirs if not exists' do
         | 
| 65 | 
            +
                  @path.parent.should_not exist
         | 
| 66 | 
            +
                  @path.write 'something'
         | 
| 67 | 
            +
                  @path.read.should == 'something'
         | 
| 68 | 
            +
                end
         | 
| 69 | 
            +
                
         | 
| 70 | 
            +
                it 'should override existing file if override specified' do
         | 
| 71 | 
            +
                  @path.write 'something'
         | 
| 72 | 
            +
                  @path.should be_file
         | 
| 73 | 
            +
                  -> {@path.write 'another'}.should raise_error(Vfs::Error, /exist/)
         | 
| 74 | 
            +
                  @path.write! 'another'
         | 
| 75 | 
            +
                  @path.read.should == 'another'
         | 
| 76 | 
            +
                end
         | 
| 77 | 
            +
                
         | 
| 78 | 
            +
                it 'should override existing dir if override specified' do
         | 
| 79 | 
            +
                  @path.dir.create
         | 
| 80 | 
            +
                  @path.should be_dir
         | 
| 81 | 
            +
                  -> {@path.write 'another'}.should raise_error(Vfs::Error, /exist/)
         | 
| 82 | 
            +
                  @path.write! 'another'
         | 
| 83 | 
            +
                  @path.read.should == 'another'
         | 
| 84 | 
            +
                end
         | 
| 85 | 
            +
                
         | 
| 86 | 
            +
                it 'writing' do
         | 
| 87 | 
            +
                  @path.write 'something'
         | 
| 88 | 
            +
                  @path.read.should == 'something'
         | 
| 89 | 
            +
             | 
| 90 | 
            +
                  @path.write! do |writer|
         | 
| 91 | 
            +
                    writer.call 'another'
         | 
| 92 | 
            +
                  end
         | 
| 93 | 
            +
                  @path.read.should == 'another'
         | 
| 94 | 
            +
                end
         | 
| 95 | 
            +
                
         | 
| 96 | 
            +
                it 'append' do
         | 
| 97 | 
            +
                  file = @path.file
         | 
| 98 | 
            +
                  file.should_receive(:write).with('something', append: true)
         | 
| 99 | 
            +
                  file.append 'something'
         | 
| 100 | 
            +
                end
         | 
| 101 | 
            +
              end
         | 
| 102 | 
            +
              
         | 
| 103 | 
            +
              it 'update' do
         | 
| 104 | 
            +
                @path.write 'something'
         | 
| 105 | 
            +
                @path.update do |data| 
         | 
| 106 | 
            +
                  data.should == 'something'
         | 
| 107 | 
            +
                  'another'
         | 
| 108 | 
            +
                end
         | 
| 109 | 
            +
                @path.read.should == 'another'
         | 
| 110 | 
            +
              end
         | 
| 111 | 
            +
              
         | 
| 112 | 
            +
              describe 'copying' do
         | 
| 113 | 
            +
                before :each do 
         | 
| 114 | 
            +
                  @from = @path.file
         | 
| 115 | 
            +
                  @from.write('something')
         | 
| 116 | 
            +
                end
         | 
| 117 | 
            +
                
         | 
| 118 | 
            +
                it 'should not copy to itself' do
         | 
| 119 | 
            +
                  -> {@from.copy_to @from}.should raise_error(Vfs::Error, /itself/)
         | 
| 120 | 
            +
                end
         | 
| 121 | 
            +
                
         | 
| 122 | 
            +
                def check_copy_for to
         | 
| 123 | 
            +
                  target = @from.copy_to to
         | 
| 124 | 
            +
                  target.read.should == 'something'
         | 
| 125 | 
            +
                  target.should == to
         | 
| 126 | 
            +
                  
         | 
| 127 | 
            +
                  @from.write! 'another'
         | 
| 128 | 
            +
                  -> {@from.copy_to to}.should raise_error(Vfs::Error, /exist/)
         | 
| 129 | 
            +
                  target = @from.copy_to! to
         | 
| 130 | 
            +
                  target.read.should == 'another'
         | 
| 131 | 
            +
                  target.should == to
         | 
| 132 | 
            +
                end
         | 
| 133 | 
            +
                
         | 
| 134 | 
            +
                it 'should copy to file (and overwrite if forced)' do
         | 
| 135 | 
            +
                  check_copy_for @fs.file('to')
         | 
| 136 | 
            +
                end
         | 
| 137 | 
            +
                
         | 
| 138 | 
            +
                it 'should copy to dir (and overwrite if forced)' do
         | 
| 139 | 
            +
                  check_copy_for @fs.dir("to")
         | 
| 140 | 
            +
                end
         | 
| 141 | 
            +
                
         | 
| 142 | 
            +
                it 'should copy to UniversalEntry (and overwrite if forced)' do
         | 
| 143 | 
            +
                  check_copy_for @fs.entry('to')
         | 
| 144 | 
            +
                end
         | 
| 145 | 
            +
                
         | 
| 146 | 
            +
                it 'should be chainable' do
         | 
| 147 | 
            +
                  to = @fs['to']
         | 
| 148 | 
            +
                  @from.copy_to(to).should == to
         | 
| 149 | 
            +
                  @from.copy_to!(to).should == to
         | 
| 150 | 
            +
                end
         | 
| 151 | 
            +
              end
         | 
| 152 | 
            +
              
         | 
| 153 | 
            +
              describe 'moving' do
         | 
| 154 | 
            +
                it 'move_to' do
         | 
| 155 | 
            +
                  from, to = @path.file('from'), @path.file('to')
         | 
| 156 | 
            +
                  from.should_receive(:copy_to).with(to, {})
         | 
| 157 | 
            +
                  from.should_receive(:destroy).with({})
         | 
| 158 | 
            +
                  from.move_to to
         | 
| 159 | 
            +
                
         | 
| 160 | 
            +
                  from.should_receive(:move_to).with(to, override: true)
         | 
| 161 | 
            +
                  from.move_to! to
         | 
| 162 | 
            +
                end
         | 
| 163 | 
            +
                
         | 
| 164 | 
            +
                it 'should be chainable' do
         | 
| 165 | 
            +
                  from, to = @path.file('from').create, @path.file('to')
         | 
| 166 | 
            +
                  from.move_to(to).should == to
         | 
| 167 | 
            +
                  from.create
         | 
| 168 | 
            +
                  from.move_to!(to).should == to
         | 
| 169 | 
            +
                end
         | 
| 170 | 
            +
              end
         | 
| 171 | 
            +
              
         | 
| 172 | 
            +
              describe 'destroying' do
         | 
| 173 | 
            +
                it "should raise error if it's trying to destroy a dir (unless force specified)" do
         | 
| 174 | 
            +
                  @path.dir.create
         | 
| 175 | 
            +
                  -> {@path.file.destroy}.should raise_error(Vfs::Error, /can't destroy Dir/)
         | 
| 176 | 
            +
                  @path.file.destroy!
         | 
| 177 | 
            +
                  @path.entry.should_not exist
         | 
| 178 | 
            +
                end
         | 
| 179 | 
            +
                
         | 
| 180 | 
            +
                it "shouldn't raise if file not exist" do
         | 
| 181 | 
            +
                  @path.file.destroy
         | 
| 182 | 
            +
                end
         | 
| 183 | 
            +
                
         | 
| 184 | 
            +
                it 'should be chainable' do
         | 
| 185 | 
            +
                  @path.file.destroy.should == @path
         | 
| 186 | 
            +
                  @path.file.destroy!.should == @path
         | 
| 187 | 
            +
                end
         | 
| 188 | 
            +
              end
         | 
| 189 | 
            +
            end
         | 
    
        data/spec/path_spec.rb
    ADDED
    
    | @@ -0,0 +1,121 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe "Path" do
         | 
| 4 | 
            +
              before(:all){Path = Vfs::Path}
         | 
| 5 | 
            +
              after(:all){remove_constants :Path}
         | 
| 6 | 
            +
              
         | 
| 7 | 
            +
              it 'validations' do
         | 
| 8 | 
            +
                %w(
         | 
| 9 | 
            +
                  /
         | 
| 10 | 
            +
                  /a 
         | 
| 11 | 
            +
                  /a/b/c 
         | 
| 12 | 
            +
                  /a/../c      
         | 
| 13 | 
            +
                  /a/...      
         | 
| 14 | 
            +
                  ~/a   
         | 
| 15 | 
            +
                  ./a   
         | 
| 16 | 
            +
                ).each{|path| Path.should be_valid(path)}    
         | 
| 17 | 
            +
                
         | 
| 18 | 
            +
                special = ['']
         | 
| 19 | 
            +
                (%w(      
         | 
| 20 | 
            +
                  /a/~/c
         | 
| 21 | 
            +
                  /a/./c 
         | 
| 22 | 
            +
                  /a/
         | 
| 23 | 
            +
                  ~/
         | 
| 24 | 
            +
                  ./
         | 
| 25 | 
            +
                ) + special).each{|path| Path.should_not be_valid(path)}
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
              
         | 
| 28 | 
            +
              # it 'tmp', focus: true do
         | 
| 29 | 
            +
              #   (Path.new('.') + '..').should == './..'
         | 
| 30 | 
            +
              # end
         | 
| 31 | 
            +
              
         | 
| 32 | 
            +
              it 'normalize' do
         | 
| 33 | 
            +
                special = ['/a/../..', nil]
         | 
| 34 | 
            +
                (%w(
         | 
| 35 | 
            +
                  /a        /a
         | 
| 36 | 
            +
                  ~/a       ~/a
         | 
| 37 | 
            +
                  ./a       ./a
         | 
| 38 | 
            +
                  /a/../c   /c
         | 
| 39 | 
            +
                  /         /
         | 
| 40 | 
            +
                  ~         ~
         | 
| 41 | 
            +
                  .         .
         | 
| 42 | 
            +
                ) + special).each_slice(2) do |path, normalized_path| 
         | 
| 43 | 
            +
                  Path.normalize(path).should == normalized_path
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
              end
         | 
| 46 | 
            +
              
         | 
| 47 | 
            +
              it "+" do
         | 
| 48 | 
            +
                special = [
         | 
| 49 | 
            +
                  '/a', '../..', nil,
         | 
| 50 | 
            +
                  '/',  '..',    nil,     
         | 
| 51 | 
            +
                  '.',  '..',    './..',     
         | 
| 52 | 
            +
                ]
         | 
| 53 | 
            +
                (%w(
         | 
| 54 | 
            +
                  /         /a        /a
         | 
| 55 | 
            +
                  /         ~/a       ~/a
         | 
| 56 | 
            +
                  /         ./a       ./a
         | 
| 57 | 
            +
                  /a        b/c       /a/b/c
         | 
| 58 | 
            +
                  /a/b/c    ../d      /a/b/d
         | 
| 59 | 
            +
                ) + special).each_slice(3) do |base, path, sum|
         | 
| 60 | 
            +
                  (Path.new(base) + path).should == sum
         | 
| 61 | 
            +
                end
         | 
| 62 | 
            +
              end
         | 
| 63 | 
            +
              
         | 
| 64 | 
            +
              it 'parent' do
         | 
| 65 | 
            +
                special = [
         | 
| 66 | 
            +
                  '/', nil,
         | 
| 67 | 
            +
                  '~', nil,
         | 
| 68 | 
            +
                  '.', './..'
         | 
| 69 | 
            +
                ]
         | 
| 70 | 
            +
                (%w(
         | 
| 71 | 
            +
                  /a/b/c    /a/b   
         | 
| 72 | 
            +
                ) + special).each_slice(2) do |path, parent|
         | 
| 73 | 
            +
                  Path.new(path).parent.should == parent
         | 
| 74 | 
            +
                end
         | 
| 75 | 
            +
              end
         | 
| 76 | 
            +
              
         | 
| 77 | 
            +
              it "should raise error if current dir outside of root" do
         | 
| 78 | 
            +
                -> {Path.new('/a/../..')}.should raise_error(/outside.*root/)
         | 
| 79 | 
            +
              end
         | 
| 80 | 
            +
              
         | 
| 81 | 
            +
              it "should guess if current dir is a dir" do    
         | 
| 82 | 
            +
                [
         | 
| 83 | 
            +
                  '/a',      false,
         | 
| 84 | 
            +
                  '/',       true,
         | 
| 85 | 
            +
                  '~',       true,
         | 
| 86 | 
            +
                  '.',       true,
         | 
| 87 | 
            +
                  '/a/..',   true,
         | 
| 88 | 
            +
                  '/a/../b', false,
         | 
| 89 | 
            +
                ].each_slice 2 do |path, result|
         | 
| 90 | 
            +
                  Path.new(path).probably_dir?.should == result
         | 
| 91 | 
            +
                end
         | 
| 92 | 
            +
                
         | 
| 93 | 
            +
                path = Path.new('/a/b/c')    
         | 
| 94 | 
            +
                [
         | 
| 95 | 
            +
                  path,           false,
         | 
| 96 | 
            +
                  (path + '..'),  true,
         | 
| 97 | 
            +
                  path.parent,    true,
         | 
| 98 | 
            +
                  
         | 
| 99 | 
            +
                  (path + '/'),   true,
         | 
| 100 | 
            +
                  (path + '/a'),  false,      
         | 
| 101 | 
            +
                ].each_slice 2 do |path, result|
         | 
| 102 | 
            +
                  path.probably_dir?.should == result
         | 
| 103 | 
            +
                end
         | 
| 104 | 
            +
              end
         | 
| 105 | 
            +
              
         | 
| 106 | 
            +
              it 'name' do
         | 
| 107 | 
            +
                %w(
         | 
| 108 | 
            +
                  /a        a
         | 
| 109 | 
            +
                  /a/b/c    c
         | 
| 110 | 
            +
                  /         /
         | 
| 111 | 
            +
                  ~         ~      
         | 
| 112 | 
            +
                  .         .
         | 
| 113 | 
            +
                ).each_slice 2 do |path, name|
         | 
| 114 | 
            +
                  Path.new(path).name.should == name
         | 
| 115 | 
            +
                end
         | 
| 116 | 
            +
              end
         | 
| 117 | 
            +
              
         | 
| 118 | 
            +
              it 'to_s' do
         | 
| 119 | 
            +
                Path.new.to_s.class.should == String
         | 
| 120 | 
            +
              end  
         | 
| 121 | 
            +
            end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -1,11 +1,4 @@ | |
| 1 1 | 
             
            require 'rspec_ext'
         | 
| 2 | 
            -
            require ' | 
| 2 | 
            +
            require 'ruby_ext'
         | 
| 3 3 |  | 
| 4 | 
            -
             | 
| 5 | 
            -
              def config
         | 
| 6 | 
            -
                dir = File.dirname __FILE__
         | 
| 7 | 
            -
                config_file_path = "#{dir}/config.yml"
         | 
| 8 | 
            -
                raise "no config '#{config_file_path}'!" unless File.exist? config_file_path
         | 
| 9 | 
            -
                @config ||= YAML.load_file config_file_path
         | 
| 10 | 
            -
              end
         | 
| 11 | 
            -
            end
         | 
| 4 | 
            +
            require 'vfs'
         | 
| @@ -0,0 +1,42 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe 'UniversalEntry' do
         | 
| 4 | 
            +
              before :each do
         | 
| 5 | 
            +
                @fs = '/'.to_entry_on(Vfs::Storages::HashFs.new)
         | 
| 6 | 
            +
                @path = @fs['/a/b/c']
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
              
         | 
| 9 | 
            +
              describe 'existence' do
         | 
| 10 | 
            +
                it "should check both files and dirs" do
         | 
| 11 | 
            +
                  @path.should_not exist
         | 
| 12 | 
            +
                  @path.dir.create
         | 
| 13 | 
            +
                  @path.should be_dir      
         | 
| 14 | 
            +
                  @path.should exist
         | 
| 15 | 
            +
                  
         | 
| 16 | 
            +
                  @path.file.create!
         | 
| 17 | 
            +
                  @path.should be_file
         | 
| 18 | 
            +
                  @path.should exist
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
              
         | 
| 22 | 
            +
              describe 'destroying' do
         | 
| 23 | 
            +
                it "should destroy both files and dirs" do
         | 
| 24 | 
            +
                  @path.dir.create
         | 
| 25 | 
            +
                  @path.should be_dir
         | 
| 26 | 
            +
                  @path.destroy
         | 
| 27 | 
            +
                  @path.should_not exist      
         | 
| 28 | 
            +
                  
         | 
| 29 | 
            +
                  @path.file.create
         | 
| 30 | 
            +
                  @path.should be_file
         | 
| 31 | 
            +
                  @path.destroy
         | 
| 32 | 
            +
                  @path.should_not exist
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
                
         | 
| 35 | 
            +
                it "shouldn't raise if file not exist" do
         | 
| 36 | 
            +
                  @path.destroy
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
              
         | 
| 40 | 
            +
              describe 'copy_to'
         | 
| 41 | 
            +
              describe 'move_to'
         | 
| 42 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version | |
| 4 4 | 
             
              prerelease: false
         | 
| 5 5 | 
             
              segments: 
         | 
| 6 6 | 
             
              - 0
         | 
| 7 | 
            +
              - 1
         | 
| 7 8 | 
             
              - 0
         | 
| 8 | 
            -
               | 
| 9 | 
            -
              version: 0.0.4
         | 
| 9 | 
            +
              version: 0.1.0
         | 
| 10 10 | 
             
            platform: ruby
         | 
| 11 11 | 
             
            authors: 
         | 
| 12 12 | 
             
            - Alexey Petrushin
         | 
| @@ -14,7 +14,7 @@ autorequire: | |
| 14 14 | 
             
            bindir: bin
         | 
| 15 15 | 
             
            cert_chain: []
         | 
| 16 16 |  | 
| 17 | 
            -
            date: 2011-02- | 
| 17 | 
            +
            date: 2011-02-08 00:00:00 +03:00
         | 
| 18 18 | 
             
            default_executable: 
         | 
| 19 19 | 
             
            dependencies: []
         | 
| 20 20 |  | 
| @@ -29,26 +29,28 @@ extra_rdoc_files: [] | |
| 29 29 | 
             
            files: 
         | 
| 30 30 | 
             
            - Rakefile
         | 
| 31 31 | 
             
            - readme.md
         | 
| 32 | 
            -
            - lib/ | 
| 33 | 
            -
            - lib/ | 
| 34 | 
            -
            - lib/ | 
| 35 | 
            -
            - lib/ | 
| 36 | 
            -
            - lib/ | 
| 37 | 
            -
            - lib/ | 
| 38 | 
            -
            - lib/ | 
| 39 | 
            -
            - lib/ | 
| 40 | 
            -
            - lib/ | 
| 41 | 
            -
            -  | 
| 42 | 
            -
            -  | 
| 43 | 
            -
            -  | 
| 44 | 
            -
            -  | 
| 45 | 
            -
            - spec/ | 
| 46 | 
            -
            - spec/ | 
| 47 | 
            -
            - spec/ | 
| 48 | 
            -
            - spec/ | 
| 49 | 
            -
            - spec/ | 
| 32 | 
            +
            - lib/vfs/entries/dir.rb
         | 
| 33 | 
            +
            - lib/vfs/entries/entry.rb
         | 
| 34 | 
            +
            - lib/vfs/entries/file.rb
         | 
| 35 | 
            +
            - lib/vfs/entries/universal_entry.rb
         | 
| 36 | 
            +
            - lib/vfs/entry_proxy.rb
         | 
| 37 | 
            +
            - lib/vfs/error.rb
         | 
| 38 | 
            +
            - lib/vfs/integration/string.rb
         | 
| 39 | 
            +
            - lib/vfs/path.rb
         | 
| 40 | 
            +
            - lib/vfs/storages/hash_fs.rb
         | 
| 41 | 
            +
            - lib/vfs/storages/local.rb
         | 
| 42 | 
            +
            - lib/vfs/storages/specification.rb
         | 
| 43 | 
            +
            - lib/vfs/support.rb
         | 
| 44 | 
            +
            - lib/vfs.rb
         | 
| 45 | 
            +
            - spec/container_spec.rb
         | 
| 46 | 
            +
            - spec/dir_spec.rb
         | 
| 47 | 
            +
            - spec/entry_spec.rb
         | 
| 48 | 
            +
            - spec/file_spec.rb
         | 
| 49 | 
            +
            - spec/path_spec.rb
         | 
| 50 50 | 
             
            - spec/spec_helper.rb
         | 
| 51 | 
            -
            - spec/ | 
| 51 | 
            +
            - spec/storages/hash_fs_spec.rb
         | 
| 52 | 
            +
            - spec/storages/local_spec.rb
         | 
| 53 | 
            +
            - spec/universal_entry_spec.rb
         | 
| 52 54 | 
             
            has_rdoc: true
         | 
| 53 55 | 
             
            homepage: http://github.com/alexeypetrushin/vfs
         | 
| 54 56 | 
             
            licenses: []
         | 
| @@ -80,6 +82,6 @@ rubyforge_project: | |
| 80 82 | 
             
            rubygems_version: 1.3.7
         | 
| 81 83 | 
             
            signing_key: 
         | 
| 82 84 | 
             
            specification_version: 3
         | 
| 83 | 
            -
            summary:  | 
| 85 | 
            +
            summary: Virtual File System
         | 
| 84 86 | 
             
            test_files: []
         | 
| 85 87 |  |