net-sftp 2.1.3.rc3 → 3.0.0.beta1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4089bb0442c65560beabbd81c7dd5312f54091db
4
- data.tar.gz: '091ca6fe9e56584d72a8fd302ac6ddb439659103'
3
+ metadata.gz: dfaa82448aebfb3c2a205a2ee3a4a00cb79880de
4
+ data.tar.gz: 80dd6481dd160bf3a25ba724c13cd1d86f2faa96
5
5
  SHA512:
6
- metadata.gz: 5672fe2bbb93376a0e81573b1a96d0dc2d99bc7ef216269c19ea76deb313aacf0f177e5cb8fff5005f6dc49862660c68ed4898948f3413d34ce8d1b92fdb4405
7
- data.tar.gz: 7d01db8e73f61a9a2cddcfe967de03678e2fca9f7c7aefdd4d777d2258217b315e40bf58547f2ac4d9101e62a7d1fd019393de663c297fff45bff7f5e27b0843
6
+ metadata.gz: 1b420fd11f558578edd054c8413c3de74515791d05d982bad5d07ac0c5e0a540bc8af13cf23e347091431e43611b3f3116de6917754bf87a9b37e0f692ad42d8
7
+ data.tar.gz: df1d630648a90a715148837346d3be01d9462a70c3831822d4a4d803fa320b1544fda4b2faab3f7f45256ad79a160e0f1d00b347f18750cbb66081fa3b6ae4fd
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,14 +1,14 @@
1
1
  language: ruby
2
2
  sudo: false
3
3
  rvm:
4
- - 2.0.0
5
- - 2.1.0
6
- - 2.2.0
7
- - 2.3.0
8
- - 2.4.0
4
+ - 2.2.10
5
+ - 2.3.7
6
+ - 2.4.5
7
+ - 2.5.3
8
+ - 2.6.0-rc2
9
9
  - ruby-head
10
10
  - jruby-head
11
- - rbx-2
11
+ - rbx-3.107
12
12
 
13
13
  install: gem install net-ssh test-unit mocha
14
14
 
@@ -17,4 +17,4 @@ script: rake test
17
17
  matrix:
18
18
  allow_failures:
19
19
  - rvm: jruby-head
