async_block 0.2.2 → 0.2.4

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: edf6ec5cd97396b384affe1e3fe9b20e54e63bc8f25aeb364f0bfe8053e3cd85
4
- data.tar.gz: 333fe7fca486e6ce5bd333009c7c1f963b15712785db67a48000554c36b78577
3
+ metadata.gz: ecd9d7e535b3cc5a1c3202a298246dd4d3ac610cd5fde6af8123590608f92692
4
+ data.tar.gz: cdb1f518b1c333d5b93cdca58e83c46efcb709a3d59b4d0b04899460deee1123
5
5
  SHA512:
6
- metadata.gz: ecacd457ba31dc5fdc76e04526f25087a2b637b36172411fb335a07cacad8b30c6df22ea43dbc505cd612ad0a412f56c7aab78aab40654558dd7010bdae0aca0
7
- data.tar.gz: c057869a25f1725b9046452dcb11ac5906b57eeb2b754753b2d7476acac939168d54559bad2b7f9d340035124d656cec97ca15dc9f1bfb5271086f4b2fff730c
6
+ metadata.gz: 511fa72a1d25adefa23f78ea983a98610715ec72e2ad22af09248a122fbd85244ad1e51dea1fa83d943626ff5c929a4cb8ecb1e39374d1d094025e864d0a9274
7
+ data.tar.gz: c21922bbab72a2ad274f846b703e17834a52d95438e858abcfa685b03b3f281a5f4a7f1b4b7ee61cc89a590df34324d742e21f6d4ce7b93a34b4e86e70c370ca
@@ -9,31 +9,42 @@ module AsyncBlock
9
9
  queue_as :async_wrapper_job
10
10
 
11
11
  retry_on StandardError, wait: :exponentially_longer, attempts: 3 do |job, error|
12
- send_error_message(job, error)
12
+ # send_error_message(job, error)
13
+ error_message = "Stopped retrying #{job.class} (JID #{job.job_id})
14
+ with #{job.arguments.join(', ')} due to
15
+ '#{error.class} - #{error.message}'.
16
+ This job was retried for #{job.executions} times.".squish
17
+ on_error(error_message)
13
18
  end
14
19
 
15
20
  def perform(source, on_error_source)
16
- @block = str_to_block(source)
17
- @on_error = str_to_block(on_error_source)
18
- execute_block!
21
+ initialize_on_error(on_error_source)
22
+ # Converts source code to callable block
23
+ block = source_to_block(source)
24
+ execute_block!(block)
19
25
  end
20
26
 
21
27
  private
22
28
 
23
- def str_to_block(source)
29
+ def source_to_block(source)
24
30
  SourceToBlock.new(source).convert
25
31
  end
26
32
 
27
- def execute_block!(_block)
28
- @block.call
33
+ def execute_block!(block)
34
+ block.call
29
35
  end
30
36
 
31
- def send_error_message(job, error)
32
- error_message = "Stopped retrying #{job.class} (JID #{job.job_id})
33
- with #{job.arguments.join(', ')} due to
34
- '#{error.class} - #{error.message}'.
35
- This job was retried for #{job.executions} times.".squish
36
- @on_error.call(error_message)
37
+ def initialize_on_error(on_error_source)
38
+ # Puts :on_error method in instance
39
+ source_to_block(on_error_source).call
37
40
  end
41
+
42
+ # def send_error_message(job, error)
43
+ # error_message = "Stopped retrying #{job.class} (JID #{job.job_id})
44
+ # with #{job.arguments.join(', ')} due to
45
+ # '#{error.class} - #{error.message}'.
46
+ # This job was retried for #{job.executions} times.".squish
47
+ # on_error(error_message)
48
+ # end
38
49
  end
39
50
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AsyncBlock
4
- VERSION = '0.2.2'
4
+ VERSION = '0.2.4'
5
5
  end
data/lib/async_block.rb CHANGED
@@ -10,16 +10,18 @@ require_relative 'async_block/async_wrapper_job'
10
10
  module AsyncBlock
11
11
  class Error < StandardError; end
12
12
 
13
- def self.perform(queue: nil, delay: nil, on_error: default_on_error, &block)
13
+ def self.perform(queue: nil, delay: nil, on_error: nil, &block)
14
14
  source = BlockToSource.new(block).convert
15
- on_error_source = BlockToSource.new(on_error).convert
15
+ on_error_source = BlockToSource.new(on_error || default_on_error).convert
16
16
  queue ||= DEFAULT_QUEUE_NAME
17
- if delay.nil?
18
- AsyncWrapperJob.set(queue: queue.to_sym).perform_later(source, on_error_source)
19
- else
17
+ if delay.instance_of?(ActiveSupport::Duration)
20
18
  AsyncWrapperJob.set(wait: delay, queue: queue.to_sym).perform_later(source, on_error_source)
19
+ else
20
+ AsyncWrapperJob.set(queue: queue.to_sym).perform_later(source, on_error_source)
21
21
  end
22
22
  end
23
23
 
24
- def self.default_on_error; end
24
+ def self.default_on_error(error_message)
25
+ puts('AsyncBlockError', error_message)
26
+ end
25
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async_block
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adittya Dey
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-11 00:00:00.000000000 Z
11
+ date: 2023-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport