maybe_later 0.0.2 → 0.0.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.
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