net-ftp-list 3.2.5 → 3.2.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1 @@
1
+ 1.8.7-p371
data/Rakefile CHANGED
@@ -37,7 +37,7 @@ end
37
37
 
38
38
  task :default => :test
39
39
 
40
- require 'rake/rdoctask'
40
+ require 'rdoc/task'
41
41
  Rake::RDocTask.new do |rdoc|
42
42
  if File.exist?('VERSION.yml')
43
43
  config = YAML.load(File.read('VERSION.yml'))
@@ -1,5 +1,5 @@
1
- ---
1
+ ---
2
2
  :major: 3
3
- :minor: 2
4
- :patch: 5
5
3
  :build:
4
+ :minor: 2
5
+ :patch: 6
@@ -8,7 +8,7 @@ class Net::FTP::List::Entry
8
8
  # that can be used on the object. By default just takes and set the raw list entry.
9
9
  # Net::FTP::List.parse(raw_list_string) # => Net::FTP::List::Parser instance.
10
10
  def initialize(raw_ls_line, optional_attributes = {}) #:nodoc:
11
- @raw = raw_ls_line.force_encoding('utf-8')
11
+ @raw = raw_ls_line.respond_to?(:force_encoding) ? raw_ls_line.force_encoding('utf-8') : raw_ls_line
12
12
  optional_attributes.each_pair do |key, value|
13
13
  raise ArgumentError, "#{key} is not supported" unless ALLOWED_ATTRIBUTES.include?(key)
14
14
  instance_variable_set("@#{key}", value.respond_to?(:force_encoding) ? value.force_encoding('utf-8') : value)
@@ -44,19 +44,26 @@ class Net::FTP::List::Unix < Net::FTP::List::Parser
44
44
 
45
45
  # TODO: Permissions, users, groups, date/time.
46
46
  filesize = match[18].to_i
47
- mtime_string = "#{match[19]} #{match[20]}"
48
- mtime = Time.parse(mtime_string)
47
+
48
+ mtime_month_and_day = match[19]
49
+ mtime_time_or_year = match[20]
49
50
 
50
51
  # Unix mtimes specify a 4 digit year unless the data is within the past 180
51
52
  # days or so. Future dates always specify a 4 digit year.
52
- #
53
- # Since the above #parse call fills in today's date for missing date
54
- # components, it can sometimes get the year wrong. To fix this, we make
55
- # sure all mtimes without a 4 digit year are in the past.
56
- if match[20] !~ /\d{4}/ && mtime > Time.now
57
- mtime = Time.parse("#{mtime_string} #{mtime.year - 1}")
53
+ # If the parsed date, with today's year, could be in the future, then
54
+ # the date must be for the previous year
55
+ mtime_string = if mtime_time_or_year.match(/^[0-9][0-9]:[0-9][0-9]$/)
56
+ if Time.parse("#{mtime_month_and_day} #{Time.now.year}") > Time.now
57
+ "#{mtime_month_and_day} #{mtime_time_or_year} #{Time.now.year - 1}"
58
+ else
59
+ "#{mtime_month_and_day} #{mtime_time_or_year} #{Time.now.year}"
60
+ end
61
+ elsif mtime_time_or_year.match(/^[0-9][0-9][0-9][0-9]$/)
62
+ "#{mtime_month_and_day} #{mtime_time_or_year}"
58
63
  end
59
64
 
65
+ mtime = Time.parse(mtime_string)
66
+
60
67
  basename = match[21].strip
61
68
 
62
69
  # filenames with spaces will end up in the last match
@@ -4,17 +4,18 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = "net-ftp-list"
8
- s.version = "3.2.5"
7
+ s.name = %q{net-ftp-list}
8
+ s.version = "3.2.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Stateless Systems"]
12
- s.date = "2012-09-15"
13
- s.email = "enquiries@statelesssystems.com"
12
+ s.date = %q{2013-08-27}
13
+ s.email = %q{enquiries@statelesssystems.com}
14
14
  s.extra_rdoc_files = [
15
15
  "README.txt"
16
16
  ]
17
17
  s.files = [
18
+ ".ruby-version",
18
19
  "README.txt",
19
20
  "Rakefile",
20
21
  "VERSION.yml",
@@ -34,10 +35,10 @@ Gem::Specification.new do |s|
34
35
  "test/test_net_ftp_list_rumpus.rb",
35
36
  "test/test_net_ftp_list_unix.rb"
36
37
  ]
