celluloid 0.18.0.pre → 0.18.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 +5 -5
- data/CHANGES.md +258 -39
- data/CONDUCT.md +13 -0
- data/CONTRIBUTING.md +39 -0
- data/README.md +54 -165
- data/REFACTOR.md +1 -0
- data/architecture.md +120 -0
- data/examples/basic_usage.rb +1 -1
- data/examples/configurations.rb +78 -0
- data/examples/futures.rb +1 -1
- data/examples/ring.rb +5 -4
- data/examples/simple_pmap.rb +1 -1
- data/examples/stack.rb +2 -2
- data/examples/supervisors_and_registry.rb +82 -0
- data/examples/timers.rb +2 -2
- data/lib/celluloid.rb +72 -47
- data/lib/celluloid/actor.rb +27 -17
- data/lib/celluloid/actor/system.rb +13 -29
- data/lib/celluloid/autostart.rb +5 -5
- data/lib/celluloid/call/async.rb +2 -0
- data/lib/celluloid/call/sync.rb +10 -3
- data/lib/celluloid/calls.rb +5 -12
- data/lib/celluloid/cell.rb +5 -9
- data/lib/celluloid/condition.rb +3 -3
- data/lib/celluloid/core_ext.rb +0 -2
- data/lib/celluloid/debug.rb +3 -0
- data/lib/celluloid/exceptions.rb +2 -2
- data/lib/celluloid/future.rb +7 -9
- data/lib/celluloid/group.rb +12 -8
- data/lib/celluloid/group/pool.rb +1 -3
- data/lib/celluloid/group/spawner.rb +2 -6
- data/lib/celluloid/internals/call_chain.rb +15 -0
- data/lib/celluloid/internals/cpu_counter.rb +62 -0
- data/lib/celluloid/internals/handlers.rb +42 -0
- data/lib/celluloid/internals/links.rb +38 -0
- data/lib/celluloid/internals/logger.rb +104 -0
- data/lib/celluloid/internals/method.rb +34 -0
- data/lib/celluloid/internals/properties.rb +32 -0
- data/lib/celluloid/internals/receivers.rb +64 -0
- data/lib/celluloid/internals/registry.rb +102 -0
- data/lib/celluloid/internals/responses.rb +46 -0
- data/lib/celluloid/internals/signals.rb +24 -0
- data/lib/celluloid/internals/stack.rb +74 -0
- data/lib/celluloid/internals/stack/dump.rb +12 -0
- data/lib/celluloid/internals/stack/states.rb +72 -0
- data/lib/celluloid/internals/stack/summary.rb +12 -0
- data/lib/celluloid/internals/task_set.rb +51 -0
- data/lib/celluloid/internals/thread_handle.rb +52 -0
- data/lib/celluloid/internals/uuid.rb +40 -0
- data/lib/celluloid/logging/incident.rb +21 -0
- data/lib/celluloid/logging/incident_logger.rb +147 -0
- data/lib/celluloid/logging/incident_reporter.rb +49 -0
- data/lib/celluloid/logging/log_event.rb +20 -0
- data/lib/celluloid/logging/ring_buffer.rb +64 -0
- data/lib/celluloid/mailbox.rb +22 -9
- data/lib/celluloid/mailbox/evented.rb +13 -5
- data/lib/celluloid/notifications.rb +95 -0
- data/lib/celluloid/pool.rb +6 -0
- data/lib/celluloid/probe.rb +81 -0
- data/lib/celluloid/proxy/abstract.rb +9 -9
- data/lib/celluloid/proxy/async.rb +1 -1
- data/lib/celluloid/proxy/block.rb +2 -2
- data/lib/celluloid/proxy/cell.rb +1 -1
- data/lib/celluloid/proxy/future.rb +2 -4
- data/lib/celluloid/proxy/sync.rb +1 -3
- data/lib/celluloid/rspec.rb +22 -33
- data/lib/celluloid/supervision.rb +17 -0
- data/lib/celluloid/supervision/configuration.rb +169 -0
- data/lib/celluloid/supervision/configuration/injections.rb +8 -0
- data/lib/celluloid/supervision/configuration/instance.rb +113 -0
- data/lib/celluloid/supervision/constants.rb +123 -0
- data/lib/celluloid/supervision/container.rb +144 -0
- data/lib/celluloid/supervision/container/behavior.rb +89 -0
- data/lib/celluloid/supervision/container/behavior/pool.rb +71 -0
- data/lib/celluloid/supervision/container/behavior/tree.rb +23 -0
- data/lib/celluloid/supervision/container/injections.rb +8 -0
- data/lib/celluloid/supervision/container/instance.rb +116 -0
- data/lib/celluloid/supervision/container/pool.rb +210 -0
- data/lib/celluloid/supervision/service.rb +27 -0
- data/lib/celluloid/supervision/supervise.rb +34 -0
- data/lib/celluloid/supervision/validation.rb +40 -0
- data/lib/celluloid/supervision/version.rb +5 -0
- data/lib/celluloid/system_events.rb +11 -6
- data/lib/celluloid/task.rb +25 -12
- data/lib/celluloid/task/fibered.rb +2 -0
- data/lib/celluloid/task/threaded.rb +3 -3
- data/lib/celluloid/test.rb +5 -2
- data/lib/celluloid/thread.rb +0 -2
- data/lib/celluloid/version.rb +1 -1
- data/spec/celluloid/block_spec.rb +29 -32
- data/spec/celluloid/calls_spec.rb +5 -15
- data/spec/celluloid/future_spec.rb +2 -2
- data/spec/celluloid/internals/cpu_counter_spec.rb +129 -0
- data/spec/celluloid/internals/links_spec.rb +43 -0
- data/spec/celluloid/internals/properties_spec.rb +40 -0
- data/spec/celluloid/internals/registry_spec.rb +62 -0
- data/spec/celluloid/internals/stack/dump_spec.rb +4 -0
- data/spec/celluloid/internals/stack/summary_spec.rb +4 -0
- data/spec/celluloid/internals/thread_handle_spec.rb +60 -0
- data/spec/celluloid/internals/uuid_spec.rb +9 -0
- data/spec/celluloid/logging/ring_buffer_spec.rb +36 -0
- data/spec/celluloid/mailbox/evented_spec.rb +11 -22
- data/spec/celluloid/misc/leak_spec.rb +3 -4
- data/spec/celluloid/notifications_spec.rb +140 -0
- data/spec/celluloid/probe_spec.rb +102 -0
- data/spec/celluloid/proxy_spec.rb +30 -30
- data/spec/celluloid/supervision/behavior_spec.rb +74 -0
- data/spec/celluloid/supervision/configuration_spec.rb +181 -0
- data/spec/celluloid/supervision/container_spec.rb +72 -0
- data/spec/celluloid/supervision/instance_spec.rb +13 -0
- data/spec/celluloid/supervision/root_spec.rb +28 -0
- data/spec/celluloid/supervision/supervisor_spec.rb +93 -0
- data/spec/celluloid/task/fibered_spec.rb +1 -3
- data/spec/celluloid/task/threaded_spec.rb +1 -3
- data/spec/shared/actor_examples.rb +58 -33
- data/spec/shared/group_examples.rb +2 -2
- data/spec/shared/mailbox_examples.rb +1 -1
- data/spec/shared/stack_examples.rb +87 -0
- data/spec/shared/task_examples.rb +2 -3
- data/spec/spec_helper.rb +2 -4
- data/spec/support/configure_rspec.rb +2 -3
- data/spec/support/coverage.rb +2 -4
- data/spec/support/crash_checking.rb +2 -2
- data/spec/support/examples/actor_class.rb +3 -8
- data/spec/support/examples/call_class.rb +2 -2
- data/spec/support/examples/container_class.rb +35 -0
- data/spec/support/examples/evented_mailbox_class.rb +1 -2
- data/spec/support/examples/stack_classes.rb +58 -0
- data/spec/support/examples/stack_methods.rb +23 -0
- data/spec/support/examples/subordinate_class.rb +19 -0
- data/spec/support/logging.rb +2 -34
- data/spec/support/loose_threads.rb +3 -16
- data/spec/support/reset_class_variables.rb +5 -1
- data/spec/support/stubbing.rb +1 -1
- metadata +91 -323
- data/culture/CONDUCT.md +0 -38
- data/culture/GSoC/1010-why_we_will_participate.md +0 -17
- data/culture/GSoC/1020-how_mentors_stay_engaged.md +0 -7
- data/culture/GSoC/1030-keeping_students_on_schedule.md +0 -9
- data/culture/GSoC/1040-getting_students_involved.md +0 -5
- data/culture/GSoC/1050-student_involvement_after.md +0 -5
- data/culture/GSoC/README.md +0 -16
- data/culture/Gemfile +0 -9
- data/culture/LICENSE.txt +0 -22
- data/culture/README.md +0 -22
- data/culture/Rakefile +0 -5
- data/culture/SYNC.md +0 -70
- data/culture/celluloid-culture.gemspec +0 -18
- data/culture/gems/README.md +0 -39
- data/culture/gems/dependencies.yml +0 -93
- data/culture/gems/loader.rb +0 -101
- data/culture/rubocop/README.md +0 -38
- data/culture/rubocop/lint.yml +0 -8
- data/culture/rubocop/metrics.yml +0 -15
- data/culture/rubocop/perf.yml +0 -0
- data/culture/rubocop/rubocop.yml +0 -5
- data/culture/rubocop/style.yml +0 -61
- data/culture/spec/gems_spec.rb +0 -2
- data/culture/spec/spec_helper.rb +0 -0
- data/culture/spec/sync_spec.rb +0 -2
- data/culture/sync.rb +0 -56
- data/culture/tasks/rspec.rake +0 -5
- data/culture/tasks/rubocop.rake +0 -2
- data/lib/celluloid/actor/manager.rb +0 -7
- data/lib/celluloid/backported.rb +0 -2
- data/lib/celluloid/current.rb +0 -2
- data/lib/celluloid/deprecate.rb +0 -34
- data/lib/celluloid/fiber.rb +0 -32
- data/lib/celluloid/managed.rb +0 -3
- data/lib/celluloid/notices.rb +0 -15
- data/spec/deprecate/actor_system_spec.rb +0 -72
- data/spec/deprecate/block_spec.rb +0 -52
- data/spec/deprecate/calls_spec.rb +0 -39
- data/spec/deprecate/evented_mailbox_spec.rb +0 -34
- data/spec/deprecate/future_spec.rb +0 -32
- data/spec/deprecate/internal_pool_spec.rb +0 -4
- data/spec/support/env.rb +0 -21
data/culture/rubocop/README.md
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
# About
|
2
|
-
[RuboCop](https://github.com/bbatsov/rubocop) is a ruby static code analyzer.
|
3
|
-
It's more than just a lint. It verifies the code against ruby best practices and performs code correctness analysis.
|
4
|
-
Celluloid culture doesn't always agree with all rubocop default policies and so we provide a rubocop configuration file that overrides its default behavior.
|
5
|
-
|
6
|
-
# Integration
|
7
|
-
|
8
|
-
[Integrate `celluloid/culture`](../README.md#integration), then include `culture/rupocop/.rubocop.yml` in your default rubocop config.
|
9
|
-
|
10
|
-
##### Add celluloid/culture as GIT submodule:
|
11
|
-
|
12
|
-
* See instructions: [Integrate the `celluloid/culture` sub-module](../README.md#integration)
|
13
|
-
|
14
|
-
##### Include `culture/rupocop/rubocop.yml` in the `.rubocop.yml` in the root of your project:
|
15
|
-
```yml
|
16
|
-
inherit_from:
|
17
|
-
- culture/rubocop/rubocop.yml
|
18
|
-
```
|
19
|
-
|
20
|
-
# How to add rubocop to your project
|
21
|
-
|
22
|
-
The `rubocop` gem is automatically included by `Celluloid::Sync.gems` when that is [implemented](../SYNC.md).
|
23
|
-
|
24
|
-
##### Add a 'rubocop' target in your `Rakefile`
|
25
|
-
|
26
|
-
# Hints
|
27
|
-
It's possible to use rubocop for autocorrection of minor problems.
|
28
|
-
|
29
|
-
Always verify these changes by running:
|
30
|
-
|
31
|
-
```sh
|
32
|
-
bundle exec rubocop
|
33
|
-
```
|
34
|
-
|
35
|
-
Once you are ready to auto-corret the issues you are shown, run it with the `-a` option:
|
36
|
-
```sh
|
37
|
-
bundle exec rubocop -a
|
38
|
-
```
|
data/culture/rubocop/lint.yml
DELETED
data/culture/rubocop/metrics.yml
DELETED
data/culture/rubocop/perf.yml
DELETED
File without changes
|
data/culture/rubocop/rubocop.yml
DELETED
data/culture/rubocop/style.yml
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
Style/Documentation:
|
2
|
-
Enabled: false
|
3
|
-
|
4
|
-
Style/ModuleFunction:
|
5
|
-
Enabled: false
|
6
|
-
|
7
|
-
Style/AndOr:
|
8
|
-
Enabled: true
|
9
|
-
|
10
|
-
Style/StringLiterals:
|
11
|
-
Enabled: true
|
12
|
-
EnforcedStyle: double_quotes
|
13
|
-
|
14
|
-
Style/EachWithObject:
|
15
|
-
Enabled: true
|
16
|
-
|
17
|
-
Style/InfiniteLoop:
|
18
|
-
Enabled: false
|
19
|
-
|
20
|
-
Style/SpaceAroundEqualsInParameterDefault:
|
21
|
-
Enabled: false
|
22
|
-
|
23
|
-
Style/SpaceInsideBlockBraces:
|
24
|
-
Enabled: false
|
25
|
-
|
26
|
-
Style/AccessModifierIndentation:
|
27
|
-
Enabled: false
|
28
|
-
|
29
|
-
Style/TrailingCommaInArguments:
|
30
|
-
Enabled: true
|
31
|
-
EnforcedStyleForMultiline: comma
|
32
|
-
|
33
|
-
Style/TrailingCommaInLiteral:
|
34
|
-
Enabled: true
|
35
|
-
EnforcedStyleForMultiline: comma
|
36
|
-
|
37
|
-
Style/SpaceInsideBlockBraces:
|
38
|
-
Enabled: true
|
39
|
-
EnforcedStyle: space
|
40
|
-
|
41
|
-
Style/SpaceInsideHashLiteralBraces:
|
42
|
-
Enabled: true
|
43
|
-
EnforcedStyle: no_space
|
44
|
-
|
45
|
-
Style/EmptyLinesAroundAccessModifier:
|
46
|
-
Enabled: false
|
47
|
-
|
48
|
-
Style/RescueModifier:
|
49
|
-
Enabled: false
|
50
|
-
|
51
|
-
Style/GlobalVars:
|
52
|
-
Enabled: false
|
53
|
-
|
54
|
-
Style/FormatString:
|
55
|
-
EnforcedStyle: percent
|
56
|
-
|
57
|
-
Style/TrailingUnderscoreVariable:
|
58
|
-
Enabled: false
|
59
|
-
|
60
|
-
Style/ParallelAssignment:
|
61
|
-
Enabled: false
|
data/culture/spec/gems_spec.rb
DELETED
data/culture/spec/spec_helper.rb
DELETED
File without changes
|
data/culture/spec/sync_spec.rb
DELETED
data/culture/sync.rb
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
require "forwardable"
|
2
|
-
|
3
|
-
module Celluloid
|
4
|
-
module Sync
|
5
|
-
class << self
|
6
|
-
undef gem_path rescue nil
|
7
|
-
def gem_path
|
8
|
-
File.expand_path("../../", __FILE__)
|
9
|
-
end
|
10
|
-
|
11
|
-
undef gem_name rescue nil
|
12
|
-
def gem_name
|
13
|
-
Dir["#{File.expand_path('../../', __FILE__)}/*.gemspec"].first.gsub(".gemspec", "").split("/").last
|
14
|
-
end
|
15
|
-
|
16
|
-
undef gem_name? rescue nil
|
17
|
-
def gem_name?
|
18
|
-
!gem_name.nil?
|
19
|
-
end
|
20
|
-
|
21
|
-
undef lib_path rescue nil
|
22
|
-
def lib_path
|
23
|
-
File.expand_path("../../lib", __FILE__)
|
24
|
-
end
|
25
|
-
|
26
|
-
undef lib_gempath rescue nil
|
27
|
-
def lib_gempath
|
28
|
-
"#{lib_path}/#{gem_name.split('-').join('/')}"
|
29
|
-
end
|
30
|
-
|
31
|
-
undef scenario rescue nil
|
32
|
-
def scenario
|
33
|
-
File.basename($PROGRAM_NAME)
|
34
|
-
end
|
35
|
-
|
36
|
-
undef bundler? rescue nil
|
37
|
-
def bundler?
|
38
|
-
scenario == "bundle"
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
raise "Missing gemspec." unless gem_name?
|
43
|
-
$LOAD_PATH.push(gem_path)
|
44
|
-
$LOAD_PATH.push(lib_path)
|
45
|
-
|
46
|
-
# TODO: This will likely need to be done differently if INSIDE a cut gem.
|
47
|
-
if scenario == "bundle"
|
48
|
-
`cd #{gem_path}/culture; git pull origin master` if ARGV.first == "update"
|
49
|
-
end
|
50
|
-
|
51
|
-
require("#{gem_path}/culture/gems/loader")
|
52
|
-
if File.exist?(version = "#{lib_gempath}/version.rb")
|
53
|
-
require(version)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
data/culture/tasks/rspec.rake
DELETED
data/culture/tasks/rubocop.rake
DELETED
data/lib/celluloid/backported.rb
DELETED
data/lib/celluloid/current.rb
DELETED
data/lib/celluloid/deprecate.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
class Thread
|
2
|
-
def self.mailbox
|
3
|
-
Celluloid.mailbox
|
4
|
-
end
|
5
|
-
|
6
|
-
def self.receive(timeout = nil, &block)
|
7
|
-
Celluloid.receive(timeout, &block)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
module Celluloid
|
12
|
-
ActorSystem = Actor::System
|
13
|
-
|
14
|
-
SyncCall = Call::Sync
|
15
|
-
AsyncCall = Call::Async
|
16
|
-
BlockCall = Call::Block
|
17
|
-
|
18
|
-
AbstractProxy = Proxy::Abstract
|
19
|
-
ActorProxy = Proxy::Actor
|
20
|
-
AsyncProxy = Proxy::Async
|
21
|
-
BlockProxy = Proxy::Block
|
22
|
-
CellProxy = Proxy::Cell
|
23
|
-
FutureProxy = Proxy::Future
|
24
|
-
SyncProxy = Proxy::Sync
|
25
|
-
|
26
|
-
EventedMailbox = Mailbox::Evented
|
27
|
-
InternalPool = Group::Pool
|
28
|
-
|
29
|
-
TaskThread = Task::Threaded
|
30
|
-
TaskFiber = Task::Fibered
|
31
|
-
|
32
|
-
Task::TerminatedError = TaskTerminated
|
33
|
-
Task::TimeoutError = TaskTimeout
|
34
|
-
end
|
data/lib/celluloid/fiber.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
# Fibers are hard... let's go shopping!
|
2
|
-
begin
|
3
|
-
require "fiber"
|
4
|
-
rescue LoadError => ex
|
5
|
-
if defined? JRUBY_VERSION
|
6
|
-
if RUBY_VERSION < "1.9.2"
|
7
|
-
raise LoadError, "Celluloid requires JRuby 1.9 mode. Please pass the --1.9 flag or set JRUBY_OPTS=--1.9"
|
8
|
-
end
|
9
|
-
|
10
|
-
# Fibers are broken on JRuby 1.6.5. This works around the issue
|
11
|
-
if JRUBY_VERSION[/^1\.6\.5/]
|
12
|
-
require "jruby"
|
13
|
-
org.jruby.ext.fiber.FiberExtLibrary.new.load(JRuby.runtime, false)
|
14
|
-
class org.jruby.ext.fiber::ThreadFiber
|
15
|
-
field_accessor :state
|
16
|
-
end
|
17
|
-
|
18
|
-
class Fiber
|
19
|
-
def alive?
|
20
|
-
JRuby.reference(self).state != org.jruby.ext.fiber.ThreadFiberState::FINISHED
|
21
|
-
end
|
22
|
-
end
|
23
|
-
else
|
24
|
-
# Just in case subsequent JRuby releases have broken fibers :/
|
25
|
-
raise ex
|
26
|
-
end
|
27
|
-
elsif defined?(RUBY_ENGINE) && RUBY_ENGINE == "rbx"
|
28
|
-
raise LoadError, "Celluloid requires Rubinius 1.9 mode. Please pass the -X19 flag."
|
29
|
-
else
|
30
|
-
raise ex
|
31
|
-
end
|
32
|
-
end
|
data/lib/celluloid/managed.rb
DELETED
data/lib/celluloid/notices.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
module Celluloid
|
2
|
-
module Notices
|
3
|
-
class << self
|
4
|
-
@@notices = []
|
5
|
-
|
6
|
-
def backported
|
7
|
-
@@notices << [:info, "Celluloid #{Celluloid::VERSION} is running in BACKPORTED mode. [ http://git.io/vJf3J ]"]
|
8
|
-
end
|
9
|
-
|
10
|
-
def output
|
11
|
-
@@notices.each { |type, notice| Celluloid::Internals::Logger.send type, notice }
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,72 +0,0 @@
|
|
1
|
-
RSpec.describe "Deprecated Celluloid::ActorSystem" do
|
2
|
-
subject { Celluloid::ActorSystem.new }
|
3
|
-
|
4
|
-
class DeprecatedTestActor
|
5
|
-
include Celluloid
|
6
|
-
end
|
7
|
-
|
8
|
-
it "supports non-global ActorSystem" do
|
9
|
-
subject.within do
|
10
|
-
expect(Celluloid.actor_system).to eq(subject)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
it "starts default actors" do
|
15
|
-
subject.start
|
16
|
-
expect(subject.registered).to eq(Celluloid::ActorSystem::ROOT_SERVICES.map { |r| r[:as] })
|
17
|
-
subject.shutdown
|
18
|
-
end
|
19
|
-
|
20
|
-
it "support getting threads" do
|
21
|
-
subject.start
|
22
|
-
queue = Queue.new
|
23
|
-
thread = subject.get_thread do
|
24
|
-
expect(Celluloid.actor_system).to eq(subject)
|
25
|
-
queue << nil
|
26
|
-
end
|
27
|
-
queue.pop
|
28
|
-
subject.shutdown
|
29
|
-
end
|
30
|
-
|
31
|
-
it "allows a stack dump" do
|
32
|
-
expect(subject.stack_dump).to be_a(Celluloid::StackDump)
|
33
|
-
end
|
34
|
-
|
35
|
-
it "returns named actors" do
|
36
|
-
subject.start
|
37
|
-
|
38
|
-
subject.within do
|
39
|
-
DeprecatedTestActor.supervise_as :test
|
40
|
-
end
|
41
|
-
|
42
|
-
expect(subject.registered).to include(:test)
|
43
|
-
subject.shutdown
|
44
|
-
end
|
45
|
-
|
46
|
-
it "returns running actors" do
|
47
|
-
expect(subject.running).to be_empty
|
48
|
-
|
49
|
-
first = subject.within do
|
50
|
-
DeprecatedTestActor.new
|
51
|
-
end
|
52
|
-
|
53
|
-
second = subject.within do
|
54
|
-
DeprecatedTestActor.new
|
55
|
-
end
|
56
|
-
|
57
|
-
expect(subject.running).to eq([first, second])
|
58
|
-
subject.shutdown
|
59
|
-
end
|
60
|
-
|
61
|
-
it "shuts down" do
|
62
|
-
subject.shutdown
|
63
|
-
|
64
|
-
expect { subject.get_thread }
|
65
|
-
.to raise_error(Celluloid::NotActive)
|
66
|
-
end
|
67
|
-
|
68
|
-
it "warns nicely when no actor system is started" do
|
69
|
-
expect { DeprecatedTestActor.new }
|
70
|
-
.to raise_error("Celluloid is not yet started; use Celluloid.boot")
|
71
|
-
end
|
72
|
-
end unless $CELLULOID_BACKPORTED == false
|
@@ -1,52 +0,0 @@
|
|
1
|
-
RSpec.describe "Deprecated Blocks", actor_system: :global do
|
2
|
-
class DeprecatedBlockActor
|
3
|
-
include Celluloid
|
4
|
-
|
5
|
-
def initialize(name)
|
6
|
-
@name = name
|
7
|
-
end
|
8
|
-
attr_reader :name
|
9
|
-
|
10
|
-
def ask_for_something(other)
|
11
|
-
sender_actor = current_actor
|
12
|
-
$data << [:outside, @name, current_actor.name]
|
13
|
-
other.do_something_and_callback do |value|
|
14
|
-
$data << [:yielded, @name, current_actor.name]
|
15
|
-
$data << receive_result(:self)
|
16
|
-
$data << current_actor.receive_result(:current_actor)
|
17
|
-
$data << sender_actor.receive_result(:sender)
|
18
|
-
"somevalue"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def do_something_and_callback
|
23
|
-
$data << [:something, @name, current_actor.name]
|
24
|
-
$data << yield(:foo)
|
25
|
-
end
|
26
|
-
|
27
|
-
def receive_result(result)
|
28
|
-
[result, @name, current_actor.name]
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
it "works" do
|
33
|
-
$data = []
|
34
|
-
|
35
|
-
a1 = DeprecatedBlockActor.new("one")
|
36
|
-
a2 = DeprecatedBlockActor.new("two")
|
37
|
-
|
38
|
-
a1.ask_for_something a2
|
39
|
-
|
40
|
-
expected = [
|
41
|
-
[:outside, "one", "one"],
|
42
|
-
[:something, "two", "two"],
|
43
|
-
[:yielded, "one", "one"],
|
44
|
-
[:self, "one", "one"],
|
45
|
-
[:current_actor, "one", "one"],
|
46
|
-
[:sender, "one", "one"],
|
47
|
-
"somevalue",
|
48
|
-
]
|
49
|
-
|
50
|
-
expect($data).to eq(expected)
|
51
|
-
end
|
52
|
-
end unless $CELLULOID_BACKPORTED == false
|