ruote-beanstalk 2.1.10 → 2.1.11
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.txt +9 -1
- data/CREDITS.txt +15 -0
- data/README.md +26 -24
- data/Rakefile +10 -23
- data/TODO.txt +9 -2
- data/doc/storages.graffle/QuickLook/Preview.pdf +0 -0
- data/doc/storages.graffle/QuickLook/Thumbnail.tiff +0 -0
- data/doc/storages.graffle/data.plist +97 -95
- data/doc/storages.graffle/image3.png +0 -0
- data/doc/storages.graffle/image4.png +0 -0
- data/doc/storages.png +0 -0
- data/lib/ruote/beanstalk/fork.rb +1 -1
- data/lib/ruote/beanstalk/participant.rb +1 -145
- data/lib/ruote/beanstalk/participant_proxy.rb +157 -0
- data/lib/ruote/beanstalk/receiver.rb +16 -16
- data/lib/ruote/beanstalk/storage.rb +65 -26
- data/lib/ruote/beanstalk/version.rb +1 -1
- data/readme.rdoc +5 -0
- data/ruote-beanstalk.gemspec +18 -15
- data/serve.rb +1 -1
- data/test/functional/ft_0_participant.rb +3 -3
- data/test/functional/ft_1_receiver.rb +5 -5
- data/test/functional_connection.rb +1 -1
- metadata +23 -12
- data/doc/storages.graffle/image1.png +0 -0
- data/doc/storages.graffle/image2.png +0 -0
data/CHANGELOG.txt
CHANGED
@@ -2,7 +2,15 @@
|
|
2
2
|
= ruote-beanstalk - CHANGELOG.txt
|
3
3
|
|
4
4
|
|
5
|
-
== ruote-beanstalk 2.1.
|
5
|
+
== ruote-beanstalk 2.1.11 released 2010/10/13
|
6
|
+
|
7
|
+
- BsStorage -> Storage
|
8
|
+
- ParticipantProxy closes conn after each despatching
|
9
|
+
- BsParticipant -> ParticipantProxy, BsReceiver -> Receiver
|
10
|
+
- Ruote::Beanstalk::Storage.close (shutdown in fact)
|
11
|
+
|
12
|
+
|
13
|
+
== ruote-beanstalk 2.1.10 released 2010/06/15
|
6
14
|
|
7
15
|
- initial release
|
8
16
|
|
data/CREDITS.txt
ADDED
data/README.md
CHANGED
@@ -1,50 +1,52 @@
|
|
1
1
|
|
2
2
|
# ruote-beanstalk
|
3
3
|
|
4
|
-
Beanstalk extensions for ruote 2.1 (a Ruby workflow engine).
|
4
|
+
Beanstalk extensions for [ruote](http://ruote.rubyforge.org) 2.1 (a Ruby workflow engine).
|
5
5
|
|
6
|
-
|
6
|
+
[Beanstalk is a simple, fast workqueue service](http://kr.github.com/beanstalkd/).
|
7
7
|
|
8
|
-
ruote-beanstalk provides
|
8
|
+
ruote-beanstalk provides two things, **first** a ParticipantProxy / Receiver pair, **second** a ruote storage implementation.
|
9
9
|
|
10
|
-
|
10
|
+
The ParticipantProxy / Receiver pair is about emitting workitems to a Beanstalk queue/tube and listening/receiving them back. Workers can connect to the Beanstalk queue, receive workitems, do some work and then (optionally) send the updated workitem back to the ruote system.
|
11
11
|
|
12
|
-
|
12
|
+
Ruote::Beanstalk::Storage is a storage implementation for ruote. Workers and engines can connect over Beanstalk to a shared storage.
|
13
|
+
|
14
|
+
The storage listens to a Beanstalk queue where it receives storage orders that it conveys to a FsStorage instance.
|
13
15
|
|
14
16
|
(Initially I tried to use Beanstalk for msgs and schedules as well, but since you can't delete a delayed message in Beanstalk (as of now), I fell back to using Beanstalk as middleware, it's slightly slower, but much simpler and robust).
|
15
17
|
|
16
|
-
|
18
|
+
rdoc : [http://ruote.rubyforge.org/ruote-beanstalk_rdoc/](http://ruote.rubyforge.org/ruote-beanstalk_rdoc/)
|
17
19
|
|
18
20
|
|
19
21
|
## usage
|
20
22
|
|
21
|
-
### Ruote::Beanstalk::
|
23
|
+
### Ruote::Beanstalk::ParticipantProxy and Receiver
|
22
24
|
|
23
25
|
Registering a Beanstalk participant :
|
24
26
|
|
25
27
|
@engine.register_participant(
|
26
28
|
'alpha',
|
27
|
-
Ruote::Beanstalk::
|
29
|
+
Ruote::Beanstalk::ParticipantProxy,
|
28
30
|
'beanstalk' => '127.0.0.1:11300',
|
29
31
|
'tube' => 'ruote-workitems')
|
30
32
|
|
31
33
|
|
32
34
|
Binding a listener to a storage or an engine :
|
33
35
|
|
34
|
-
Ruote::Beanstalk::
|
36
|
+
Ruote::Beanstalk::Receiver.new(
|
35
37
|
engine, '127.0.0.1:11300', 'tube' => 'ruote-incoming')
|
36
38
|
|
37
39
|
# or
|
38
40
|
|
39
|
-
Ruote::Beanstalk::
|
41
|
+
Ruote::Beanstalk::Receiver.new(
|
40
42
|
storage, '127.0.0.1:11300', 'tube' => 'ruote-incoming')
|
41
43
|
|
42
44
|
The receiver manages a thread that listens to incoming messages and feeds them to ruote via the engine or directly via a storage.
|
43
45
|
|
44
46
|
|
45
|
-
### Ruote::Beanstalk::
|
47
|
+
### Ruote::Beanstalk::Storage
|
46
48
|
|
47
|
-
There are two modes in which
|
49
|
+
There are two modes in which Storage can be used :
|
48
50
|
|
49
51
|
* bound to a remote storage (client)
|
50
52
|
* bound to the physical storage (server)
|
@@ -60,13 +62,13 @@ Beanstalk is the intermediary.
|
|
60
62
|
|
61
63
|
Pass a string of the form host:port and a hash of options :
|
62
64
|
|
63
|
-
Ruote::Beanstalk::
|
65
|
+
Ruote::Beanstalk::Storage.new('127.0.0.1:11300', opts)
|
64
66
|
|
65
67
|
Wrapped in an engine + worker :
|
66
68
|
|
67
69
|
engine = Ruote::Engine.new(
|
68
70
|
Ruote::Worker.new(
|
69
|
-
Ruote::Beanstalk::
|
71
|
+
Ruote::Beanstalk::Storage.new('127.0.0.1:11300', opts)))
|
70
72
|
|
71
73
|
#### server
|
72
74
|
|
@@ -74,12 +76,12 @@ This piece of ruby starts a Beanstalk instance (:fork => true) and starts a BsSt
|
|
74
76
|
|
75
77
|
require 'ruote/beanstalk'
|
76
78
|
|
77
|
-
Ruote::Beanstalk::
|
79
|
+
Ruote::Beanstalk::Storage.new(':11300', 'ruote_work', :fork => true)
|
78
80
|
|
79
81
|
|
80
82
|
## running tests
|
81
83
|
|
82
|
-
### Ruote::Beanstalk::
|
84
|
+
### Ruote::Beanstalk::ParticipantProxy and Receiver
|
83
85
|
|
84
86
|
Simply do
|
85
87
|
|
@@ -88,7 +90,7 @@ Simply do
|
|
88
90
|
in your ruote-beanstalk/ directory.
|
89
91
|
|
90
92
|
|
91
|
-
### Ruote::Beanstalk::
|
93
|
+
### Ruote::Beanstalk::Storage
|
92
94
|
|
93
95
|
assuming you have
|
94
96
|
|
@@ -106,13 +108,13 @@ To launch a beanstalkd + fs storage couple, then run unit or functional tests
|
|
106
108
|
|
107
109
|
get into ruote/ and do
|
108
110
|
|
109
|
-
ruby test/unit/storage.rb --beanstalk
|
111
|
+
ruby test/unit/storage.rb -- --beanstalk
|
110
112
|
|
111
113
|
* functional tests :
|
112
114
|
|
113
115
|
get into ruote/ and do
|
114
116
|
|
115
|
-
ruby test/functional/test.rb --beanstalk
|
117
|
+
ruby test/functional/test.rb -- --beanstalk
|
116
118
|
|
117
119
|
|
118
120
|
## license
|
@@ -122,15 +124,15 @@ MIT
|
|
122
124
|
|
123
125
|
## links
|
124
126
|
|
125
|
-
* http://kr.github.com/beanstalkd/
|
126
|
-
|
127
|
-
* http://ruote.
|
128
|
-
* http://github.com/jmettraux/ruote-beanstalk
|
127
|
+
* [http://kr.github.com/beanstalkd/](http://kr.github.com/beanstalkd/)
|
128
|
+
* [http://ruote.rubyforge.org/](http://ruote.rubyforge.org/)
|
129
|
+
* [http://github.com/jmettraux/ruote-beanstalk](http://github.com/jmettraux/ruote-beanstalk)
|
129
130
|
|
130
131
|
|
131
132
|
## feedback
|
132
133
|
|
133
|
-
mailing list : http://groups.google.com/group/openwferu-users
|
134
|
+
mailing list : [http://groups.google.com/group/openwferu-users](http://groups.google.com/group/openwferu-users)
|
135
|
+
|
134
136
|
irc : irc.freenode.net #ruote
|
135
137
|
|
136
138
|
|
data/Rakefile
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
|
2
|
+
$:.unshift('.') # ruby 1.9.2
|
3
|
+
|
2
4
|
require 'rubygems'
|
3
5
|
require 'rake'
|
4
6
|
|
@@ -33,8 +35,8 @@ Beanstalk participant/receiver/storage for ruote (a Ruby workflow engine)
|
|
33
35
|
gem.test_file = 'test/test.rb'
|
34
36
|
|
35
37
|
gem.add_dependency 'ruote', ">= #{Ruote::Beanstalk::VERSION}"
|
36
|
-
gem.add_dependency 'rufus-cloche', '>= 0.1.
|
37
|
-
gem.add_dependency 'beanstalk-client', '>= 1.0
|
38
|
+
gem.add_dependency 'rufus-cloche', '>= 0.1.20'
|
39
|
+
gem.add_dependency 'beanstalk-client', '>= 1.1.0'
|
38
40
|
gem.add_development_dependency 'yard'
|
39
41
|
gem.add_development_dependency 'rake'
|
40
42
|
gem.add_development_dependency 'jeweler'
|
@@ -47,40 +49,25 @@ Jeweler::GemcutterTasks.new
|
|
47
49
|
#
|
48
50
|
# DOC
|
49
51
|
|
50
|
-
#begin
|
51
|
-
#
|
52
|
-
# require 'yard'
|
53
|
-
#
|
54
|
-
# YARD::Rake::YardocTask.new do |doc|
|
55
|
-
# doc.options = [
|
56
|
-
# '-o', 'html/ruote-beanstalk', '--title',
|
57
|
-
# "ruote-beanstalk #{Ruote::Beanstalk::VERSION}"
|
58
|
-
# ]
|
59
|
-
# end
|
60
|
-
#
|
61
|
-
#rescue LoadError
|
62
|
-
#
|
63
|
-
# task :yard do
|
64
|
-
# abort "YARD is not available : sudo gem install yard"
|
65
|
-
# end
|
66
|
-
#end
|
67
|
-
|
68
52
|
#
|
69
53
|
# make sure to have rdoc 2.5.x to run that
|
70
54
|
#
|
71
55
|
require 'rake/rdoctask'
|
72
56
|
Rake::RDocTask.new do |rd|
|
73
|
-
|
57
|
+
|
58
|
+
rd.main = 'readme.rdoc'
|
74
59
|
rd.rdoc_dir = 'rdoc/ruote-beanstalk_rdoc'
|
75
|
-
rd.rdoc_files.include('README.rdoc', 'CHANGELOG.txt', 'lib/**/*.rb')
|
76
60
|
rd.title = "ruote-beanstalk #{Ruote::Beanstalk::VERSION}"
|
61
|
+
|
62
|
+
rd.rdoc_files.include(
|
63
|
+
'readme.rdoc', 'CHANGELOG.txt', 'CREDITS.txt', 'lib/**/*.rb')
|
77
64
|
end
|
78
65
|
|
79
66
|
|
80
67
|
#
|
81
68
|
# TO THE WEB
|
82
69
|
|
83
|
-
task :
|
70
|
+
task :upload_rdoc => [ :clean, :rdoc ] do
|
84
71
|
|
85
72
|
account = 'jmettraux@rubyforge.org'
|
86
73
|
webdir = '/var/www/gforge-projects/ruote'
|
data/TODO.txt
CHANGED
@@ -13,8 +13,15 @@
|
|
13
13
|
[o] security issue in #serve (send)
|
14
14
|
[o] receiver : launchitem ?
|
15
15
|
[o] 'commands' channel : better name ?
|
16
|
+
[o] rw : document participant / receiver (use bs as an example)
|
17
|
+
[o] storage.close
|
18
|
+
[o] ParticipantProxy ?
|
19
|
+
[x] operate : better name ?
|
20
|
+
[x] what about receiver connections that timed out ? Is it possible ?
|
16
21
|
|
17
|
-
[
|
22
|
+
[x] base64 encode/decode to allow for non-ascii values
|
23
|
+
=> add some 漢字 test to ruote/test/unit/storage.rb
|
24
|
+
This is a beanstalk-client vs ruby 1.9.x problem
|
18
25
|
|
19
|
-
[ ]
|
26
|
+
[ ] follow example of latest ruote-amqp (for what ?)
|
20
27
|
|
Binary file
|
Binary file
|
@@ -7,14 +7,14 @@
|
|
7
7
|
<key>ApplicationVersion</key>
|
8
8
|
<array>
|
9
9
|
<string>com.omnigroup.OmniGraffle</string>
|
10
|
-
<string>138.
|
10
|
+
<string>138.17.0.133677</string>
|
11
11
|
</array>
|
12
12
|
<key>AutoAdjust</key>
|
13
13
|
<true/>
|
14
14
|
<key>BackgroundGraphic</key>
|
15
15
|
<dict>
|
16
16
|
<key>Bounds</key>
|
17
|
-
<string>{{0, 0}, {
|
17
|
+
<string>{{0, 0}, {559, 783}}</string>
|
18
18
|
<key>Class</key>
|
19
19
|
<string>SolidGraphic</string>
|
20
20
|
<key>ID</key>
|
@@ -44,20 +44,20 @@
|
|
44
44
|
<key>Creator</key>
|
45
45
|
<string>John Mettraux</string>
|
46
46
|
<key>DisplayScale</key>
|
47
|
-
<string>1 0/72 in = 1
|
47
|
+
<string>1 0/72 in = 1.0000 in</string>
|
48
48
|
<key>GraphDocumentVersion</key>
|
49
49
|
<integer>6</integer>
|
50
50
|
<key>GraphicsList</key>
|
51
51
|
<array>
|
52
52
|
<dict>
|
53
53
|
<key>Bounds</key>
|
54
|
-
<string>{{
|
54
|
+
<string>{{29, 26}, {484, 65}}</string>
|
55
55
|
<key>Class</key>
|
56
56
|
<string>ShapedGraphic</string>
|
57
57
|
<key>ID</key>
|
58
|
-
<integer>
|
58
|
+
<integer>17</integer>
|
59
59
|
<key>ImageID</key>
|
60
|
-
<integer>
|
60
|
+
<integer>4</integer>
|
61
61
|
<key>Shape</key>
|
62
62
|
<string>Rectangle</string>
|
63
63
|
<key>Style</key>
|
@@ -76,75 +76,13 @@
|
|
76
76
|
</dict>
|
77
77
|
<dict>
|
78
78
|
<key>Bounds</key>
|
79
|
-
<string>{{
|
79
|
+
<string>{{29, 331}, {395, 108}}</string>
|
80
80
|
<key>Class</key>
|
81
81
|
<string>ShapedGraphic</string>
|
82
|
-
<key>FontInfo</key>
|
83
|
-
<dict>
|
84
|
-
<key>Color</key>
|
85
|
-
<dict>
|
86
|
-
<key>w</key>
|
87
|
-
<string>0</string>
|
88
|
-
</dict>
|
89
|
-
<key>Font</key>
|
90
|
-
<string>HelveticaNeue</string>
|
91
|
-
<key>NSKern</key>
|
92
|
-
<real>0.0</real>
|
93
|
-
<key>Size</key>
|
94
|
-
<real>12</real>
|
95
|
-
</dict>
|
96
82
|
<key>ID</key>
|
97
|
-
<integer>
|
98
|
-
<key>Shape</key>
|
99
|
-
<string>Rectangle</string>
|
100
|
-
<key>Style</key>
|
101
|
-
<dict>
|
102
|
-
<key>fill</key>
|
103
|
-
<dict>
|
104
|
-
<key>Draws</key>
|
105
|
-
<string>NO</string>
|
106
|
-
<key>GradientColor</key>
|
107
|
-
<dict>
|
108
|
-
<key>w</key>
|
109
|
-
<string>1</string>
|
110
|
-
</dict>
|
111
|
-
<key>MiddleFraction</key>
|
112
|
-
<real>0.13492070138454437</real>
|
113
|
-
</dict>
|
114
|
-
<key>stroke</key>
|
115
|
-
<dict>
|
116
|
-
<key>Cap</key>
|
117
|
-
<integer>0</integer>
|
118
|
-
<key>Color</key>
|
119
|
-
<dict>
|
120
|
-
<key>b</key>
|
121
|
-
<string>0.494118</string>
|
122
|
-
<key>g</key>
|
123
|
-
<string>0.494118</string>
|
124
|
-
<key>r</key>
|
125
|
-
<string>0.494118</string>
|
126
|
-
</dict>
|
127
|
-
<key>Join</key>
|
128
|
-
<integer>0</integer>
|
129
|
-
</dict>
|
130
|
-
</dict>
|
131
|
-
<key>Text</key>
|
132
|
-
<dict>
|
133
|
-
<key>Align</key>
|
134
|
-
<integer>0</integer>
|
135
|
-
<key>VerticalPad</key>
|
136
|
-
<integer>0</integer>
|
137
|
-
</dict>
|
138
|
-
</dict>
|
139
|
-
<dict>
|
140
|
-
<key>Bounds</key>
|
141
|
-
<string>{{13, 25}, {498, 50}}</string>
|
142
|
-
<key>Class</key>
|
143
|
-
<string>ShapedGraphic</string>
|
144
|
-
<key>ID</key>
|
145
|
-
<integer>10</integer>
|
83
|
+
<integer>16</integer>
|
146
84
|
<key>ImageID</key>
|
147
|
-
<integer>
|
85
|
+
<integer>3</integer>
|
148
86
|
<key>Shape</key>
|
149
87
|
<string>Rectangle</string>
|
150
88
|
<key>Style</key>
|
@@ -180,8 +118,8 @@
|
|
180
118
|
<integer>9</integer>
|
181
119
|
<key>Points</key>
|
182
120
|
<array>
|
183
|
-
<string>{
|
184
|
-
<string>{
|
121
|
+
<string>{425.495, 198.67}</string>
|
122
|
+
<string>{403.937, 160.868}</string>
|
185
123
|
</array>
|
186
124
|
<key>Style</key>
|
187
125
|
<dict>
|
@@ -225,8 +163,8 @@
|
|
225
163
|
<integer>8</integer>
|
226
164
|
<key>Points</key>
|
227
165
|
<array>
|
228
|
-
<string>{
|
229
|
-
<string>{
|
166
|
+
<string>{196.083, 172.348}</string>
|
167
|
+
<string>{348.649, 144.137}</string>
|
230
168
|
</array>
|
231
169
|
<key>Style</key>
|
232
170
|
<dict>
|
@@ -253,7 +191,7 @@
|
|
253
191
|
</dict>
|
254
192
|
<dict>
|
255
193
|
<key>Bounds</key>
|
256
|
-
<string>{{
|
194
|
+
<string>{{114, 234}, {88, 79}}</string>
|
257
195
|
<key>Class</key>
|
258
196
|
<string>ShapedGraphic</string>
|
259
197
|
<key>FontInfo</key>
|
@@ -308,7 +246,7 @@
|
|
308
246
|
<key>Text</key>
|
309
247
|
<dict>
|
310
248
|
<key>Text</key>
|
311
|
-
<string>{\rtf1\ansi\ansicpg1252\cocoartf1038\
|
249
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320
|
312
250
|
{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
|
313
251
|
{\colortbl;\red255\green255\blue255;}
|
314
252
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
@@ -320,7 +258,7 @@
|
|
320
258
|
</dict>
|
321
259
|
<dict>
|
322
260
|
<key>Bounds</key>
|
323
|
-
<string>{{
|
261
|
+
<string>{{65, 194}, {88, 79}}</string>
|
324
262
|
<key>Class</key>
|
325
263
|
<string>ShapedGraphic</string>
|
326
264
|
<key>FontInfo</key>
|
@@ -375,7 +313,7 @@
|
|
375
313
|
<key>Text</key>
|
376
314
|
<dict>
|
377
315
|
<key>Text</key>
|
378
|
-
<string>{\rtf1\ansi\ansicpg1252\cocoartf1038\
|
316
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320
|
379
317
|
{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
|
380
318
|
{\colortbl;\red255\green255\blue255;}
|
381
319
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
@@ -387,7 +325,7 @@
|
|
387
325
|
</dict>
|
388
326
|
<dict>
|
389
327
|
<key>Bounds</key>
|
390
|
-
<string>{{
|
328
|
+
<string>{{108, 141}, {88, 79}}</string>
|
391
329
|
<key>Class</key>
|
392
330
|
<string>ShapedGraphic</string>
|
393
331
|
<key>FontInfo</key>
|
@@ -442,19 +380,19 @@
|
|
442
380
|
<key>Text</key>
|
443
381
|
<dict>
|
444
382
|
<key>Text</key>
|
445
|
-
<string>{\rtf1\ansi\ansicpg1252\cocoartf1038\
|
383
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320
|
446
384
|
{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
|
447
385
|
{\colortbl;\red255\green255\blue255;}
|
448
386
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
449
387
|
|
450
|
-
\f0\fs24 \cf0
|
388
|
+
\f0\fs24 \cf0 Beanstalk::Storage}</string>
|
451
389
|
<key>VerticalPad</key>
|
452
390
|
<integer>0</integer>
|
453
391
|
</dict>
|
454
392
|
</dict>
|
455
393
|
<dict>
|
456
394
|
<key>Bounds</key>
|
457
|
-
<string>{{
|
395
|
+
<string>{{397, 196}, {99, 79}}</string>
|
458
396
|
<key>Class</key>
|
459
397
|
<string>ShapedGraphic</string>
|
460
398
|
<key>FontInfo</key>
|
@@ -509,19 +447,21 @@
|
|
509
447
|
<key>Text</key>
|
510
448
|
<dict>
|
511
449
|
<key>Text</key>
|
512
|
-
<string>{\rtf1\ansi\ansicpg1252\cocoartf1038\
|
450
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320
|
513
451
|
{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
|
514
452
|
{\colortbl;\red255\green255\blue255;}
|
515
453
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
516
454
|
|
517
|
-
\f0\fs24 \cf0
|
455
|
+
\f0\fs24 \cf0 Beanstalk::\
|
456
|
+
Storage\
|
457
|
+
:fork => true}</string>
|
518
458
|
<key>VerticalPad</key>
|
519
459
|
<integer>0</integer>
|
520
460
|
</dict>
|
521
461
|
</dict>
|
522
462
|
<dict>
|
523
463
|
<key>Bounds</key>
|
524
|
-
<string>{{
|
464
|
+
<string>{{349, 113}, {82, 47}}</string>
|
525
465
|
<key>Class</key>
|
526
466
|
<string>ShapedGraphic</string>
|
527
467
|
<key>FontInfo</key>
|
@@ -576,7 +516,7 @@
|
|
576
516
|
<key>Text</key>
|
577
517
|
<dict>
|
578
518
|
<key>Text</key>
|
579
|
-
<string>{\rtf1\ansi\ansicpg1252\cocoartf1038\
|
519
|
+
<string>{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320
|
580
520
|
{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
|
581
521
|
{\colortbl;\red255\green255\blue255;}
|
582
522
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
|
@@ -588,7 +528,7 @@
|
|
588
528
|
</dict>
|
589
529
|
<dict>
|
590
530
|
<key>Bounds</key>
|
591
|
-
<string>{{
|
531
|
+
<string>{{363, 87}, {149, 206}}</string>
|
592
532
|
<key>Class</key>
|
593
533
|
<string>ShapedGraphic</string>
|
594
534
|
<key>FontInfo</key>
|
@@ -648,6 +588,68 @@
|
|
648
588
|
<integer>0</integer>
|
649
589
|
</dict>
|
650
590
|
</dict>
|
591
|
+
<dict>
|
592
|
+
<key>Bounds</key>
|
593
|
+
<string>{{29, 130}, {195, 201}}</string>
|
594
|
+
<key>Class</key>
|
595
|
+
<string>ShapedGraphic</string>
|
596
|
+
<key>FontInfo</key>
|
597
|
+
<dict>
|
598
|
+
<key>Color</key>
|
599
|
+
<dict>
|
600
|
+
<key>w</key>
|
601
|
+
<string>0</string>
|
602
|
+
</dict>
|
603
|
+
<key>Font</key>
|
604
|
+
<string>HelveticaNeue</string>
|
605
|
+
<key>NSKern</key>
|
606
|
+
<real>0.0</real>
|
607
|
+
<key>Size</key>
|
608
|
+
<real>12</real>
|
609
|
+
</dict>
|
610
|
+
<key>ID</key>
|
611
|
+
<integer>12</integer>
|
612
|
+
<key>Shape</key>
|
613
|
+
<string>Rectangle</string>
|
614
|
+
<key>Style</key>
|
615
|
+
<dict>
|
616
|
+
<key>fill</key>
|
617
|
+
<dict>
|
618
|
+
<key>Draws</key>
|
619
|
+
<string>NO</string>
|
620
|
+
<key>GradientColor</key>
|
621
|
+
<dict>
|
622
|
+
<key>w</key>
|
623
|
+
<string>1</string>
|
624
|
+
</dict>
|
625
|
+
<key>MiddleFraction</key>
|
626
|
+
<real>0.13492070138454437</real>
|
627
|
+
</dict>
|
628
|
+
<key>stroke</key>
|
629
|
+
<dict>
|
630
|
+
<key>Cap</key>
|
631
|
+
<integer>0</integer>
|
632
|
+
<key>Color</key>
|
633
|
+
<dict>
|
634
|
+
<key>b</key>
|
635
|
+
<string>0.494118</string>
|
636
|
+
<key>g</key>
|
637
|
+
<string>0.494118</string>
|
638
|
+
<key>r</key>
|
639
|
+
<string>0.494118</string>
|
640
|
+
</dict>
|
641
|
+
<key>Join</key>
|
642
|
+
<integer>0</integer>
|
643
|
+
</dict>
|
644
|
+
</dict>
|
645
|
+
<key>Text</key>
|
646
|
+
<dict>
|
647
|
+
<key>Align</key>
|
648
|
+
<integer>0</integer>
|
649
|
+
<key>VerticalPad</key>
|
650
|
+
<integer>0</integer>
|
651
|
+
</dict>
|
652
|
+
</dict>
|
651
653
|
</array>
|
652
654
|
<key>GridInfo</key>
|
653
655
|
<dict/>
|
@@ -656,9 +658,9 @@
|
|
656
658
|
<key>GuidesVisible</key>
|
657
659
|
<string>YES</string>
|
658
660
|
<key>HPages</key>
|
659
|
-
<integer>
|
661
|
+
<integer>1</integer>
|
660
662
|
<key>ImageCounter</key>
|
661
|
-
<integer>
|
663
|
+
<integer>5</integer>
|
662
664
|
<key>ImageLinkBack</key>
|
663
665
|
<array>
|
664
666
|
<dict/>
|
@@ -666,8 +668,8 @@
|
|
666
668
|
</array>
|
667
669
|
<key>ImageList</key>
|
668
670
|
<array>
|
669
|
-
<string>
|
670
|
-
<string>
|
671
|
+
<string>image4.png</string>
|
672
|
+
<string>image3.png</string>
|
671
673
|
</array>
|
672
674
|
<key>KeepToScale</key>
|
673
675
|
<false/>
|
@@ -706,7 +708,7 @@
|
|
706
708
|
<key>MasterSheets</key>
|
707
709
|
<array/>
|
708
710
|
<key>ModificationDate</key>
|
709
|
-
<string>2010-06
|
711
|
+
<string>2010-10-06 23:04:24 +0900</string>
|
710
712
|
<key>Modifier</key>
|
711
713
|
<string>John Mettraux</string>
|
712
714
|
<key>NotesVisible</key>
|
@@ -777,7 +779,7 @@
|
|
777
779
|
</dict>
|
778
780
|
</array>
|
779
781
|
<key>Frame</key>
|
780
|
-
<string>{{
|
782
|
+
<string>{{585, 86}, {1140, 1070}}</string>
|
781
783
|
<key>ListView</key>
|
782
784
|
<true/>
|
783
785
|
<key>OutlineWidth</key>
|
@@ -791,7 +793,7 @@
|
|
791
793
|
<key>SidebarWidth</key>
|
792
794
|
<integer>120</integer>
|
793
795
|
<key>VisibleRegion</key>
|
794
|
-
<string>{{
|
796
|
+
<string>{{-223, -66}, {1005, 916}}</string>
|
795
797
|
<key>Zoom</key>
|
796
798
|
<real>1</real>
|
797
799
|
<key>ZoomValues</key>
|
Binary file
|
Binary file
|
data/doc/storages.png
CHANGED
Binary file
|