net-ftp-list 0.9 → 1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/net/ftp/list/unix.rb +7 -1
- data/test/test_net_ftp_list_unix.rb +20 -3
- metadata +2 -2
data/Rakefile
CHANGED
data/lib/net/ftp/list/unix.rb
CHANGED
@@ -47,7 +47,13 @@ module Net
|
|
47
47
|
|
48
48
|
# TODO: Permissions, users, groups, date/time.
|
49
49
|
|
50
|
-
@basename = match[21].
|
50
|
+
@basename = match[21].strip
|
51
|
+
|
52
|
+
# filenames with spaces will end up in the last match
|
53
|
+
@basename += match[22] unless match[22].nil?
|
54
|
+
|
55
|
+
# strip the symlink stuff we don't care about
|
56
|
+
@basename.sub!(/\s+\->.+$/, '') if @symlink
|
51
57
|
end
|
52
58
|
end
|
53
59
|
|
@@ -4,15 +4,19 @@ require 'net/ftp/list'
|
|
4
4
|
class TestNetFTPListUnix < Test::Unit::TestCase
|
5
5
|
|
6
6
|
def setup
|
7
|
-
@dir = Net::FTP::List.parse
|
8
|
-
@file = Net::FTP::List.parse
|
9
|
-
@other_dir = Net::FTP::List.parse
|
7
|
+
@dir = Net::FTP::List.parse 'drwxr-xr-x 4 user group 4096 Dec 10 20:23 etc'
|
8
|
+
@file = Net::FTP::List.parse '-rw-r--r-- 1 root other 531 Jan 29 03:26 README'
|
9
|
+
@other_dir = Net::FTP::List.parse 'drwxr-xr-x 8 1791 600 4096 Mar 11 07:57 forums'
|
10
|
+
@spaces = Net::FTP::List.parse 'drwxrwxr-x 2 danial danial 72 May 23 12:52 spaces suck'
|
11
|
+
@symlink = Net::FTP::List.parse 'lrwxrwxrwx 1 danial danial 4 Apr 30 15:26 bar -> /etc'
|
10
12
|
end
|
11
13
|
|
12
14
|
def test_parse_new
|
13
15
|
assert_instance_of Net::FTP::List::Unix, @dir, 'LIST unixish directory'
|
14
16
|
assert_instance_of Net::FTP::List::Unix, @file, 'LIST unixish file'
|
15
17
|
assert_instance_of Net::FTP::List::Unix, @other_dir, 'LIST unixish directory'
|
18
|
+
assert_instance_of Net::FTP::List::Unix, @spaces, 'LIST unixish directory with spaces'
|
19
|
+
assert_instance_of Net::FTP::List::Unix, @symlink, 'LIST unixish symlink'
|
16
20
|
end
|
17
21
|
|
18
22
|
def test_rubbish_lines
|
@@ -29,6 +33,19 @@ class TestNetFTPListUnix < Test::Unit::TestCase
|
|
29
33
|
assert !@other_dir.file?
|
30
34
|
end
|
31
35
|
|
36
|
+
def test_ruby_unix_like_symlink
|
37
|
+
assert_equal 'bar', @symlink.basename
|
38
|
+
assert @symlink.symlink?
|
39
|
+
assert !@symlink.dir?
|
40
|
+
assert !@symlink.file?
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_spaces_in_unix_dir
|
44
|
+
assert_equal 'spaces suck', @spaces.basename
|
45
|
+
assert @spaces.dir?
|
46
|
+
assert !@spaces.file?
|
47
|
+
end
|
48
|
+
|
32
49
|
def test_ruby_unix_like_file
|
33
50
|
assert_equal 'README', @file.basename
|
34
51
|
assert @file.file?
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: net-ftp-list
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: "0
|
7
|
-
date: 2008-
|
6
|
+
version: "1.0"
|
7
|
+
date: 2008-05-23 00:00:00 +10:00
|
8
8
|
summary: Parse FTP LIST command output.
|
9
9
|
require_paths:
|
10
10
|
- lib
|