borrower 0.1.0 → 0.1.1
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/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"
|