little_monster 0.1.13 → 0.1.14

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
  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