simple-transfer 1.0.3 → 1.1.3

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/transfer.rb +12 -6
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bd38b47a3855979f50b757774ce88ce52b39e96525a59bd528e65c77355bcf7d
4
- data.tar.gz: c8bcacadd245c1fa8e1bce54179056bf30bcda308a8a9f3aac67498c7eaa0e9f
3
+ metadata.gz: fe5cba70caf94311be44cf8a7ac9b468c0889271f05ddbc5b4de78ce656877e9
4
+ data.tar.gz: 5d91c55f495da4da0b13f5a4b8eb12404deb7b0175b0f058fe2aff58f2686518
5
5
  SHA512:
6
- metadata.gz: 34c88b24d77957012e13dc5ff2862adece0921fe39742184330e86e77ee015f581067194614abf41413b57c84b0aae1f0a3b77d1600ab33cdc71275be4b1cd8e
7
- data.tar.gz: 278b458c78d0c459beda200f201bfd81188522e6b7b441449ce7128376cd56876177d4ca3a1aca56275396191e0010940ccfaa85c807d609a9cd38255455ef07
6
+ metadata.gz: 85a60ff87ee334c778c8786f01d262df2f47219d33a405569eb8113b840bdf92e4040aea6554c2989f9c2def981a9e5b4068045c58d78d2655fc6283f6c4df4a
7
+ data.tar.gz: 41472c64b33731994d184a19dcfa634c1cd5a9c44f9ff0a48fe2ab9e5f574d06d297a9ac75e474c559da47011b25c39dbb1853d647c9f1090aa6ad4ee37c8ba2
data/lib/transfer.rb CHANGED
@@ -28,8 +28,8 @@ module SimpleTransfer
28
28
  return self.addr[1]
29
29
  end
30
30
 
31
- def recv_chunk()
32
- return @conn.recv(@@recv_size)
31
+ def recv_chunk(size=@@recv_size)
32
+ return @conn.recv(size)
33
33
  end
34
34
 
35
35
  def init_transfer()
@@ -71,6 +71,14 @@ module SimpleTransfer
71
71
  return init_data
72
72
  end
73
73
 
74
+ def recv_part(data, data_length)
75
+ # no need to end sync, just check if exactly the file size is read at total
76
+ remaining = data_length - data.length
77
+ part = remaining < @@recv_size ? recv_chunk(remaining) : recv_chunk()
78
+ return part
79
+ #
80
+ end
81
+
74
82
  def recv_file()
75
83
  init = handle_init()
76
84
  if not init[0]
@@ -79,14 +87,14 @@ module SimpleTransfer
79
87
  data_length, filename = init
80
88
  data = ""
81
89
  while data.length < data_length
82
- data += recv_chunk()
90
+ data += recv_part(data, data_length)
83
91
  sleep(0.01)
84
92
  log_progress(data.length, data_length, filename) if @logging
85
93
  end
86
94
  Kernel.print "\n"
87
95
  if data.length != data_length
88
96
  log_transfer(
89
- "partial data received for #{filename}", level = "WARNING"
97
+ "more or less data received for #{filename}", level = "WARNING"
90
98
  ) if @logging
91
99
  end
92
100
  return data, filename
@@ -185,8 +193,6 @@ module SimpleTransfer
185
193
 
186
194
  def send_directory(directory)
187
195
  scan_directory(directory).each do |f|
188
- #sleep because there is no sync for end of transfer
189
- sleep 0.5
190
196
  if File.directory?(f)
191
197
  send_directory(f)
192
198
  else send_file(f) end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple-transfer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Burzum
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-24 00:00:00.000000000 Z
11
+ date: 2025-02-27 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |-
14
14
  An extremely simple gem that relies on the TCP stack for transfer of files over a IP network.