stack-service-base 0.0.68 → 0.0.69

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: 0b0f36f56f0f0e61e61a8a77a8873de663bd730eb18130741e1e590090f0ed5a
4
- data.tar.gz: b97e785410d66ae5b0c3044e20f7821566a366c2a84faffd1c6f885411b18abf
3
+ metadata.gz: 1a0346cabcbb1865c5b8047b5d1bc8c330889b8f77ec557d3374f34b9276a616
4
+ data.tar.gz: 7bcd3a44d51811168c8ce7b7c8208721902656bf0b27adad3ad393f3f08cc7b1
5
5
  SHA512:
6
- metadata.gz: 0fdcda00e496cf2bcdbfaa28d50f21b8b42add2fa64f711940c5b2eec328a8570f4ff06f0d9c7509c2db43d068840bfb760a0be14ef8d2c5ab7e4c2c9e8d4805
7
- data.tar.gz: 15068ebb93c1a0a58d68f4e81533e084a4cb0f7c633c5739805162bc4c37bc4be9995084cd8b8d4f7c78fe46f38839cdcefb02a9b8d906a45f63b679f0aec956
6
+ metadata.gz: bb4ca89546fcd4444fec9a7d8bfd5f81133aa03abd065e836c24be6aa42fd3c826e293e10aa9b5a9e8d1ea83fe0be4967f9d2cacb61df41d7a0f92ff172297f3
7
+ data.tar.gz: b11e4a35780adaab58cf4af8b922eb0f86e74665fb1cb0e16d413e84427ca51054f06894b4680face41f2eb366773630204ff80baf40d67c488cf4c022a22a96
@@ -0,0 +1,29 @@
1
+ if defined? Async
2
+ # require 'async'
3
+
4
+ module Enumerable
5
+ def map_async
6
+ results = Array.new(self.size)
7
+ self.each_with_index.map do |item, index|
8
+ Async do
9
+ results[index] = item.respond_to?(:to_ary) ? yield(*item.to_ary) : yield(item)
10
+ end
11
+ end.map(&:wait)
12
+ results
13
+ end
14
+ end
15
+
16
+ # Usage:
17
+ # async def foo(a,b,c)
18
+ def async(name)
19
+ original_method = self.respond_to?(:instance_method) ? instance_method(name) : method(name)
20
+ self.respond_to?(:remove_method) ? remove_method(name) : Object.send(:remove_method, name)
21
+ original_method = original_method.respond_to?(:unbind) ? original_method.unbind : original_method
22
+
23
+ define_method(name) do |*args, **kwargs, &block|
24
+ Async do
25
+ original_method.bind(self).call(*args, **kwargs, &block)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module StackServiceBase
2
- VERSION = '0.0.68'
2
+ VERSION = '0.0.69'
3
3
  end
@@ -5,6 +5,7 @@ require 'stack-service-base/open_telemetry'
5
5
  require 'stack-service-base/nats_service'
6
6
  require 'stack-service-base/sinatra_ext'
7
7
  require 'stack-service-base/debugger'
8
+ require 'stack-service-base/async_helpers'
8
9
 
9
10
  unless defined? RSpec
10
11
  require 'dotenv'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stack-service-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.68
4
+ version: 0.0.69
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B
@@ -408,6 +408,7 @@ extra_rdoc_files: []
408
408
  files:
409
409
  - bin/ssbase
410
410
  - lib/stack-service-base.rb
411
+ - lib/stack-service-base/async_helpers.rb
411
412
  - lib/stack-service-base/command_init.rb
412
413
  - lib/stack-service-base/command_line.rb
413
414
  - lib/stack-service-base/database.rb