run_this_async 0.1.0 → 0.2.0
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/lib/run_this_async/async_runner.rb +2 -3
- data/lib/run_this_async/callee/active_record_pointer.rb +7 -0
- data/lib/run_this_async/callee/decoder.rb +25 -0
- data/lib/run_this_async/callee/encoder.rb +25 -0
- data/lib/run_this_async/version.rb +1 -1
- data/lib/run_this_async.rb +5 -1
- data/run_this_async.gemspec +2 -0
- metadata +34 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d8f24535438601f2fe80bf8225445d44a7d2147
|
4
|
+
data.tar.gz: 5929ec09d932b559ed1a4068701905bbe6fa2093
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3420b7cb982633ca61b5705bdd56fd42e89aa8593d5a4d8f89a698dd937288c264eb8e2ec7a323448534e13585665119fb01cc974644de78546d3c03cb938e8f
|
7
|
+
data.tar.gz: b59b52e45490654e924b90a01c768567abdc1764264da6353deb6af8e7050368dfa6a1c1a9e9ba63af44c7a82608ab988abf610d05fa985c80b71af3844b06c5
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'sidekiq'
|
2
|
+
require 'run_this_async/callee/decoder'
|
2
3
|
|
3
4
|
class RunThisAsync::AsyncRunner
|
4
5
|
include ::Sidekiq::Worker
|
@@ -6,9 +7,7 @@ class RunThisAsync::AsyncRunner
|
|
6
7
|
def perform(expected_job_id, callee, method, args = nil)
|
7
8
|
return if unexpected_job_id?(expected_job_id)
|
8
9
|
|
9
|
-
|
10
|
-
callee = Object.const_get(callee)
|
11
|
-
end
|
10
|
+
callee = RunThisAsync::Callee::Decoder.call(callee)
|
12
11
|
|
13
12
|
if method.is_a?(Array)
|
14
13
|
send_chain_of_methods(callee, method, args)
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module RunThisAsync::Callee
|
2
|
+
class Decoder
|
3
|
+
include Concord.new(:callee)
|
4
|
+
include Procto.call
|
5
|
+
|
6
|
+
def call
|
7
|
+
if callee.instance_of?(String)
|
8
|
+
return class_from_string
|
9
|
+
elsif callee.instance_of?(RunThisAsync::ActiveRecordPointer)
|
10
|
+
return activerecord_model
|
11
|
+
end
|
12
|
+
|
13
|
+
callee
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
def class_from_string
|
18
|
+
Object.const_get(callee)
|
19
|
+
end
|
20
|
+
|
21
|
+
def activerecord_model
|
22
|
+
callee.klass.find_by(id: callee.id)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module RunThisAsync::Callee
|
2
|
+
class Encoder
|
3
|
+
include Concord.new(:callee)
|
4
|
+
include Procto.call
|
5
|
+
|
6
|
+
def call
|
7
|
+
if callee.instance_of?(Class)
|
8
|
+
return stringified_class
|
9
|
+
elsif callee.is_a?(ActiveRecord::Base)
|
10
|
+
return activerecord_pointer
|
11
|
+
end
|
12
|
+
|
13
|
+
callee
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
def stringified_class
|
18
|
+
callee.to_s
|
19
|
+
end
|
20
|
+
|
21
|
+
def activerecord_pointer
|
22
|
+
RunThisAsync::ActiveRecordPointer.new(callee.class, callee.id)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/run_this_async.rb
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
require 'run_this_async/version'
|
2
|
+
require 'concord'
|
3
|
+
require 'procto'
|
2
4
|
require 'run_this_async/async_runner'
|
5
|
+
require 'run_this_async/callee/encoder'
|
6
|
+
require 'run_this_async/callee/active_record_pointer'
|
3
7
|
|
4
8
|
module Kernel
|
5
9
|
def run_this(expected_job_id = nil)
|
@@ -10,7 +14,7 @@ end
|
|
10
14
|
module RunThisAsync
|
11
15
|
class AsyncPlan < BasicObject
|
12
16
|
def initialize(callee, expected_job_id)
|
13
|
-
@callee =
|
17
|
+
@callee = ::RunThisAsync::Callee::Encoder.call(callee)
|
14
18
|
@expected_job_id = expected_job_id
|
15
19
|
@methods_to_call = []
|
16
20
|
@with_args = []
|
data/run_this_async.gemspec
CHANGED
@@ -22,4 +22,6 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
23
|
spec.add_development_dependency "rspec", "~> 3.0"
|
24
24
|
spec.add_development_dependency "sidekiq", "~> 4.0"
|
25
|
+
spec.add_development_dependency "concord", "~> 0.1.4"
|
26
|
+
spec.add_development_dependency "procto", "~> 0.0.3"
|
25
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: run_this_async
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dominik Bylica
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,34 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '4.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: concord
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.1.4
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.1.4
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: procto
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.0.3
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.0.3
|
69
97
|
description:
|
70
98
|
email:
|
71
99
|
- byldominik+fenoloftaleina@gmail.com
|
@@ -84,6 +112,9 @@ files:
|
|
84
112
|
- bin/setup
|
85
113
|
- lib/run_this_async.rb
|
86
114
|
- lib/run_this_async/async_runner.rb
|
115
|
+
- lib/run_this_async/callee/active_record_pointer.rb
|
116
|
+
- lib/run_this_async/callee/decoder.rb
|
117
|
+
- lib/run_this_async/callee/encoder.rb
|
87
118
|
- lib/run_this_async/version.rb
|
88
119
|
- run_this_async.gemspec
|
89
120
|
homepage: https://github.com/fenoloftaleina/run_this_async
|
@@ -106,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
106
137
|
version: '0'
|
107
138
|
requirements: []
|
108
139
|
rubyforge_project:
|
109
|
-
rubygems_version: 2.
|
140
|
+
rubygems_version: 2.5.1
|
110
141
|
signing_key:
|
111
142
|
specification_version: 4
|
112
143
|
summary: RunThisAsync allows you to call any chain of methods on a class (or object)
|