acidic_job 0.8.8 → 0.9.0

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
  SHA256:
3
- metadata.gz: 73e730bb2b10e7c54a403fb2dea12c0f0d398d0ae761a01ec38cf59288eb3309
4
- data.tar.gz: 6d1826773e7cdc6b4f42fc291a332859d6d22f45e7eb519e36753788198aaa71
3
+ metadata.gz: 81f0d07fd3ed80da090cad46ec491cc26eb563daf53409929a35c82cb63205fd
4
+ data.tar.gz: 64de5c5c2ae35b4ce1fc50495b1dd647c722a80075f6371aa62dd7ba6996ebdc
5
5
  SHA512:
6
- metadata.gz: c15d6d8b6298df62b4cb241efe8dcf8fd46d6804a0dbe1f38106085bc66cc61fb380237de2cfbc0b3db1eac2942f6727ab1a6cb22c8a79914feef2b5461494d5
7
- data.tar.gz: 9230e95fcff19c465124a90d55514ef56b404faa922ef1e5029f8477b009216bf8adb9a5d1b721db76a99906d9605850192de4c91c234bc04f1c90d02d7c761c
6
+ metadata.gz: 0fd0a5171079377a1c9e9d810af1e95e955defbe5bb1bd929b627f1b5e66bdea3ae7276728de7369076ad09fd3bf24b23427706f971b69bdb68c912fffdbd14d
7
+ data.tar.gz: 12a1ba218ac52d17bdff46307055a04df317c95600f40eb4391e8d40a8f37169ac3360a8c6fa05657d5c3fb5fac3de92aea8f79b6b81f72604690a63ae4d14cd
data/.rubocop.yml CHANGED
@@ -1,3 +1,7 @@
1
+ require:
2
+ - rubocop-minitest
3
+ - rubocop-rake
4
+
1
5
  AllCops:
2
6
  TargetRubyVersion: 2.7
3
7
  NewCops: enable
@@ -39,3 +43,6 @@ Metrics/PerceivedComplexity:
39
43
 
40
44
  Metrics/ClassLength:
41
45
  Enabled: false
46
+
47
+ Minitest/MultipleAssertions:
48
+ Enabled: false
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- acidic_job (0.8.8)
4
+ acidic_job (0.9.0)
5
5
  activejob
6
6
  activerecord
7
7
  activesupport
@@ -85,7 +85,7 @@ module AcidicJob
85
85
  "jid" => @job_id,
86
86
  "queue" => @queue_name
87
87
  }
88
- item["at"] = @scheduled_at if @scheduled_at
88
+ item["at"] = @scheduled_at if defined?(@scheduled_at) && @scheduled_at
89
89
 
90
90
  ::Sidekiq::Client.push(item)
91
91
  end
@@ -126,16 +126,16 @@ module AcidicJob
126
126
  # https://github.com/rails/rails/blob/93c9534c9871d4adad4bc33b5edc355672b59c61/activejob/lib/active_job/callbacks.rb
127
127
  concerning :Callbacks do
128
128
  class_methods do
129
- def around_perform(*filters, &blk)
130
- set_callback(:perform, :around, *filters, &blk)
129
+ def around_perform(...)
130
+ set_callback(:perform, :around, ...)
131
131
  end
132
132
 
133
- def before_perform(*filters, &blk)
134
- set_callback(:perform, :before, *filters, &blk)
133
+ def before_perform(...)
134
+ set_callback(:perform, :before, ...)
135
135
  end
136
136
 
137
- def after_perform(*filters, &blk)
138
- set_callback(:perform, :after, *filters, &blk)
137
+ def after_perform(...)
138
+ set_callback(:perform, :after, ...)
139
139
  end
140
140
  end
141
141
  end
@@ -15,7 +15,7 @@ module AcidicJob
15
15
  STAGED_JOB_ID_PREFIX = "STG"
16
16
  STAGED_JOB_ID_DELIMITER = "__"
17
17
  IDEMPOTENCY_KEY_LOCK_TIMEOUT_SECONDS = 2
18
- RAILS_VERSION = Gem::Version.new(Rails.version)
18
+ RAILS_VERSION = Gem::Version.new(ActiveRecord.version)
19
19
  TARGET_VERSION = Gem::Version.new("7.1")
20
20
  REQUIRES_CODER_FOR_SERIALIZE = RAILS_VERSION >= TARGET_VERSION ||
21
21
  RAILS_VERSION.segments[..1] == TARGET_VERSION.segments
@@ -6,31 +6,36 @@ module AcidicJob
6
6
  module Serializers
7
7
  class ExceptionSerializer < ::ActiveJob::Serializers::ObjectSerializer
8
8
  def serialize(exception)
9
- hash = {
10
- "class" => exception.class.name,
11
- "message" => exception.message,
12
- "cause" => exception.cause,
13
- "backtrace" => {}
14
- }
15
-
16
- exception&.backtrace&.map do |trace|
9
+ compressed_backtrace = {}
10
+ exception.backtrace&.map do |trace|
17
11
  path, _, location = trace.rpartition("/")
12
+ next if compressed_backtrace.key?(path)
18
13
 
19
- next if hash["backtrace"].key?(path)
20
-
21
- hash["backtrace"][path] = location
14
+ compressed_backtrace[path] = location
22
15
  end
16
+ exception.set_backtrace(compressed_backtrace.map do |path, location|
17
+ [path, location].join("/")
18
+ end)
19
+ exception.cause&.set_backtrace([])
23
20
 
24
- super(hash)
21
+ super({ "yaml" => exception.to_yaml })
25
22
  end
26
23
 
27
24
  def deserialize(hash)
28
- exception_class = hash["class"].constantize
29
- exception = exception_class.new(hash["message"])
30
- exception.set_backtrace(hash["backtrace"].map do |path, location|
31
- [path, location].join("/")
32
- end)
33
- exception
25
+ if hash.key?("class")
26
+ exception_class = hash["class"].constantize
27
+ exception = exception_class.new(hash["message"])
28
+ exception.set_backtrace(hash["backtrace"].map do |path, location|
29
+ [path, location].join("/")
30
+ end)
31
+ exception
32
+ elsif hash.key?("yaml")
33
+ if YAML.respond_to?(:unsafe_load)
34
+ YAML.unsafe_load(hash["yaml"])
35
+ else
36
+ YAML.load(hash["yaml"]) # rubocop:disable Security/YAMLLoad
37
+ end
38
+ end
34
39
  end
35
40
 
36
41
  def serialize?(argument)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AcidicJob
4
- VERSION = "0.8.8"
4
+ VERSION = "0.9.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acidic_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.8
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - fractaledmind
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-26 00:00:00.000000000 Z
11
+ date: 2023-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activejob