celluloid 0.18.0.pre2 → 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 +4 -4
- data/CHANGES.md +146 -2
- data/README.md +27 -142
- data/REFACTOR.md +1 -0
- data/examples/configurations.rb +1 -1
- data/examples/timers.rb +1 -1
- data/lib/celluloid/version.rb +1 -1
- metadata +7 -14
- data/lib/celluloid/backported.rb +0 -6
- data/lib/celluloid/current.rb +0 -4
- data/lib/celluloid/managed.rb +0 -6
- data/lib/celluloid/supervision/container/tree.rb +0 -0
- data/lib/celluloid/supervision/deprecate.rb +0 -9
- data/lib/celluloid/supervision/deprecate/supervise.rb +0 -105
- data/lib/celluloid/supervision/deprecate/validation.rb +0 -54
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fede4c9c3907c29a0dc303e711077a7b3196fc2acaf3b099ee98b197076c3fdc
|
4
|
+
data.tar.gz: f8bd8ffc37cddd24000d66e56d1bafc03796e309101fa4b6f5e02ab5e11f9aac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc813a35e9f74a49a0f875d290e41fe6445dfd7f6778b46bd3e19b741446c590e1b05be2bc697e6d8641548165baee2494a49960fa7e3782f71b50a13cb50ee1
|
7
|
+
data.tar.gz: 9a47f043d4929f833b05187c88a487351e4f26da10038b1045497ed3c7e0fdf980e4b5fe753d7cc4ae1f2db70d0d5fe5966520e2bdff5f08a558c62d82c12fee
|
data/CHANGES.md
CHANGED
@@ -1,6 +1,150 @@
|
|
1
|
-
## 0.18.0
|
1
|
+
## 0.18.0 (2020-12-05)
|
2
2
|
|
3
|
-
|
3
|
+
[0.18.0]: https://github.com/celluloid/celluloid/compare/v0.17.3...v0.18.0
|
4
|
+
|
5
|
+
* [#804](https://github.com/celluloid/celluloid/pull/804)
|
6
|
+
Remove deprecation warnings
|
7
|
+
|
8
|
+
* [#802](https://github.com/celluloid/celluloid/pull/802)
|
9
|
+
Remove lattice link itself.
|
10
|
+
|
11
|
+
* [#797](https://github.com/celluloid/celluloid/pull/797)
|
12
|
+
Update Ruby versions in CI script
|
13
|
+
|
14
|
+
* [#801](https://github.com/celluloid/celluloid/pull/801)
|
15
|
+
Associate Open Collective sponsorship option
|
16
|
+
|
17
|
+
* [#800](https://github.com/celluloid/celluloid/pull/800)
|
18
|
+
Streamline README
|
19
|
+
|
20
|
+
* [#799](https://github.com/celluloid/celluloid/pull/799)
|
21
|
+
Update links, add diagram preview.
|
22
|
+
|
23
|
+
* [#796](https://github.com/celluloid/celluloid/pull/796)
|
24
|
+
Create Class Diagram in Draw.io
|
25
|
+
|
26
|
+
* [#798](https://github.com/celluloid/celluloid/pull/798)
|
27
|
+
Pertinent Newsflash
|
28
|
+
|
29
|
+
* [#792](https://github.com/celluloid/celluloid/pull/792)
|
30
|
+
CI: 2.5.5, 2.6.2
|
31
|
+
|
32
|
+
* [#788](https://github.com/celluloid/celluloid/pull/788)
|
33
|
+
Travis: Include Ruby 2.5, 2.6
|
34
|
+
|
35
|
+
* [#787](https://github.com/celluloid/celluloid/pull/787)
|
36
|
+
Travis config: drop old configuration sudo: false
|
37
|
+
|
38
|
+
* [#786](https://github.com/celluloid/celluloid/pull/786)
|
39
|
+
Travis: use jruby-9.2.5.0
|
40
|
+
|
41
|
+
* [#783](https://github.com/celluloid/celluloid/pull/783)
|
42
|
+
v0.18.0.pre2
|
43
|
+
|
44
|
+
* [#782](https://github.com/celluloid/celluloid/pull/782)
|
45
|
+
Merge 'celluloid-supervision' back into the tree
|
46
|
+
|
47
|
+
* [#781](https://github.com/celluloid/celluloid/pull/781)
|
48
|
+
.gitmodules: No longer used
|
49
|
+
|
50
|
+
* [#780](https://github.com/celluloid/celluloid/pull/780)
|
51
|
+
README.md: Link to unmaintained issue
|
52
|
+
|
53
|
+
* [#778](https://github.com/celluloid/celluloid/pull/778)
|
54
|
+
README.md: Add "maintained: no! (as of 2016)" badge
|
55
|
+
|
56
|
+
* [#777](https://github.com/celluloid/celluloid/pull/777)
|
57
|
+
gemspec: Metadata with supported links
|
58
|
+
|
59
|
+
* [#776](https://github.com/celluloid/celluloid/pull/776)
|
60
|
+
Travis: use jruby-9.2.0.0
|
61
|
+
|
62
|
+
* [#775](https://github.com/celluloid/celluloid/pull/775)
|
63
|
+
Travis: jruby-9.1.17.0
|
64
|
+
|
65
|
+
* [#769](https://github.com/celluloid/celluloid/pull/769)
|
66
|
+
Travis: jruby-9.1.15.0
|
67
|
+
|
68
|
+
* [#768](https://github.com/celluloid/celluloid/pull/768)
|
69
|
+
Travis: use latest JRuby
|
70
|
+
|
71
|
+
* [#767](https://github.com/celluloid/celluloid/pull/767)
|
72
|
+
CHANGES: Add GitHub compare link on each heading
|
73
|
+
|
74
|
+
* [#766](https://github.com/celluloid/celluloid/pull/766)
|
75
|
+
Fix celluloid/celluloid#758
|
76
|
+
|
77
|
+
* [#765](https://github.com/celluloid/celluloid/pull/765)
|
78
|
+
Travis: jruby-9.1.13.0
|
79
|
+
|
80
|
+
* [#761](https://github.com/celluloid/celluloid/pull/761)
|
81
|
+
Travis: jruby-9.1.12.0
|
82
|
+
|
83
|
+
* [#760](https://github.com/celluloid/celluloid/pull/760)
|
84
|
+
Travis: jruby-9.1.10.0
|
85
|
+
|
86
|
+
* [#759](https://github.com/celluloid/celluloid/pull/759)
|
87
|
+
Travis: jruby-9.1.9.0
|
88
|
+
|
89
|
+
* [#757](https://github.com/celluloid/celluloid/pull/757)
|
90
|
+
parameterize error message so old and new Rubies match text
|
91
|
+
|
92
|
+
* [#756](https://github.com/celluloid/celluloid/pull/756)
|
93
|
+
Travis: latest stable rubies
|
94
|
+
|
95
|
+
* [#754](https://github.com/celluloid/celluloid/pull/754)
|
96
|
+
README: Fix badge rendering in Markdown
|
97
|
+
|
98
|
+
* [#753](https://github.com/celluloid/celluloid/pull/753)
|
99
|
+
Travis: use jruby-9.1.8.0
|
100
|
+
|
101
|
+
* [#752](https://github.com/celluloid/celluloid/pull/752)
|
102
|
+
Misspellings
|
103
|
+
|
104
|
+
* [#749](https://github.com/celluloid/celluloid/pull/749)
|
105
|
+
Return false from Celluloid.running? if Celluloid.boot hasn't been called
|
106
|
+
|
107
|
+
* [#751](https://github.com/celluloid/celluloid/pull/751)
|
108
|
+
Travis: Use JRuby 9.1.7.0
|
109
|
+
|
110
|
+
* [#740](https://github.com/celluloid/celluloid/pull/740)
|
111
|
+
Global variables: stop the bleeding
|
112
|
+
|
113
|
+
* [#739](https://github.com/celluloid/celluloid/pull/739)
|
114
|
+
Remove hacks around old MRIs, JRuby, and rbx
|
115
|
+
|
116
|
+
* [#738](https://github.com/celluloid/celluloid/pull/738)
|
117
|
+
Update to RuboCop 0.45.0 (with new rubocop.yml policy)
|
118
|
+
|
119
|
+
* [#737](https://github.com/celluloid/celluloid/pull/737)
|
120
|
+
Simplify dependencies: merge 'essentials' and 'culture' repos
|
121
|
+
|
122
|
+
* [#736](https://github.com/celluloid/celluloid/pull/736)
|
123
|
+
Remove $CELLULOID_BACKPORTED and $CELLULOID_MANAGED
|
124
|
+
|
125
|
+
* [#735](https://github.com/celluloid/celluloid/pull/735)
|
126
|
+
Require Ruby 2.2.6+
|
127
|
+
|
128
|
+
* [#729](https://github.com/celluloid/celluloid/pull/729)
|
129
|
+
Remove mysterious Fiber.yield
|
130
|
+
|
131
|
+
* [#721](https://github.com/celluloid/celluloid/pull/721)
|
132
|
+
Instruction for cloning Celluloid via github
|
133
|
+
|
134
|
+
* [#715](https://github.com/celluloid/celluloid/pull/715)
|
135
|
+
fix error response reference in Future#cancel
|
136
|
+
|
137
|
+
* [#712](https://github.com/celluloid/celluloid/pull/712)
|
138
|
+
Add RBX-3 to the build
|
139
|
+
|
140
|
+
* [#711](https://github.com/celluloid/celluloid/pull/711)
|
141
|
+
Added bundler cache
|
142
|
+
|
143
|
+
* [#709](https://github.com/celluloid/celluloid/pull/709)
|
144
|
+
Fix autostart. Fixes https://github.com/celluloid/celluloid/issues/698
|
145
|
+
|
146
|
+
* [#705](https://github.com/celluloid/celluloid/pull/705)
|
147
|
+
Adding method source code path to backtrace
|
4
148
|
|
5
149
|
## [0.17.3] (2016-01-18)
|
6
150
|
|
data/README.md
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
[![MIT licensed][license-image]][license-link]
|
5
5
|
[![Build Status][build-image]][build-link]
|
6
6
|
[![Maintained: no][maintained-image]][maintained-link]
|
7
|
+
[![Gitter Chat][gitter-image]][gitter-link]
|
7
8
|
|
8
9
|
[celluloid-logo-image-raw]: https://raw.github.com/celluloid/celluloid-logos/master/celluloid/celluloid.png
|
9
10
|
[gem-image]: https://badge.fury.io/rb/celluloid.svg
|
@@ -14,92 +15,29 @@
|
|
14
15
|
[license-link]: https://github.com/celluloid/celluloid/blob/master/LICENSE.txt
|
15
16
|
[maintained-image]: https://img.shields.io/maintenance/no/2016.svg
|
16
17
|
[maintained-link]: https://github.com/celluloid/celluloid/issues/779
|
18
|
+
[gitter-image]: https://badges.gitter.im/badge.svg
|
19
|
+
[gitter-link]: https://gitter.im/celluloid/celluloid
|
17
20
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
## Motivation
|
34
|
-
|
35
|
-
Much of the difficulty with building concurrent programs in Ruby arises because
|
36
|
-
the object-oriented mechanisms for structuring code, such as classes and
|
37
|
-
inheritance, are separate from the concurrency mechanisms, such as threads and
|
38
|
-
locks. Celluloid combines these into a single structure, an active object
|
39
|
-
running within a thread, called an "actor", or in Celluloid vernacular, a "cell".
|
40
|
-
|
41
|
-
By combining concurrency with object oriented programming, Celluloid frees you
|
42
|
-
up from worry about where to use threads and locks. Celluloid combines them
|
43
|
-
together into a single concurrent object oriented programming model,
|
44
|
-
encapsulating state in concurrent objects and thus avoiding many of the
|
45
|
-
problems associated with multithreaded programming. Celluloid provides many
|
46
|
-
features which make concurrent programming simple, easy, and fun:
|
47
|
-
|
48
|
-
* __Automatic "deadlock-free" synchronization:__ Celluloid uses a concurrent
|
49
|
-
object model which combines method dispatch and thread synchronization.
|
50
|
-
Each actor is a concurrent object running in its own thread, and every method
|
51
|
-
invocation is wrapped in a fiber that can be suspended whenever it calls
|
52
|
-
out to other actors, and resumed when the response is available. This means
|
53
|
-
methods which are waiting for responses from other actors, external messages,
|
54
|
-
or other system events (including I/O with Celluloid::IO) can be suspended
|
55
|
-
and will never block other methods that are ready to run. This won't prevent
|
56
|
-
bugs in Celluloid, bugs in other thread-safe libraries you use, and even
|
57
|
-
certain "dangerous" features of Celluloid from causing your program to
|
58
|
-
deadlock, but in general, programs built with Celluloid will be naturally
|
59
|
-
immune to deadlocks.
|
60
|
-
|
61
|
-
* __Fault-tolerance:__ Celluloid has taken to heart many of Erlang's ideas
|
62
|
-
about fault-tolerance in order to enable self-healing applications.
|
63
|
-
The central idea: have you tried turning it off and on again? Celluloid
|
64
|
-
takes care of rebooting subcomponents of your application when they crash,
|
65
|
-
whether it's a single actor, or large (potentially multi-tiered) groups of
|
66
|
-
actors that are all interdependent. This means rather than worrying about
|
67
|
-
rescuing every last exception, you can just sit back, relax, and let parts
|
68
|
-
of your program crash, knowing Celluloid will automatically reboot them in
|
69
|
-
a clean state. Celluloid provides its own implementation of the core
|
70
|
-
fault-tolerance concepts in Erlang including [linking](https://github.com/celluloid/celluloid/wiki/Linking),
|
71
|
-
[supervisors](https://github.com/celluloid/celluloid/wiki/Supervisors),
|
72
|
-
and [supervision groups](https://github.com/celluloid/celluloid/wiki/Supervision-Groups).
|
73
|
-
|
74
|
-
* __[Futures](https://github.com/celluloid/celluloid/wiki/futures):__
|
75
|
-
Ever wanted to call a method "in the background" and retrieve the
|
76
|
-
value it returns later? Celluloid futures do just that. It's like
|
77
|
-
calling ahead to a restaurant to place an order, so they can work
|
78
|
-
on preparing your food while you're on your way to pick it up.
|
79
|
-
When you ask for a method's return value, it's returned immediately
|
80
|
-
if the method has already completed, or otherwise the current method is
|
81
|
-
suspended until the value becomes available.
|
82
|
-
|
83
|
-
You can also build distributed systems with Celluloid using its
|
84
|
-
[sister project DCell](https://github.com/celluloid/dcell). Evented IO similar
|
85
|
-
to EventMachine (with a synchronous API instead of callback/deferrable soup)
|
86
|
-
is available through the [Celluloid::IO](https://github.com/celluloid/celluloid-io)
|
87
|
-
library.
|
88
|
-
|
89
|
-
### Is it any good?
|
90
|
-
|
91
|
-
[Yes](http://news.ycombinator.com/item?id=3067434)
|
92
|
-
|
93
|
-
### Is It "Production Ready™"?
|
94
|
-
|
95
|
-
Yes, many users are now running Celluloid in production.
|
96
|
-
|
97
|
-
* **See:** [Projects Using Celluloid](https://github.com/celluloid/celluloid/wiki/Projects-Using-Celluloid)
|
21
|
+
Celluloid is a framework for building asynchronous and multithreaded Ruby
|
22
|
+
programs using object-oriented concepts.
|
23
|
+
|
24
|
+
## Revival Process Underway
|
25
|
+
|
26
|
+
`Celluloid` is in the process of being refactored and released back into the wild during `Google Summer of Code`. The next era will not have one individual active maintainer, but a team of collaborators. Going forward, previously dormant maintainer [Donovan Keme](https://github.com/digitalextremist) is returning to support future primary maintainer [Emese Padányi](https://github.com/emesepadanyi) during `GSoC 2020`. Her plan extends past the Summer program, and aims to revive the community and codebase of `Celluloid` together. Backing this process are [Harsh Deep](https://github.com/harsh183) and `GSoC` alumni [Dilum Navanjana](https://github.com/dilumn). We welcome your collaboration and contributions in this massive work.
|
27
|
+
|
28
|
+
The codebase is being refactored to pursue a stable release with no deprecation warnings, and with this cleaned up:
|
29
|
+
|
30
|
+
# ![Diagram][celluloid-diagram]
|
31
|
+
*Diagram meticulously developed by [Emese Padányi](https://github.com/emesepadanyi)*
|
32
|
+
|
33
|
+
[celluloid-diagram]: https://raw.githubusercontent.com/celluloid/celluloid/master/documentation/ClassDiagram-class_diagram.png
|
34
|
+
|
35
|
+
### Proudly supported by the best cloud infrastructure provider in the world: [`DigitalOcean`](https://digitalocean.com)
|
98
36
|
|
99
37
|
## Discussion
|
100
38
|
|
101
|
-
|
102
|
-
|
39
|
+
- [Gitter Chat][gitter-link]
|
40
|
+
- [Google Group](https://groups.google.com/group/celluloid-ruby)
|
103
41
|
|
104
42
|
## Documentation
|
105
43
|
|
@@ -115,8 +53,7 @@ The following API documentation is also available:
|
|
115
53
|
|
116
54
|
## Related Projects
|
117
55
|
|
118
|
-
|
119
|
-
like Celluloid we definitely recommend you check them out:
|
56
|
+
See also: [Projects Using Celluloid](https://github.com/celluloid/celluloid/wiki/Projects-Using-Celluloid)
|
120
57
|
|
121
58
|
* [Reel][reel]: An "evented" web server based on `Celluloid::IO`
|
122
59
|
* [DCell][dcell]: The Celluloid actor protocol distributed over 0MQ
|
@@ -125,80 +62,28 @@ like Celluloid we definitely recommend you check them out:
|
|
125
62
|
* [Celluloid::ZMQ][celluloid-zmq]: "Evented" 0MQ support for `Celluloid` actors
|
126
63
|
* [Celluloid::DNS][celluloid-dns]: An "evented" DNS server based on `Celluloid::IO`
|
127
64
|
* [Celluloid::SMTP][celluloid-smtp]: An "evented" SMTP server based on `Celluloid::IO`
|
128
|
-
* [Lattice][lattice]: A concurrent realtime web framework based on `Celluloid::IO`
|
129
65
|
* [nio4r][nio4r]: "New IO for Ruby": high performance IO selectors
|
130
66
|
* [Timers][timers]: A generic Ruby timer library for event-based systems
|
131
67
|
|
132
68
|
[reel]: https://github.com/celluloid/reel/
|
133
69
|
[dcell]: https://github.com/celluloid/dcell/
|
134
|
-
[ecell]: https://github.com/
|
70
|
+
[ecell]: https://github.com/abstractive/ecell/
|
135
71
|
[celluloid-io]: https://github.com/celluloid/celluloid-io/
|
136
72
|
[celluloid-zmq]: https://github.com/celluloid/celluloid-zmq/
|
137
73
|
[celluloid-dns]: https://github.com/celluloid/celluloid-dns/
|
138
|
-
[celluloid-smtp]: https://github.com/
|
139
|
-
[lattice]: https://github.com/celluloid/lattice/
|
74
|
+
[celluloid-smtp]: https://github.com/abstractive/celluloid-smtp/
|
140
75
|
[nio4r]: https://github.com/celluloid/nio4r/
|
141
76
|
[timers]: https://github.com/celluloid/timers/
|
142
77
|
|
143
|
-
## Installation
|
144
|
-
|
145
|
-
Add this line to your application's Gemfile:
|
146
|
-
|
147
|
-
gem 'celluloid'
|
148
|
-
|
149
|
-
And then execute:
|
150
|
-
|
151
|
-
$ bundle
|
152
|
-
|
153
|
-
Or install it yourself as:
|
154
|
-
|
155
|
-
$ gem install celluloid
|
156
|
-
|
157
|
-
Require Celluloid with:
|
158
|
-
|
159
|
-
require 'celluloid'
|
160
|
-
|
161
|
-
## Supported Platforms
|
162
|
-
|
163
|
-
This library aims to support and is [tested against][travis] the following Ruby
|
164
|
-
versions:
|
165
|
-
|
166
|
-
* Ruby 2.2.6+
|
167
|
-
* Ruby 2.3.0+
|
168
|
-
* JRuby 9.1.6.0+
|
169
|
-
|
170
|
-
If something doesn't work on one of these versions, it's a bug.
|
171
|
-
|
172
|
-
This library may inadvertently work (or seem to work) on other Ruby versions,
|
173
|
-
however support will only be provided for the versions listed above.
|
174
|
-
|
175
|
-
If you would like this library to support another Ruby version or
|
176
|
-
implementation, you may volunteer to be a maintainer. Being a maintainer
|
177
|
-
entails making sure all tests run and pass on that implementation. When
|
178
|
-
something breaks on your implementation, you will be responsible for providing
|
179
|
-
patches in a timely fashion. If critical issues for a particular implementation
|
180
|
-
exist at the time of a major release, support for that Ruby version may be
|
181
|
-
dropped.
|
182
|
-
|
183
|
-
[travis]: http://travis-ci.org/celluloid/celluloid/
|
184
|
-
|
185
|
-
## Additional Reading
|
186
|
-
|
187
|
-
* [Concurrent Object-Oriented Programming in Python with ATOM][ATOM]
|
188
|
-
a similar system to Celluloid written in Python
|
189
|
-
|
190
|
-
[ATOM]: http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=11A3EACE78AAFF6D6D62A64118AFCA7C?doi=10.1.1.47.5074&rep=rep1&type=pdf
|
191
|
-
|
192
78
|
## Contributing to Celluloid
|
193
79
|
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
* If we've accepted a patch, feel free to ask for commit access
|
80
|
+
- Fork this repository on github
|
81
|
+
- Make your changes and send us a pull request
|
82
|
+
- Pull requests will be reviewed for inclusion in the project
|
198
83
|
|
199
84
|
## License
|
200
85
|
|
201
|
-
Copyright (c) 2011-
|
86
|
+
Copyright (c) 2011-2018 Tony Arcieri, Donovan Keme.
|
202
87
|
|
203
88
|
Distributed under the MIT License. See [LICENSE.txt](https://github.com/celluloid/celluloid/blob/master/LICENSE.txt)
|
204
89
|
for further details.
|
data/REFACTOR.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
20200703113000: `require "celluloid/current"` is removed. use `require "celluloid"`
|
data/examples/configurations.rb
CHANGED
data/examples/timers.rb
CHANGED
data/lib/celluloid/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: celluloid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.18.0
|
4
|
+
version: 0.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tony Arcieri
|
8
8
|
- Donovan Keme
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-12-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: timers
|
@@ -39,6 +39,7 @@ files:
|
|
39
39
|
- CONTRIBUTING.md
|
40
40
|
- LICENSE.txt
|
41
41
|
- README.md
|
42
|
+
- REFACTOR.md
|
42
43
|
- architecture.md
|
43
44
|
- examples/basic_usage.rb
|
44
45
|
- examples/configurations.rb
|
@@ -52,7 +53,6 @@ files:
|
|
52
53
|
- lib/celluloid/actor.rb
|
53
54
|
- lib/celluloid/actor/system.rb
|
54
55
|
- lib/celluloid/autostart.rb
|
55
|
-
- lib/celluloid/backported.rb
|
56
56
|
- lib/celluloid/call/async.rb
|
57
57
|
- lib/celluloid/call/block.rb
|
58
58
|
- lib/celluloid/call/sync.rb
|
@@ -60,7 +60,6 @@ files:
|
|
60
60
|
- lib/celluloid/cell.rb
|
61
61
|
- lib/celluloid/condition.rb
|
62
62
|
- lib/celluloid/core_ext.rb
|
63
|
-
- lib/celluloid/current.rb
|
64
63
|
- lib/celluloid/debug.rb
|
65
64
|
- lib/celluloid/exceptions.rb
|
66
65
|
- lib/celluloid/future.rb
|
@@ -93,7 +92,6 @@ files:
|
|
93
92
|
- lib/celluloid/logging/ring_buffer.rb
|
94
93
|
- lib/celluloid/mailbox.rb
|
95
94
|
- lib/celluloid/mailbox/evented.rb
|
96
|
-
- lib/celluloid/managed.rb
|
97
95
|
- lib/celluloid/notifications.rb
|
98
96
|
- lib/celluloid/pool.rb
|
99
97
|
- lib/celluloid/probe.rb
|
@@ -118,10 +116,6 @@ files:
|
|
118
116
|
- lib/celluloid/supervision/container/injections.rb
|
119
117
|
- lib/celluloid/supervision/container/instance.rb
|
120
118
|
- lib/celluloid/supervision/container/pool.rb
|
121
|
-
- lib/celluloid/supervision/container/tree.rb
|
122
|
-
- lib/celluloid/supervision/deprecate.rb
|
123
|
-
- lib/celluloid/supervision/deprecate/supervise.rb
|
124
|
-
- lib/celluloid/supervision/deprecate/validation.rb
|
125
119
|
- lib/celluloid/supervision/service.rb
|
126
120
|
- lib/celluloid/supervision/supervise.rb
|
127
121
|
- lib/celluloid/supervision/validation.rb
|
@@ -201,7 +195,7 @@ metadata:
|
|
201
195
|
mailing_list_uri: http://groups.google.com/group/celluloid-ruby
|
202
196
|
source_code_uri: https://github.com/celluloid/celluloid
|
203
197
|
wiki_uri: https://github.com/celluloid/celluloid/wiki
|
204
|
-
post_install_message:
|
198
|
+
post_install_message:
|
205
199
|
rdoc_options: []
|
206
200
|
require_paths:
|
207
201
|
- lib
|
@@ -216,9 +210,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
210
|
- !ruby/object:Gem::Version
|
217
211
|
version: 2.0.0
|
218
212
|
requirements: []
|
219
|
-
|
220
|
-
|
221
|
-
signing_key:
|
213
|
+
rubygems_version: 3.1.2
|
214
|
+
signing_key:
|
222
215
|
specification_version: 4
|
223
216
|
summary: Actor-based concurrent object framework for Ruby
|
224
217
|
test_files: []
|
data/lib/celluloid/backported.rb
DELETED
data/lib/celluloid/current.rb
DELETED
data/lib/celluloid/managed.rb
DELETED
File without changes
|
@@ -1,9 +0,0 @@
|
|
1
|
-
# TODO: Remove at 0.19.0
|
2
|
-
module Celluloid
|
3
|
-
SupervisionGroup = Supervision::Container
|
4
|
-
Supervision::Group = Supervision::Container
|
5
|
-
Supervision::Member = Supervision::Container::Instance
|
6
|
-
end
|
7
|
-
|
8
|
-
require "celluloid/supervision/deprecate/supervise"
|
9
|
-
require "celluloid/supervision/deprecate/validation"
|
@@ -1,105 +0,0 @@
|
|
1
|
-
# TODO: Remove at 0.19.0
|
2
|
-
module Celluloid
|
3
|
-
class << self
|
4
|
-
undef supervise rescue nil
|
5
|
-
def supervise(*args, &block)
|
6
|
-
supervisor = Supervision.router(*args)
|
7
|
-
supervisor.supervise(*args, &block)
|
8
|
-
end
|
9
|
-
undef supervise_as rescue nil
|
10
|
-
def supervise_as(name, *args, &block)
|
11
|
-
supervisor = Supervision.router(*args)
|
12
|
-
supervisor.supervise_as(name, *args, &block)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
module ClassMethods
|
16
|
-
undef supervise rescue nil
|
17
|
-
def supervise(*args, &block)
|
18
|
-
args.unshift(self)
|
19
|
-
Celluloid.supervise(*args, &block)
|
20
|
-
end
|
21
|
-
undef supervise_as rescue nil
|
22
|
-
def supervise_as(name, *args, &block)
|
23
|
-
args.unshift(self)
|
24
|
-
Celluloid.supervise_as(name, *args, &block)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
# Supervisors are actors that watch over other actors and restart them if
|
29
|
-
# they crash
|
30
|
-
class Supervisor
|
31
|
-
class << self
|
32
|
-
# Define the root of the supervision tree
|
33
|
-
attr_accessor :root
|
34
|
-
|
35
|
-
undef supervise rescue nil
|
36
|
-
def supervise(klass, *args, &block)
|
37
|
-
args.unshift(klass)
|
38
|
-
Celluloid.supervise(*args, &block)
|
39
|
-
end
|
40
|
-
|
41
|
-
undef supervise_as rescue nil
|
42
|
-
def supervise_as(name, klass, *args, &block)
|
43
|
-
args.unshift(klass)
|
44
|
-
Celluloid.supervise_as(name, *args, &block)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
module Supervision
|
50
|
-
class << self
|
51
|
-
undef router rescue nil
|
52
|
-
def router(*_args)
|
53
|
-
# TODO: Actually route, based on :branch, if present; or else:
|
54
|
-
Celluloid.services
|
55
|
-
end
|
56
|
-
end
|
57
|
-
class Container
|
58
|
-
class << self
|
59
|
-
undef run! rescue nil
|
60
|
-
def run!(*args)
|
61
|
-
container = new(*args) do |g|
|
62
|
-
blocks.each do |block|
|
63
|
-
block.call(g)
|
64
|
-
end
|
65
|
-
end
|
66
|
-
container
|
67
|
-
end
|
68
|
-
|
69
|
-
undef run rescue nil
|
70
|
-
def run(*args)
|
71
|
-
loop do
|
72
|
-
supervisor = run!(*args)
|
73
|
-
# Take five, toplevel supervisor
|
74
|
-
sleep 5 while supervisor.alive? # Why 5?
|
75
|
-
Internals::Logger.error "!!! Celluloid::Supervision::Container #{self} crashed. Restarting..."
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
undef supervise rescue nil
|
80
|
-
def supervise(*args, &block)
|
81
|
-
blocks << lambda do |container|
|
82
|
-
container.supervise(*args, &block)
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
undef supervise_as rescue nil
|
87
|
-
def supervise_as(name, *args, &block)
|
88
|
-
blocks << lambda do |container|
|
89
|
-
container.supervise_as(name, *args, &block)
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
undef supervise rescue nil
|
95
|
-
def supervise(*args, &block)
|
96
|
-
add(Configuration.options(args, block: block))
|
97
|
-
end
|
98
|
-
|
99
|
-
undef supervise_as rescue nil
|
100
|
-
def supervise_as(name, *args, &block)
|
101
|
-
add(Configuration.options(args, block: block, as: name))
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
module Celluloid
|
2
|
-
module Supervision
|
3
|
-
class Configuration
|
4
|
-
class << self
|
5
|
-
# argument scenarios:
|
6
|
-
# * only class ( becomes :type )
|
7
|
-
# * class ( becomes :type ), hash*
|
8
|
-
# * hash ( *with :type, and perhaps :as, :size, :args, :block, :registry )
|
9
|
-
# ( any keys expected are pulled out: may want to check on arity? )
|
10
|
-
# ( the pulling out of keys is where danger mentioned above comes )
|
11
|
-
undef parse rescue nil
|
12
|
-
def parse(args)
|
13
|
-
return args if args.is_a? Configuration::Instance
|
14
|
-
options = { args: [] }
|
15
|
-
return { type: args } if args.is_a? Class
|
16
|
-
if args.is_a? Hash
|
17
|
-
return args
|
18
|
-
elsif args.is_a? Array
|
19
|
-
if args.length == 1
|
20
|
-
return args[0] if args.first.is_a? Configuration::Instance
|
21
|
-
return { type: args.first } if args.first.is_a? Class
|
22
|
-
if args.first.is_a?(Hash) && args = args.pop
|
23
|
-
return args
|
24
|
-
end
|
25
|
-
options[:args] = args if args.any?
|
26
|
-
elsif args.length > 1
|
27
|
-
# TODO: don't use each
|
28
|
-
options.merge! args.pop if args.last.is_a? Hash
|
29
|
-
options[:type] = args.shift if args.first.is_a? Class
|
30
|
-
options[:args] += args if args.any?
|
31
|
-
end
|
32
|
-
end
|
33
|
-
options
|
34
|
-
end
|
35
|
-
|
36
|
-
# This is dangerous. It is temporary, until `Supervision::Configuration` is entrenched.
|
37
|
-
# Since :type, :as, etc are used by the supervision group/member to initialize,
|
38
|
-
# those will not appear in the resulting actor's initialize call.
|
39
|
-
undef options rescue nil
|
40
|
-
def options(args, options = {})
|
41
|
-
return args.merge!(options) if args.is_a? Configuration::Instance
|
42
|
-
# Not a Supervision:Configuration?
|
43
|
-
# Try to guess its structure and build one:
|
44
|
-
options = parse(args).merge(options)
|
45
|
-
options[:configuration] = Container::Behavior.configure(options)
|
46
|
-
options[:args].compact! if options[:args].is_a? Array
|
47
|
-
options.reject! { |_k, v| v.nil? }
|
48
|
-
Configuration.valid? options, true
|
49
|
-
options
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|