Module: Async::Await
- Defined in:
- lib/async/await.rb,
lib/async/await/methods.rb,
lib/async/await/version.rb,
lib/async/await/enumerable.rb
Defined Under Namespace
Modules: Enumerable, Methods
Constant Summary
collapse
- VERSION =
"0.5.0"
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.included(klass) ⇒ Object
28
29
30
31
|
# File 'lib/async/await.rb', line 28
def self.included(klass)
klass.include(Methods)
klass.extend(self)
end
|
Instance Method Details
#async(name) ⇒ Object
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/async/await.rb', line 51
def async(name)
original_method = instance_method(name)
remove_method(name)
define_method(name) do |*arguments, &block|
Async::Reactor.run do |task|
original_method.bind(self).call(*arguments, &block)
end
end
ruby2_keywords(name)
end
|
#sync(name) ⇒ Object
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/async/await.rb', line 33
def sync(name)
original_method = instance_method(name)
remove_method(name)
define_method(name) do |*arguments, &block|
if task = Task.current?
original_method.bind(self).call(*arguments, &block)
else
Async::Reactor.run do
original_method.bind(self).call(*arguments, &block)
end.wait
end
end
ruby2_keywords(name)
end
|