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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3b46bd12e3bb7161b9e671bd842ef5a13c2ae4f9
4
- data.tar.gz: a183a4bb24119e27bad235db14edf63abc18d491
3
+ metadata.gz: c3574b3a51213a0a85bbaab99f588b0d2d701a72
4
+ data.tar.gz: 243253027cbb504a7d8ae3b9707bb250b05d954e
5
5
  SHA512:
6
- metadata.gz: c5217696b270d9478d2019197dd355a49778c73a7c9e6fd281794d3e20ac660a8d7a2c37e88d654f31541ebe1fa7a4f0d3d9cf1bf757fcfcd5b4ab6a4e49cc0f
7
- data.tar.gz: 9d4620acb3492ded7de9496430f99ce377c4f10847e295f0ea5b4b72578a45dde122ee1082e56d7c8f881ef7e740b933a9c5969ae9e467592a99a575792123a8
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
- #Operation
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
- #Builder
84
+ ### Builder
85
85
 
86
86
  Builder useful for that things you usually do at before_create/update/destroy callbacks.
87
87
 
88
- #Specification
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
- #Runner
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
- #Serializer
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
- #Callback
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
- #Validators
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
- (queue.blank? ? self.class : job_method).call(
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
 
@@ -1,3 +1,3 @@
1
1
  module Operationable
2
- VERSION = "0.3.6"
2
+ VERSION = "0.3.8"
3
3
  end
@@ -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.6
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-07-17 00:00:00.000000000 Z
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