little_monster 0.1.13 → 0.1.14

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
  SHA1:
3
- metadata.gz: f509ccd0ab47ea65d89c120df2c1a922c16c98f2
4
- data.tar.gz: 866d835af98d299bb938d9dbf4f4e5a08003fdf6
3
+ metadata.gz: b07797c5041cc3f6e14775d254e999ed5445aed9
4
+ data.tar.gz: 80ddf6bc1c80ab4feee8a81893ea62b2d723412e
5
5
  SHA512:
6
- metadata.gz: cd52c9e1f8fa533596bac9b06e33ff1bc1bb4eea0e05a8455b2f4e3dbbb281b25b83c81b9633d81b83194ce21d215d6c8e98cef961ddb087c10ca8ac7a053ca1
7
- data.tar.gz: 743ff7e499d899fc6f9d432f18f337ad447d2f2d9eccf6e9c9af3edd5886fbfa9f3020839b136bd04a30f49952ce42c0e572ed63e2316388d7068996093e9121
6
+ metadata.gz: ff4b36accdd2a8f9fe3abc773baaaa16cace873133f7ddda15052eefdb55d070a30cd3165575b3706213fea1ada18ac8e76540f3298bed06e3dabda2146b3cc3
7
+ data.tar.gz: e0d8cc7041571eeaf909f804fb46e9904b4cb52c6ec242997e1f6da7df3915eece262613c8353f096a0dfc56f2b4d4738f3bf7795cd537901f97c1d1f69c52d3
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- little_monster (0.1.13)
4
+ little_monster (0.1.14)
5
5
  activesupport
6
6
  multi_json
7
7
  thor
@@ -113,7 +113,14 @@ module LittleMonster::Core
113
113
 
114
114
  def build_task(task_symbol)
115
115
  task = @job.task_class_for(task_symbol).new(@job.data)
116
- task.send(:set_default_values, @job.data, @job.id, logger, @job.method(:is_cancelled?))
116
+ task.send(:set_default_values,
117
+ data: @job.data,
118
+ job_id: @job.id,
119
+ job_logger: logger,
120
+ cancelled_callback: @job.method(:is_cancelled?),
121
+ retries: @job.retries,
122
+ max_retries: @job.max_retries,
123
+ retry_callback: @job.method(:retry?))
117
124
  task
118
125
  end
119
126
 
@@ -4,6 +4,8 @@ module LittleMonster::Core
4
4
 
5
5
  attr_reader :data
6
6
  attr_reader :job_id
7
+ attr_reader :job_retries
8
+ attr_reader :job_max_retries
7
9
 
8
10
  def initialize(data, job_id = nil)
9
11
  @data = data
@@ -30,12 +32,20 @@ module LittleMonster::Core
30
32
  raise CancelError if is_cancelled?
31
33
  end
32
34
 
35
+ def last_retry?
36
+ @retry_callback.nil? ? false : !@retry_callback.call
37
+ end
38
+
33
39
  private
34
40
 
35
- def set_default_values(data, job_id = nil, job_logger = nil, cancelled_callback = nil)
41
+ def set_default_values(data:, job_id: nil, job_logger: nil,
42
+ cancelled_callback: nil, retries: 0, max_retries: 0, retry_callback: nil)
36
43
  @cancelled_callback = cancelled_callback
37
44
  @job_id = job_id
38
45
  @data = data
46
+ @job_retries = retries
47
+ @job_max_retries = max_retries
48
+ @retry_callback = retry_callback
39
49
  logger.parent_logger = job_logger if job_logger
40
50
  logger.default_tags.merge!(type: 'task_log')
41
51
  end
@@ -36,9 +36,17 @@ module LittleMonster::RSpec
36
36
  outputs: options.fetch(:data, {}))
37
37
  end
38
38
 
39
+ default_values = {
40
+ data: data,
41
+ cancelled_callback: proc { options.fetch(:cancelled, false) },
42
+ job_id: options.fetch(:job_id, nil),
43
+ retries: options.fetch(:job_retries, 0),
44
+ max_retries: options.fetch(:job_max_retries, 0),
45
+ retry_callback: proc { !options.fetch(:last_retry, false) }
46
+ }
47
+
39
48
  task_instance = task_class.new(data)
40
- task_instance.send(:set_default_values, data)
41
- task_instance.instance_variable_set('@cancelled_callback', (proc { true })) if options[:cancelled]
49
+ task_instance.send(:set_default_values, default_values)
42
50
 
43
51
  task_instance
44
52
  end
@@ -1,3 +1,3 @@
1
1
  module LittleMonster
2
- VERSION = '0.1.13'.freeze
2
+ VERSION = '0.1.14'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: little_monster
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.13
4
+ version: 0.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - arq