files.com 1.0.178 → 1.0.179

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/_VERSION +1 -1
  3. data/lib/files.com/sizable_io.rb +23 -0
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8314f06e051c0563d980fca94b325614b675d6c406ddc7e286ebf132251cbd0c
4
- data.tar.gz: e7e4cce1b266a01b4afacfdca4bbca65ab6c46e87e3be7cf6b9b828db31082bc
3
+ metadata.gz: 32935bb0ba8038b846516ad46c7bc54d1e60fe5d248270f27555fff90f865d96
4
+ data.tar.gz: 9a1d911bf8e70e7d96ba4454784255d862f9a6236c5bfbea86d53b2d27abefac
5
5
  SHA512:
6
- metadata.gz: dde72ce18d054f8bd8c2ee9f0d2c0f0b99e5207663081c1d57b279640282ae42f07a2b77c88a5f42bef9198f24b61840deffe87edd77251fd97fba0c3a11bd5d
7
- data.tar.gz: ee65038bc42cd105e3d89646d187b079be61244f049a63f5a363c0bf1ac165ed52492d16ce2c175a096e2bcdd71278d4789400d991802c78d9a35fefa24f7687
6
+ metadata.gz: 3178b99b24bf4271b9ae5d885b2bcaa9a0fcfeefc0c3b53b774656eb13f46d353356513ad64844dfa0661a2e3ef4b9ba42c6d014b3261162a06b048a57016aad
7
+ data.tar.gz: 70795f3bbbe09817c4d70855bbaba3fd2c376831c05cea107f77e9dc981aca65bdbd95d102f27d61b564f992270176fdc034146b84115612052426fb09526a66
data/_VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.178
1
+ 1.0.179
@@ -12,15 +12,30 @@ module Files
12
12
  read_io.content_length_promise.wait.value
13
13
  end
14
14
 
15
+ def wait!(timeout=nil)
16
+ read_io.ready_promise.wait(timeout)
17
+ error!
18
+ self
19
+ end
20
+
15
21
  def fulfill_content_length(length)
16
22
  read_io.content_length = length
17
23
  read_io.content_length_promise.execute
18
24
  end
19
25
 
26
+ def ready!
27
+ read_io.ready_promise.execute
28
+ end
29
+
20
30
  def close
21
31
  raise @with_error if @with_error
22
32
  super
23
33
  read_io.content_length_promise.try_set(nil)
34
+ read_io.ready_promise.try_set(true)
35
+ end
36
+
37
+ def error!
38
+ raise read_io.with_error if read_io.with_error
24
39
  end
25
40
 
26
41
  def set_error(e)
@@ -35,8 +50,16 @@ module Files
35
50
  @content_length_promise ||= Concurrent::Promise.new { content_length }
36
51
  end
37
52
 
53
+ def ready_promise
54
+ @ready_promise ||= Concurrent::Promise.new { true }
55
+ end
56
+
38
57
  def read_io
39
58
  @read_io || self
40
59
  end
60
+
61
+ def read_io?
62
+ read_io == self
63
+ end
41
64
  end
42
65
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: files.com
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.178
4
+ version: 1.0.179
5
5
  platform: ruby
6
6
  authors:
7
7
  - files.com