maybe_later 0.0.2 → 0.0.3

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: d8f9b846afbd0afe731fb08fd0d8bb7803bbe35641e346a203ec3d7dbdec5469
4
- data.tar.gz: 9e524137408d44ed6c8aa9ac42530988cc1effd900b30b6cb5d4105bab2aabc8
3
+ metadata.gz: d63ae1916bd6a110d2eb3a3818aebfd98eddbc44787b4e4d05b52fab195ec3d1
4
+ data.tar.gz: 3e829f5587905276f61cdbfd93d0e7235e6c68dc9131866ab280d5ac85e463f5
5
5
  SHA512:
6
- metadata.gz: f44f66474c11bde93b9708a2357aa353abd7d10ea395af1da2494cabb6b5e364b2b9234ff3a3dbb0e386935c5486e92a2ebfc03046fac2d7053f73669c535f2f
7
- data.tar.gz: 8d643450ef22440c17d881c20be5620e9029318d5ce979217a0b6f1bf41483dc0ee36b1406d8add4ebdca21742dbce037c246d8ec8a7a46b6dd44b0210a25e50
6
+ metadata.gz: 158a2177f00c6d37972137360242da044ff165b21246d825230a8bb64aee54e8a1c717a6f1e97dbc03ec37a5be6cce3e631d3c4820464471f5adcae5471057d0
7
+ data.tar.gz: c65819bb29ef30d32322fb4297515697f9774baf037fcf44203f3c625826681d612fbe991f53087b38365dc3caaa41f2cee30b3c82ecbff671e276ff33266164
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## [0.0.3] - 2022-01-21
2
+
3
+ - Fix a bug where async tasks' after_each callbacks were called rack.after_reply
4
+
1
5
  ## [0.0.2] - 2022-01-20
2
6
 
3
7
  - Only close HTTP connections when there are >0 inline tasks to be run
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- maybe_later (0.0.2)
4
+ maybe_later (0.0.3)
5
5
  concurrent-ruby (~> 1.1.9)
6
6
  railties (>= 6.0.0)
7
7
 
@@ -41,6 +41,8 @@ GEM
41
41
  minitest (5.15.0)
42
42
  nokogiri (1.13.1-arm64-darwin)
43
43
  racc (~> 1.4)
44
+ nokogiri (1.13.1-x86_64-linux)
45
+ racc (~> 1.4)
44
46
  parallel (1.21.0)
45
47
  parser (3.1.0.0)
46
48
  ast (~> 2.4.1)
@@ -93,6 +95,7 @@ GEM
93
95
 
94
96
  PLATFORMS
95
97
  arm64-darwin-21
98
+ x86_64-linux
96
99
 
97
100
  DEPENDENCIES
98
101
  maybe_later!
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ <img src="https://user-images.githubusercontent.com/79303/150394856-67252204-2857-412c-b379-851144776728.jpg" width="90%"/>
2
+
1
3
  # maybe_later - get slow code out of your users' way
2
4
 
3
5
  Maybe you've been in this situation: you want to call some Ruby while responding
@@ -0,0 +1,13 @@
1
+ module MaybeLater
2
+ class InvokesCallback
3
+ def call(callback)
4
+ config = MaybeLater.config
5
+
6
+ callback.callable.call
7
+ rescue => e
8
+ config.on_error&.call(e)
9
+ ensure
10
+ config.after_each&.call
11
+ end
12
+ end
13
+ end
@@ -1,19 +1,18 @@
1
1
  module MaybeLater
2
2
  class RunsCallbacks
3
+ def initialize
4
+ @invokes_callback = InvokesCallback.new
5
+ end
6
+
3
7
  def call
4
8
  store = Store.instance
5
- config = MaybeLater.config
6
9
 
7
10
  store.callbacks.each do |callback|
8
11
  if callback.inline
9
- callback.callable.call
12
+ @invokes_callback.call(callback)
10
13
  else
11
- ThreadPool.instance.run(callback.callable)
14
+ ThreadPool.instance.run(callback)
12
15
  end
13
- rescue => e
14
- config.on_error&.call(e)
15
- ensure
16
- config.after_each&.call
17
16
  end
18
17
 
19
18
  store.clear_callbacks!
@@ -9,13 +9,12 @@ module MaybeLater
9
9
  # first relevant request, since the pool will have been created
10
10
  def initialize
11
11
  @pool = Concurrent::FixedThreadPool.new(MaybeLater.config.max_threads)
12
+ @invokes_callback = InvokesCallback.new
12
13
  end
13
14
 
14
- def run(callable)
15
+ def run(callback)
15
16
  @pool.post do
16
- callable.call
17
- rescue => e
18
- MaybeLater.config.on_error&.call(e)
17
+ @invokes_callback.call(callback)
19
18
  end
20
19
  end
21
20
  end
@@ -1,3 +1,3 @@
1
1
  module MaybeLater
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/maybe_later.rb CHANGED
@@ -3,6 +3,7 @@ require_relative "maybe_later/config"
3
3
  require_relative "maybe_later/middleware"
4
4
  require_relative "maybe_later/queues_callback"
5
5
  require_relative "maybe_later/runs_callbacks"
6
+ require_relative "maybe_later/invokes_callback"
6
7
  require_relative "maybe_later/store"
7
8
  require_relative "maybe_later/thread_pool"
8
9
  require_relative "maybe_later/railtie" if defined?(Rails)
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.2
4
+ version: 0.0.3
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-20 00:00:00.000000000 Z
11
+ date: 2022-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -56,6 +56,7 @@ files:
56
56
  - bin/setup
57
57
  - lib/maybe_later.rb
58
58
  - lib/maybe_later/config.rb
59
+ - lib/maybe_later/invokes_callback.rb
59
60
  - lib/maybe_later/middleware.rb
60
61
  - lib/maybe_later/queues_callback.rb
61
62
  - lib/maybe_later/railtie.rb