deferred_request 1.0.1 → 1.0.2

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: 9f42d6bf58362f626487d9c3cb0eb217458f701f7a2914f3d61eecc16e2408f8
4
- data.tar.gz: aab7531ae28bf9f9f7d9b489c2295c4d3f653c51926a97040702f3243adbb1e9
3
+ metadata.gz: 4a12d759682c3ca5d2e1171cc6da944e80ce6a9b0f3ccfb65dcaca5d10b2a0c9
4
+ data.tar.gz: 6ef803175b32093e08d330caebb28d06fbd31e0c3db33f34304ec3163b31e63a
5
5
  SHA512:
6
- metadata.gz: 6550b077f0211a6be67703a5532178d39c4f42e116d43f11c89b144e0c7bde7167bf0e7c1939cd4364bdc2cc5fcf0cd5e3c84533a10e10f896a4c4e9c0610223
7
- data.tar.gz: d55b79b4b0e56f400aaba2b2599be015e71e153e0dc64a3cb484ae32b32aa613dbc42c870de5407b893f0aba761a5adde74e625c48c87dc14a7ecc7f8ca00382
6
+ metadata.gz: d2efcff67bba0f0d7fcd75ae8e08e8cb120412753cc1a1e5439ea37b13bae5323095a866e9d7671be31c13701e8c85aeeb060592537d9b1e087a658884a08cb7
7
+ data.tar.gz: 5004f590c976b08777e42753b19bb53588dfe54386e6470818ab366f60b363748f0c87728c963a499eba0cd6fafcbba0b422430c35353f784ff3d10921ff5399
data/README.md CHANGED
@@ -62,6 +62,27 @@ end
62
62
  # ...
63
63
  ```
64
64
 
65
+ ### Class Methods
66
+ - `DeferredRequest::DeferredRequest.from_request(request)` - returns a DeferredRequest::DeferredRequest object (unsaved). Returns the DeferredRequest::DeferredRequest instance.
67
+ - `DeferredRequest::DeferredRequest.perform_later_from_request!(request)` - creates a deferred request (saved) and enqueues job to process the request. Returns the DeferredRequest::DeferredRequest instance.
68
+
69
+ ### Instance Methods
70
+ - `deferred_request.perform_later` - Enqueues a job to `perform!` the deferred request later. Returns the job id.
71
+ - `deferred_request.perform!` - Calls the `#{controller}_deferred(deferred_request)` method to be processed. Returns the deferred_request instance or raises an exception.
72
+
73
+ ## Configuration
74
+
75
+ - `DeferredRequest.model_parent_class` - Set the parent class
76
+ - `DeferredRequest.deferred_request_instance_class` - Set the instance class that is created (in-case you sub-class)
77
+ - `DeferredRequest.job_queue` - Set the job queue for the deferred request job
78
+
79
+ ```ruby
80
+ # config/initializers/deferred_request.rb
81
+ DeferredRequest.model_parent_class = "MyParentClass"
82
+ DeferredRequest.job_queue = "low"
83
+ ```
84
+
85
+
65
86
  ## 🙏 Contributing
66
87
 
67
88
  If you have an issue you'd like to submit, please do so using the issue tracker in GitHub. In order for us to help you in the best way possible, please be as detailed as you can.
@@ -1,6 +1,6 @@
1
1
  module DeferredRequest
2
2
  class DeferredRequestJob < ApplicationJob
3
- queue_as :default
3
+ queue_as ::DeferredRequest.job_queue
4
4
 
5
5
  def perform(*args)
6
6
  id = args[0]
@@ -1,5 +1,5 @@
1
1
  module DeferredRequest
2
- class DeferredRequest < ApplicationRecord
2
+ class DeferredRequest < DeferredRequest.model_parent_class.constantize
3
3
  serialize :routing
4
4
  serialize :request
5
5
  serialize :result
@@ -12,7 +12,7 @@ module DeferredRequest
12
12
  # request: ActionDispatch::Request
13
13
  # create a deferred request from a ActionDispatch::Request
14
14
  def self.from_request(request)
15
- deferred_request = DeferredRequest.new
15
+ deferred_request = ::DeferredRequest.deferred_request_instance_class.constantize.new
16
16
 
17
17
  deferred_request.controller = request.controller_class.name
18
18
  deferred_request.action = request.params["action"]
@@ -31,6 +31,8 @@ module DeferredRequest
31
31
  deferred_request.save!
32
32
 
33
33
  deferred_request.perform_later
34
+
35
+ deferred_request
34
36
  end
35
37
 
36
38
  def perform_later
@@ -1,3 +1,3 @@
1
1
  module DeferredRequest
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
@@ -4,5 +4,11 @@ require "deferred_request/engine"
4
4
  module DeferredRequest
5
5
  # Your code goes here...
6
6
  mattr_accessor :model_parent_class
7
- @@model_parent_class = "ActiveRecord::Base"
7
+ @@model_parent_class = "ApplicationRecord"
8
+
9
+ mattr_accessor :deferred_request_instance_class
10
+ @@deferred_request_instance_class = "DeferredRequest::DeferredRequest"
11
+
12
+ mattr_accessor :job_queue
13
+ @@job_queue = "default"
8
14
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deferred_request
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Austin Miller
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-07 00:00:00.000000000 Z
11
+ date: 2022-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails