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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2b41d1bacc6dc699e4e70e38c535795039f7dbfd5ed4b7ea3671809d7658fc5d
4
- data.tar.gz: 53641ee78275b54defdae3ab1c4ca0087d6e193009c0d3df758114019a5a3efb
3
+ metadata.gz: ec26e6c8087cb17255d82e8f4b1df56d2805ae936836312135552e38c140d4e2
4
+ data.tar.gz: ec268b9d40c12aa9fd2c32d7c48bb75fa462ce2bdde4f0a27bacdb2fac853aa9
5
5
  SHA512:
6
- metadata.gz: d383cde62b69a013979df927ff64d1c99ff591261a103b3694733f65f0fa0d44c1216bf3b7e8638b746a59754efbc32afd410c9039bda9f88a89926e552ee1d9
7
- data.tar.gz: ced115b0b7607c60b48a51d2fd4e2db6442fd0daa44b2a9b648a1ced7598ca3e0f05dd8894359ed163c27287146769d37aebe9e464c989e46ebabfa6ba07d41d
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.pre27)
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, thus no Procs, for example.
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 WorkerSerializer, ExceptionSerializer, FinishedPointSerializer,
97
- RecoveryPointSerializer
120
+ ActiveJob::Serializers.add_serializers(
121
+ WorkerSerializer,
122
+ JobSerializer,
123
+ ExceptionSerializer,
124
+ FinishedPointSerializer,
125
+ RecoveryPointSerializer
126
+ )
98
127
 
99
128
  # ...
100
129
  module AcidicJob
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AcidicJob
4
- VERSION = "1.0.0.pre27"
4
+ VERSION = "1.0.0.pre28"
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: 1.0.0.pre27
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-07-31 00:00:00.000000000 Z
11
+ date: 2022-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord