operationable 0.3.6 → 0.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +9 -9
- data/lib/operationable/runners/base.rb +2 -2
- data/lib/operationable/runners/separate.rb +8 -3
- data/lib/operationable/version.rb +1 -1
- data/operationable.gemspec +0 -2
- metadata +2 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c3574b3a51213a0a85bbaab99f588b0d2d701a72
|
4
|
+
data.tar.gz: 243253027cbb504a7d8ae3b9707bb250b05d954e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfa0941cac79c68e11dd9cbf5d8aa74e128dfeabf484fc118648b44f74ee1c09c9a04109555044dc3b14c21020cd84ec059c278c8366b5c7c4f1afe52dbe6ada
|
7
|
+
data.tar.gz: 7f0a8004854de22cdf2156369e8196bec36f8167d1121f89c3f158438686c3696624f98a334d787116b2487c27c3742c38c2ff298c5099f8a06adf88d5eaf5d1
|
data/README.md
CHANGED
@@ -22,7 +22,7 @@ Or install it yourself as:
|
|
22
22
|
|
23
23
|
Call operation at your controllers
|
24
24
|
|
25
|
-
```
|
25
|
+
```ruby
|
26
26
|
class EntityController < ApplicationController
|
27
27
|
def create
|
28
28
|
op = EntityOperation::Create.new(@entity, current_user)
|
@@ -39,7 +39,7 @@ end
|
|
39
39
|
Move you model callbacks to operation
|
40
40
|
|
41
41
|
|
42
|
-
```
|
42
|
+
```ruby
|
43
43
|
module EntityOperation
|
44
44
|
class Create < Operationable::Create
|
45
45
|
class Builder < Operationable::Builder
|
@@ -76,21 +76,21 @@ module EntityOperation
|
|
76
76
|
end
|
77
77
|
```
|
78
78
|
|
79
|
-
|
79
|
+
### Operation
|
80
80
|
|
81
81
|
Exiting operations: create, update, destroy or use raw Operationable::Operation.
|
82
82
|
Operationable::Create(Update, Destory) inherited from Operationable::Operation
|
83
83
|
|
84
|
-
|
84
|
+
### Builder
|
85
85
|
|
86
86
|
Builder useful for that things you usually do at before_create/update/destroy callbacks.
|
87
87
|
|
88
|
-
|
88
|
+
### Specification
|
89
89
|
|
90
90
|
Specification decides run or not run callback based on boolean value returned from should_ prefixed callback name.
|
91
91
|
If specification not described, callback will called at any case.
|
92
92
|
|
93
|
-
|
93
|
+
### Runner
|
94
94
|
|
95
95
|
Exists two types for Runners - Serial and Separate runner. Serial callbacks will run one after another, at described order.
|
96
96
|
Separate runners not related one for another and can be run simultaneously.
|
@@ -101,16 +101,16 @@ push_to_queue(callback_name, queue_name) if queue_name not passed, callback will
|
|
101
101
|
|
102
102
|
Operations work via ActiveJob, so you can use any adapter that you want.
|
103
103
|
|
104
|
-
|
104
|
+
### Serializer
|
105
105
|
|
106
106
|
Serializer used to define what values should be passed to job(redis do not accept AR instances or other complex structures).
|
107
107
|
Also you don't need all record fields should passed to callbacks.
|
108
108
|
|
109
|
-
|
109
|
+
### Callback
|
110
110
|
|
111
111
|
Class that contain callback methods, that will called after model saved in runtime or in background
|
112
112
|
|
113
|
-
|
113
|
+
### Validators
|
114
114
|
TODO: describe validators
|
115
115
|
|
116
116
|
## Development
|
@@ -58,9 +58,9 @@ module Operationable
|
|
58
58
|
def initialize_callbacks
|
59
59
|
end
|
60
60
|
|
61
|
-
def push_to_queue(*callback_method_names, queue: nil)
|
61
|
+
def push_to_queue(*callback_method_names, queue: nil, params: {})
|
62
62
|
callback_method_names.each do |callback_method_name|
|
63
|
-
callbacks << { callback_method_name: callback_method_name.to_s, queue: queue.to_s }
|
63
|
+
callbacks << { callback_method_name: callback_method_name.to_s, queue: queue.to_s, params: params }
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
@@ -6,10 +6,15 @@ module Operationable
|
|
6
6
|
check_callbacks.each { |callback| process(callback) }
|
7
7
|
end
|
8
8
|
|
9
|
-
def process(callback_method_name:, queue: nil)
|
10
|
-
|
9
|
+
def process(callback_method_name:, queue: nil, params:)
|
10
|
+
callback_class = callback_method_name.to_s.safe_constantize
|
11
|
+
|
12
|
+
(queue.blank? ?
|
13
|
+
self.class :
|
14
|
+
(callback_class || job_class.constantize).method(perform_method)
|
15
|
+
).call(
|
11
16
|
q_options: q_options(callback_method_name, queue),
|
12
|
-
props: props
|
17
|
+
props: {**props, **params}
|
13
18
|
)
|
14
19
|
end
|
15
20
|
|
data/operationable.gemspec
CHANGED
@@ -23,8 +23,6 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.required_ruby_version = '>= 2.1.0'
|
24
24
|
|
25
25
|
spec.add_dependency 'activejob', '>= 4.2.0'
|
26
|
-
spec.add_dependency 'resque-status', '>= 0.5.0'
|
27
|
-
spec.add_dependency 'resque', '1.25.0'
|
28
26
|
|
29
27
|
spec.add_development_dependency "bundler", "~> 1.13"
|
30
28
|
spec.add_development_dependency "rake", "~> 10.0"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: operationable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kirill Suhodolov
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-10-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activejob
|
@@ -25,34 +25,6 @@ dependencies:
|
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 4.2.0
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: resque-status
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - ">="
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: 0.5.0
|
35
|
-
type: :runtime
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - ">="
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: 0.5.0
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: resque
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - '='
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: 1.25.0
|
49
|
-
type: :runtime
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - '='
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: 1.25.0
|
56
28
|
- !ruby/object:Gem::Dependency
|
57
29
|
name: bundler
|
58
30
|
requirement: !ruby/object:Gem::Requirement
|