37
- s.homepage = "http://github.com/stateless-systems/net-ftp-list"
38
+ s.homepage = %q{http://github.com/stateless-systems/net-ftp-list}
38
39
  s.require_paths = ["lib"]
39
- s.rubygems_version = "1.8.23"
40
- s.summary = "Parse FTP LIST command output."
40
+ s.rubygems_version = %q{1.6.2}
41
+ s.summary = %q{Parse FTP LIST command output.}
41
42
 
42
43
  if s.respond_to? :specification_version then
43
44
  s.specification_version = 3
@@ -14,6 +14,7 @@ class TestNetFTPListUnix < Test::Unit::TestCase
14
14
  @socket_dev = Net::FTP::List.parse 'srw-rw-rw- 1 root root 0 Aug 20 14:15 log' rescue nil
15
15
  @pipe_dev = Net::FTP::List.parse 'prw-r----- 1 root adm 0 Nov 22 10:30 xconsole' rescue nil
16
16
  @file_no_inodes = Net::FTP::List.parse '-rw-r--r-- foo@localhost foo@localhost 6034 May 14 23:13 index.html' rescue nil
17
+ @file_today = Net::FTP::List.parse 'crw-rw-rw- 1 root root 1, 3 Aug 16 14:28 today.txt' rescue nil
17
18
  end
18
19
 
19
20
  def test_parse_new
@@ -50,32 +51,40 @@ class TestNetFTPListUnix < Test::Unit::TestCase
50
51
 
51
52
  # mtimes in the past, same year.
52
53
  def test_ruby_unix_like_date_past_same_year
53
- Time.time_travel(Time.new(2009, 1, 1)) do
54
- assert_equal Time.new(2009, 1, 1), Net::FTP::List.parse(@dir.raw).mtime
54
+
55
+ Time.time_travel(Time.local(2009, 1, 1)) do
56
+ assert_equal Time.local(2009, 1, 1), Net::FTP::List.parse(@dir.raw).mtime
55
57
  end
56
- Time.time_travel(Time.new(2008, 4, 1)) do
57
- assert_equal Time.new(2008, 3, 11, 7, 57), Net::FTP::List.parse(@other_dir.raw).mtime
58
+ Time.time_travel(Time.local(2008, 4, 1)) do
59
+ assert_equal Time.local(2008, 3, 11, 7, 57), Net::FTP::List.parse(@other_dir.raw).mtime
58
60
  end
59
61
  end
60
62
 
61
63
  # mtimes in the past, previous year
62
64
  def test_ruby_unix_like_date_past_previous_year
63
- Time.time_travel(Time.new(2008, 2, 4)) do
64
- assert_equal Time.new(2007, 10, 30, 15, 26), Net::FTP::List.parse(@symlink.raw).mtime
65
+ Time.time_travel(Time.local(2008, 2, 4)) do
66
+ assert_equal Time.local(2007, 10, 30, 15, 26), Net::FTP::List.parse(@symlink.raw).mtime
65
67
  end
66
68
  end
67
69
 
68
70
  # mtime in the future.
69
71
  def test_ruby_unix_like_date_future
70
- Time.time_travel(Time.new(2006, 3, 1)) do
71
- assert_equal Time.new(2006, 4, 13), Net::FTP::List.parse(@char_dev.raw).mtime
72
+ Time.time_travel(Time.local(2006, 3, 1)) do
73
+ assert_equal Time.local(2006, 4, 13), Net::FTP::List.parse(@char_dev.raw).mtime
72
74
  end
73
75
  end
74
76
 
75
77
  # Parsed during a leap year.
76
78
  def test_ruby_unix_like_date_leap_year
77
- Time.time_travel(Time.new(2012, 1, 2)) do
78
- assert_equal Time.new(2011, 10, 30, 15, 26), Net::FTP::List.parse(@symlink.raw).mtime
79
+ Time.time_travel(Time.local(2012, 1, 2)) do
80
+ assert_equal Time.local(2011, 10, 30, 15, 26), Net::FTP::List.parse(@symlink.raw).mtime
81
+ end
82
+ end
83
+
84
+ # mtimes today, same year.
85
+ def test_ruby_unix_like_date_today_same_year
86
+ Time.time_travel(Time.local(2013, 8, 16)) do
87
+ assert_equal Time.local(2013, 8, 16, 14, 28), Net::FTP::List.parse(@file_today.raw).mtime
79
88
  end
80
89
  end
81
90
 
metadata CHANGED
@@ -1,23 +1,34 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: net-ftp-list
3
- version: !ruby/object:Gem::Version
4
- version: 3.2.5
3
+ version: !ruby/object:Gem::Version
4
+ hash: 3
5
5
  prerelease:
6
+ segments:
7
+ - 3
8
+ - 2
9
+ - 6
10
+ version: 3.2.6
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Stateless Systems
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-09-15 00:00:00.000000000 Z
17
+
18
+ date: 2013-08-27 00:00:00 +10:00
19
+ default_executable:
13
20
  dependencies: []
21
+
14
22
  description:
15
23
  email: enquiries@statelesssystems.com
16
24
  executables: []
25
+
17
26
  extensions: []
18
- extra_rdoc_files:
27
+
28
+ extra_rdoc_files:
19
29
  - README.txt
20
- files:
30
+ files:
31
+ - .ruby-version
21
32
  - README.txt
22
33
  - Rakefile
23
34
  - VERSION.yml
@@ -36,28 +47,39 @@ files:
36
47
  - test/test_net_ftp_list_netware.rb
37
48
  - test/test_net_ftp_list_rumpus.rb
38
49
  - test/test_net_ftp_list_unix.rb
50
+ has_rdoc: true
39
51
  homepage: http://github.com/stateless-systems/net-ftp-list
40
52
  licenses: []
53
+
41
54
  post_install_message:
42
55
  rdoc_options: []
43
- require_paths:
56
+
57
+ require_paths:
44
58
  - lib
45
- required_ruby_version: !ruby/object:Gem::Requirement
59
+ required_ruby_version: !ruby/object:Gem::Requirement
46
60
  none: false
47
- requirements:
48
- - - ! '>='
49
- - !ruby/object:Gem::Version
50
- version: '0'
51
- required_rubygems_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ hash: 3
65
+ segments:
66
+ - 0
67
+ version: "0"
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
69
  none: false
53
- requirements:
54
- - - ! '>='
55
- - !ruby/object:Gem::Version
56
- version: '0'
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
57
77
  requirements: []
78
+
58
79
  rubyforge_project:
59
- rubygems_version: 1.8.23
80
+ rubygems_version: 1.6.2
60
81
  signing_key:
61
82
  specification_version: 3
62
83
  summary: Parse FTP LIST command output.
63
84
  test_files: []
85
+