borrower 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/borrower/manifest.rb +20 -9
- data/lib/borrower/merge.rb +1 -1
- data/lib/borrower/path.rb +7 -7
- data/lib/borrower/version.rb +1 -1
- data/spec/borrower/manifest_spec.rb +9 -0
- data/spec/borrower_spec.rb +12 -0
- metadata +1 -1
data/lib/borrower/manifest.rb
CHANGED
@@ -7,21 +7,32 @@ module Borrower
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def find file
|
10
|
-
|
11
|
-
return path if path
|
10
|
+
return file if Path.remote?(file) || Path.exists?(file)
|
12
11
|
|
13
|
-
|
14
|
-
|
15
|
-
Dir[File.join( dir, '*' )].each do |possibility|
|
16
|
-
matches << possibility if possibility.match( file )
|
17
|
-
end
|
18
|
-
end
|
12
|
+
path = check_for_file_in_manifest_files(file) || false
|
13
|
+
return path if path
|
19
14
|
|
20
|
-
path =
|
15
|
+
path = check_for_file_in_manifest_directories(file) || false
|
21
16
|
return path if path
|
22
17
|
|
23
18
|
raise "Could not file #{file}"
|
24
19
|
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def check_for_file_in_manifest_files file
|
24
|
+
@_manifest.files.fetch(file) { false }
|
25
|
+
end
|
26
|
+
|
27
|
+
def check_for_file_in_manifest_directories file
|
28
|
+
matches = []
|
29
|
+
@_manifest.directories.each do |dir|
|
30
|
+
Dir[File.join( dir, '*' )].each do |possibility|
|
31
|
+
matches << possibility if possibility.match( file )
|
32
|
+
end
|
33
|
+
end
|
34
|
+
path = matches.sort { |a,b| a.length <=> b.length }.first
|
35
|
+
end
|
25
36
|
end
|
26
37
|
|
27
38
|
class Manifest
|
data/lib/borrower/merge.rb
CHANGED
data/lib/borrower/path.rb
CHANGED
@@ -6,15 +6,15 @@ module Borrower
|
|
6
6
|
# @param path [String]
|
7
7
|
# @return [String] the contents
|
8
8
|
def contents path
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
return IO.read(path)
|
14
|
-
end
|
9
|
+
path = Borrower.find(path)
|
10
|
+
|
11
|
+
if remote?(path) && exists?(path)
|
12
|
+
return fetch_from_remote(path).body
|
15
13
|
else
|
16
|
-
|
14
|
+
return IO.read(path)
|
17
15
|
end
|
16
|
+
|
17
|
+
raise "nothing exists at the provided path '#{path}'"
|
18
18
|
end
|
19
19
|
|
20
20
|
# check if the file exists for borrowing
|
data/lib/borrower/version.rb
CHANGED
@@ -6,6 +6,7 @@ describe Borrower::Manifest do
|
|
6
6
|
given_files [ "baz.txt", "files/baz.txt", "files/woo.txt", "files/foo.txt" ]
|
7
7
|
Borrower.manifest do |m|
|
8
8
|
m.file "me", File.join( TMP, "test.txt" )
|
9
|
+
m.file "remote", "https://gist.github.com/stevenosloan/5578606/raw/97ab1305184bdeac33472f9f1fcc1c9e278a1bb3/dummy.txt"
|
9
10
|
m.dir File.join( TMP )
|
10
11
|
m.dir File.join( TMP, 'files' )
|
11
12
|
end
|
@@ -19,6 +20,14 @@ describe Borrower::Manifest do
|
|
19
20
|
Borrower.find("me").should == File.join( TMP, "test.txt" )
|
20
21
|
end
|
21
22
|
|
23
|
+
it "returns remote paths if given fully resolved" do
|
24
|
+
Borrower.find("http://google.com").should == "http://google.com"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "finds named remote files" do
|
28
|
+
Borrower.find("remote").should == "https://gist.github.com/stevenosloan/5578606/raw/97ab1305184bdeac33472f9f1fcc1c9e278a1bb3/dummy.txt"
|
29
|
+
end
|
30
|
+
|
22
31
|
it "creates list of files from directories" do
|
23
32
|
Borrower.find("baz.txt").should == File.join( TMP, "baz.txt" )
|
24
33
|
Borrower.find("files/baz.txt").should == File.join( TMP, "files/baz.txt" )
|
data/spec/borrower_spec.rb
CHANGED
@@ -26,6 +26,18 @@ describe Borrower do
|
|
26
26
|
Borrower::Transport.take( file_destination ).should == "Hello I'm a file"
|
27
27
|
end
|
28
28
|
|
29
|
+
it "borrows named local and remote files" do
|
30
|
+
Borrower.manifest do |m|
|
31
|
+
m.file "local", local_file
|
32
|
+
m.file "remote", remote_file
|
33
|
+
end
|
34
|
+
borrow "local", to: file_destination
|
35
|
+
borrow "remote", to: File.join( TMP, "remote.txt" )
|
36
|
+
|
37
|
+
Borrower::Transport.take( file_destination ).should == "Hi I'm a file"
|
38
|
+
Borrower::Transport.take( File.join( TMP, "remote.txt" ) ).should == "Hello I'm a file"
|
39
|
+
end
|
40
|
+
|
29
41
|
it "merges files if merge is set to true" do
|
30
42
|
borrow merge_file, to: file_destination, merge: true
|
31
43
|
Borrower::Transport.take( file_destination ).should == "Hi I'm a file"
|