maybe_later 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d63ae1916bd6a110d2eb3a3818aebfd98eddbc44787b4e4d05b52fab195ec3d1
4
- data.tar.gz: 3e829f5587905276f61cdbfd93d0e7235e6c68dc9131866ab280d5ac85e463f5
3
+ metadata.gz: acd7c4af474d9ccd6ed38814145b1a4df0b2185ff13359f9ab04d0f2761e0aa2
4
+ data.tar.gz: 8fa43fe122c043094904189724798d3def150b5ca1469912662f037de0ba2dcf
5
5
  SHA512:
6
- metadata.gz: 158a2177f00c6d37972137360242da044ff165b21246d825230a8bb64aee54e8a1c717a6f1e97dbc03ec37a5be6cce3e631d3c4820464471f5adcae5471057d0
7
- data.tar.gz: c65819bb29ef30d32322fb4297515697f9774baf037fcf44203f3c625826681d612fbe991f53087b38365dc3caaa41f2cee30b3c82ecbff671e276ff33266164
6
+ metadata.gz: bbefe63d4710db4b36aa4b628e25e0a977922675695a3c9501c5ecc9d8ab9f851906f2ed53cc3d1e3c095c01e96bede99a7976c20d25ef2e4bf8e5dd5ceb8fe1
7
+ data.tar.gz: 176f10b2bd8aa8a7a6e5342d566a0df041ef33e4052b5f6333d75f4c61304892d4ac312d97127687c2b487250e4c84f946c8450360117c2e2847cd6987543582
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## [0.0.4] - 2022-01-24
2
+
3
+ - Add `invoke_even_if_server_is_unsupported` option to ensure tasks are invoked
4
+ even if the server doesn't support rack.after_reply
5
+
1
6
  ## [0.0.3] - 2022-01-21
2
7
 
3
8
  - Fix a bug where async tasks' after_each callbacks were called rack.after_reply
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- maybe_later (0.0.3)
4
+ maybe_later (0.0.4)
5
5
  concurrent-ruby (~> 1.1.9)
6
6
  railties (>= 6.0.0)
7
7
 
data/README.md CHANGED
@@ -94,6 +94,10 @@ MaybeLater.config do |config|
94
94
 
95
95
  # How many threads to allocate to the fixed thread pool (default: 5)
96
96
  config.max_threads = 5
97
+
98
+ # If set to true, will invoke the after_reply tasks even if the server doesn't
99
+ # provide an array of rack.after_reply array
100
+ config.invoke_even_if_server_is_unsupported = false
97
101
  end
98
102
  ```
99
103
 
@@ -1,12 +1,14 @@
1
1
  module MaybeLater
2
2
  class Config
3
- attr_accessor :after_each, :on_error, :inline_by_default, :max_threads
3
+ attr_accessor :after_each, :on_error, :inline_by_default, :max_threads,
4
+ :invoke_even_if_server_is_unsupported
4
5
 
5
6
  def initialize
6
7
  @after_each = nil
7
8
  @on_error = nil
8
9
  @inline_by_default = false
9
10
  @max_threads = 5
11
+ @invoke_even_if_server_is_unsupported = false
10
12
  end
11
13
  end
12
14
  end
@@ -7,12 +7,29 @@ module MaybeLater
7
7
  end
8
8
 
9
9
  def call(env)
10
+ config = MaybeLater.config
11
+
10
12
  status, headers, body = @app.call(env)
11
13
  if Store.instance.callbacks.any?
12
- env[RACK_AFTER_REPLY] ||= []
13
- env[RACK_AFTER_REPLY] << -> {
14
+ if env.key?(RACK_AFTER_REPLY)
15
+ env[RACK_AFTER_REPLY] << -> {
16
+ RunsCallbacks.new.call
17
+ }
18
+ elsif !config.invoke_even_if_server_is_unsupported
19
+ warn <<~MSG
20
+ This server may not support '#{RACK_AFTER_REPLY}' callbacks. To
21
+ ensure that your tasks are executed, consider enabling:
22
+
23
+ config.invoke_even_if_server_is_unsupported = true
24
+
25
+ Note that this option, when combined with `inline: true` can result
26
+ in delayed flushing of HTTP responses by the server (defeating the
27
+ purpose of the gem.
28
+ MSG
29
+ else
14
30
  RunsCallbacks.new.call
15
- }
31
+ end
32
+
16
33
  if Store.instance.callbacks.any? { |cb| cb.inline }
17
34
  headers["Connection"] = "close"
18
35
  end
@@ -1,3 +1,3 @@
1
1
  module MaybeLater
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maybe_later
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Searls
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-21 00:00:00.000000000 Z
11
+ date: 2022-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties