acidic_job 1.0.0.pre27 → 1.0.0.pre28
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -1
- data/README.md +1 -1
- data/lib/acidic_job/serializer.rb +33 -4
- data/lib/acidic_job/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec26e6c8087cb17255d82e8f4b1df56d2805ae936836312135552e38c140d4e2
|
4
|
+
data.tar.gz: ec268b9d40c12aa9fd2c32d7c48bb75fa462ce2bdde4f0a27bacdb2fac853aa9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8fba84289d1d29b00c44fe535d66c5af11e0c1addb0f7d061b760bc6a2bbd0bc79d84b7294d5bfde340990e1a49a723d4910eaa70f2c60f96eb5784b25c5f4e
|
7
|
+
data.tar.gz: 88fb08f4e42fa0bb99622b32a57c4ca3bbdb657f6d8c6cbf13b9ef64fc52307f27777e88c32102043b0b5e2f4f7f12ed066b46c69ce5cf92f3fae0948faaf648
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
acidic_job (1.0.0.
|
4
|
+
acidic_job (1.0.0.pre28)
|
5
5
|
activerecord
|
6
6
|
activesupport
|
7
7
|
database_cleaner
|
@@ -144,6 +144,8 @@ GEM
|
|
144
144
|
nokogiri (1.13.7)
|
145
145
|
mini_portile2 (~> 2.8.0)
|
146
146
|
racc (~> 1.4)
|
147
|
+
nokogiri (1.13.7-x86_64-darwin)
|
148
|
+
racc (~> 1.4)
|
147
149
|
noticed (1.5.9)
|
148
150
|
http (>= 4.0.0)
|
149
151
|
rails (>= 5.2.0)
|
data/README.md
CHANGED
@@ -246,7 +246,7 @@ class RideCreateJob < ActiveJob::Base
|
|
246
246
|
end
|
247
247
|
```
|
248
248
|
|
249
|
-
**Note:** This does mean that you are restricted to objects that can be serialized by ActiveRecord,
|
249
|
+
**Note:** This does mean that you are restricted to objects that can be serialized by **`ActiveJob`** (for more info, see [here](https://edgeguides.rubyonrails.org/active_job_basics.html#supported-types-for-arguments)). This means you can persist ActiveRecord models, and any simple Ruby data types, but you can't persist things like Procs or custom class instances, for example.
|
250
250
|
|
251
251
|
**Note:** You will note the use of `self.ride = ...` in the code sample above. In order to call the attribute setter method that will sync with the database record, you _must_ use this style. `@ride = ...` and/or `ride = ...` will both fail to sync the value with the database record.
|
252
252
|
|
@@ -6,7 +6,6 @@ require "json"
|
|
6
6
|
|
7
7
|
class WorkerSerializer < ActiveJob::Serializers::ObjectSerializer
|
8
8
|
def serialize(worker)
|
9
|
-
# {"_aj_serialized"=>"WorkerSerializer", "class"=>"SuccessfulArgWorker", "args"=>[123], "kwargs"=>{}}]
|
10
9
|
super(
|
11
10
|
"class" => worker.class.name,
|
12
11
|
"args" => worker.instance_variable_get(:@__acidic_job_args),
|
@@ -20,7 +19,32 @@ class WorkerSerializer < ActiveJob::Serializers::ObjectSerializer
|
|
20
19
|
end
|
21
20
|
|
22
21
|
def serialize?(argument)
|
23
|
-
defined?(Sidekiq) && argument.class.include?(Sidekiq::Worker)
|
22
|
+
defined?(::Sidekiq) && argument.class.include?(::Sidekiq::Worker)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class JobSerializer < ActiveJob::Serializers::ObjectSerializer
|
27
|
+
def serialize(job)
|
28
|
+
super(job.serialize)
|
29
|
+
end
|
30
|
+
|
31
|
+
def deserialize(hash)
|
32
|
+
job = ActiveJob::Base.deserialize(hash)
|
33
|
+
job.send(:deserialize_arguments_if_needed)
|
34
|
+
if job.arguments.last.is_a?(Hash)
|
35
|
+
*args, kwargs = job.arguments
|
36
|
+
else
|
37
|
+
args = job.arguments
|
38
|
+
kwargs = {}
|
39
|
+
end
|
40
|
+
job.instance_variable_set(:@__acidic_job_args, args)
|
41
|
+
job.instance_variable_set(:@__acidic_job_kwargs, kwargs)
|
42
|
+
|
43
|
+
job
|
44
|
+
end
|
45
|
+
|
46
|
+
def serialize?(argument)
|
47
|
+
defined?(::ActiveJob::Base) && argument.class < ::ActiveJob::Base
|
24
48
|
end
|
25
49
|
end
|
26
50
|
|
@@ -93,8 +117,13 @@ class RecoveryPointSerializer < ActiveJob::Serializers::ObjectSerializer
|
|
93
117
|
end
|
94
118
|
end
|
95
119
|
|
96
|
-
ActiveJob::Serializers.add_serializers
|
97
|
-
|
120
|
+
ActiveJob::Serializers.add_serializers(
|
121
|
+
WorkerSerializer,
|
122
|
+
JobSerializer,
|
123
|
+
ExceptionSerializer,
|
124
|
+
FinishedPointSerializer,
|
125
|
+
RecoveryPointSerializer
|
126
|
+
)
|
98
127
|
|
99
128
|
# ...
|
100
129
|
module AcidicJob
|
data/lib/acidic_job/version.rb
CHANGED
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: 1.0.0.
|
4
|
+
version: 1.0.0.pre28
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- fractaledmind
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|