20
- - rvm: rbx-2
20
+ - rvm: rbx-3.107
@@ -26,7 +26,7 @@ Net::SFTP is a pure-Ruby implementation of the SFTP protocol (specifically, vers
26
26
 
27
27
  In a nutshell:
28
28
 
29
- require 'net/sftp'
29
+ require 'net-sftp'
30
30
 
31
31
  Net::SFTP.start('host', 'username', :password => 'password') do |sftp|
32
32
  # upload a file or directory to the remote host
@@ -57,10 +57,10 @@ module Net; module SFTP; module Operations
57
57
  # it should be able to handle modest numbers of files in each directory.
58
58
  def glob(path, pattern, flags=0)
59
59
  flags |= ::File::FNM_PATHNAME
60
- path = path.chop if path[-1,1] == "/"
60
+ path = path.chop if path.end_with?('/') && path != '/'
61
61
 
62
62
  results = [] unless block_given?
63
- queue = entries(path).reject { |e| e.name == "." || e.name == ".." }
63
+ queue = entries(path).reject { |e| %w(. ..).include?(e.name) }
64
64
  while queue.any?
65
65
  entry = queue.shift
66
66
 
@@ -90,4 +90,4 @@ module Net; module SFTP; module Operations
90
90
  end
91
91
  end
92
92
 
93
- end; end; end
93
+ end; end; end
@@ -256,7 +256,7 @@ module Net; module SFTP; module Operations
256
256
  # operation was successful.
257
257
  def on_opendir(response)
258
258
  entry = response.request[:entry]
259
- raise "opendir #{entry.remote}: #{response}" unless response.ok?
259
+ raise StatusException.new(response, "opendir #{entry.remote}") unless response.ok?
260
260
  entry.handle = response[:handle]
261
261
  request = sftp.readdir(response[:handle], &method(:on_readdir))
262
262
  request[:parent] = entry
@@ -271,7 +271,7 @@ module Net; module SFTP; module Operations
271
271
  request = sftp.close(entry.handle, &method(:on_closedir))
272
272
  request[:parent] = entry
273
273
  elsif !response.ok?
274
- raise "readdir #{entry.remote}: #{response}"
274
+ raise StatusException.new(response, "readdir #{entry.remote}")
275
275
  else
276
276
  response[:names].each do |item|
277
277
  next if item.name == "." || item.name == ".."
@@ -297,7 +297,7 @@ module Net; module SFTP; module Operations
297
297
  def on_closedir(response)
298
298
  @active -= 1
299
299
  entry = response.request[:parent]
300
- raise "close #{entry.remote}: #{response}" unless response.ok?
300
+ raise StatusException.new(response, "close #{entry.remote}") unless response.ok?
301
301
  process_next_entry
302
302
  end
303
303
 
@@ -305,7 +305,7 @@ module Net; module SFTP; module Operations
305
305
  # to initiate the data transfer.
306
306
  def on_open(response)
307
307
  entry = response.request[:entry]
308
- raise "open #{entry.remote}: #{response}" unless response.ok?
308
+ raise StatusException.new(response, "open #{entry.remote}") unless response.ok?
309
309
 
310
310
  entry.handle = response[:handle]
311
311
  entry.sink = entry.local.respond_to?(:write) ? entry.local : ::File.open(entry.local, "wb")
@@ -333,7 +333,7 @@ module Net; module SFTP; module Operations
333
333
  request = sftp.close(entry.handle, &method(:on_close))
334
334
  request[:entry] = entry
335
335
  elsif !response.ok?
336
- raise "read #{entry.remote}: #{response}"
336
+ raise StatusException.new(response, "read #{entry.remote}")
337
337
  else
338
338
  entry.offset += response[:data].bytesize
339
339
  update_progress(:get, entry, response.request[:offset], response[:data])
@@ -346,7 +346,7 @@ module Net; module SFTP; module Operations
346
346
  def on_close(response)
347
347
  @active -= 1
348
348
  entry = response.request[:entry]
349
- raise "close #{entry.remote}: #{response}" unless response.ok?
349
+ raise StatusException.new(response, "close #{entry.remote}") unless response.ok?
350
350
  process_next_entry
351
351
  end
352
352
 
@@ -81,21 +81,35 @@ module Net; module SFTP; module Operations
81
81
  # Reads up to the next instance of +sep_string+ in the stream, and
82
82
  # returns the bytes read (including +sep_string+). If +sep_string+ is
83
83
  # omitted, it defaults to +$/+. If EOF is encountered before any data
84
- # could be read, #gets will return +nil+.
85
- def gets(sep_string=$/)
86
- delim = if sep_string.length == 0
84
+ # could be read, #gets will return +nil+. If the first argument is an
85
+ # integer, or optional second argument is given, the returning string
86
+ # would not be longer than the given value in bytes.
87
+ def gets(sep_or_limit=$/, limit=Float::INFINITY)
88
+ if sep_or_limit.is_a? Integer
89
+ sep_string = $/
90
+ lim = sep_or_limit
91
+ else
92
+ sep_string = sep_or_limit
93
+ lim = limit
94
+ end
95
+
96
+ delim = if sep_string && sep_string.length == 0
87
97
  "#{$/}#{$/}"
88
98
  else
89
99
  sep_string
90
100
  end
91
101
 
92
102
  loop do
93
- at = @buffer.index(delim)
103
+ at = @buffer.index(delim) if delim
94
104
  if at
95
- offset = at + delim.length
105
+ offset = [at + delim.length, lim].min
96
106
  @pos += offset
97
107
  line, @buffer = @buffer[0,offset], @buffer[offset..-1]
98
108
  return line
109
+ elsif lim < @buffer.length
110
+ @pos += lim
111
+ line, @buffer = @buffer[0,lim], @buffer[lim..-1]
112
+ return line
99
113
  elsif !fill
100
114
  return nil if @buffer.empty?
101
115
  @pos += @buffer.length
@@ -107,8 +121,8 @@ module Net; module SFTP; module Operations
107
121
 
108
122
  # Same as #gets, but raises EOFError if EOF is encountered before any
109
123
  # data could be read.
110
- def readline(sep_string=$/)
111
- line = gets(sep_string)
124
+ def readline(sep_or_limit=$/, limit=Float::INFINITY)
125
+ line = gets(sep_or_limit, limit)
112
126
  raise EOFError if line.nil?
113
127
  return line
114
128
  end
@@ -131,6 +145,15 @@ module Net; module SFTP; module Operations
131
145
  nil
132
146
  end
133
147
 
148
+ def size
149
+ stat.size
150
+ end
151
+
152
+ # Resets position to beginning of file
153
+ def rewind
154
+ self.pos = 0
155
+ end
156
+
134
157
  # Writes each argument to the stream, appending a newline to any item
135
158
  # that does not already end in a newline. Array arguments are flattened.
136
159
  def puts(*items)
@@ -46,17 +46,17 @@ module Net
46
46
  end
47
47
 
48
48
  # The major component of this version of the Net::SFTP library
49
- MAJOR = 2
49
+ MAJOR = 3
50
50
 
51
51
  # The minor component of this version of the Net::SFTP library
52
- MINOR = 1
52
+ MINOR = 0
53
53
 
54
54
  # The tiny component of this version of the Net::SFTP library
55
- TINY = 3
55
+ TINY = 0
56
56
 
57
57
  # The prerelease component of this version of the Net::SFTP library
58
58
  # nil allowed
59
- PRE = "rc3"
59
+ PRE = "beta1"
60
60
 
61
61
  # The current version of the Net::SFTP library as a Version instance
62
62
  CURRENT = new(*[MAJOR, MINOR, TINY, PRE].compact)
@@ -31,16 +31,16 @@ Gem::Specification.new do |spec|
31
31
  spec.specification_version = 3
32
32
 
33
33
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
34
- spec.add_runtime_dependency(%q<net-ssh>, [">= 2.6.5", "< 6.0.0"])
34
+ spec.add_runtime_dependency(%q<net-ssh>, [">= 5.0.0", "< 6.0.0"])
35
35
  spec.add_development_dependency(%q<test-unit>, [">= 0"])
36
36
  spec.add_development_dependency(%q<mocha>, [">= 0"])
37
37
  else
38
- spec.add_dependency(%q<net-ssh>, [">= 2.6.5", "< 6.0.0"])
38
+ spec.add_dependency(%q<net-ssh>, [">= 5.0.0", "< 6.0.0"])
39
39
  spec.add_dependency(%q<test-unit>, [">= 0"])
40
40
  spec.add_dependency(%q<mocha>, [">= 0"])
41
41
  end
42
42
  else
43
- spec.add_dependency(%q<net-ssh>, [">= 2.6.5", "< 6.0.0"])
43
+ spec.add_dependency(%q<net-ssh>, [">= 5.0.0", "< 6.0.0"])
44
44
  spec.add_dependency(%q<test-unit>, [">= 0"])
45
45
  spec.add_dependency(%q<mocha>, [">= 0"])
46
46
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-sftp
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3.rc3
4
+ version: 3.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamis Buck
@@ -32,7 +32,7 @@ cert_chain:
32
32
  YBtB7WnyXXwkUAo0FUibVzXXSxU+wXhrfpOCo2ZOlQOspdOcGZjirOZoxUKSvMtn
33
33
  URWm7gw7y0UkzFg4iZOFuC84+4GZ08U3/gr9sg==
34
34
  -----END CERTIFICATE-----
35
- date: 2018-12-13 00:00:00.000000000 Z
35
+ date: 2018-12-28 00:00:00.000000000 Z
36
36
  dependencies:
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: net-ssh
@@ -40,7 +40,7 @@ dependencies:
40
40
  requirements:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
- version: 2.6.5
43
+ version: 5.0.0
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
46
  version: 6.0.0
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 2.6.5
53
+ version: 5.0.0
54
54
  - - "<"
55
55
  - !ruby/object:Gem::Version
56
56
  version: 6.0.0
metadata.gz.sig CHANGED
Binary file