mongoid-locker 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -7,6 +7,7 @@ rvm:
7
7
  - jruby-19mode # JRuby in 1.9 mode
8
8
  - rbx-18mode
9
9
  - rbx-19mode
10
+ services: mongodb
10
11
  gemfile:
11
12
  - gemfiles/mongoid2.gemfile
12
13
  - gemfiles/mongoid3.gemfile
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # Changelog
2
2
 
3
- ## HEAD ([diff](https://github.com/afeld/mongoid-locker/compare/v0.2.0...master?w=1))
3
+ ## HEAD ([diff](https://github.com/afeld/mongoid-locker/compare/v0.2.1...master?w=1))
4
+
5
+ ## 0.2.1 ([diff](https://github.com/afeld/mongoid-locker/compare/v0.2.0...v0.2.1?w=1))
6
+
7
+ * fix for `update()` on Mongoid 3
8
+ * automatically reload model after waiting - #1
4
9
 
5
10
  ## 0.2.0 ([diff](https://github.com/afeld/mongoid-locker/compare/v0.1.1...v0.2.0?w=1))
6
11
 
data/Gemfile.lock CHANGED
@@ -10,61 +10,64 @@ GIT
10
10
  GEM
11
11
  remote: http://rubygems.org/
12
12
  specs:
13
- activemodel (3.2.8)
14
- activesupport (= 3.2.8)
13
+ activemodel (3.2.9)
14
+ activesupport (= 3.2.9)
15
15
  builder (~> 3.0.0)
16
- activesupport (3.2.8)
16
+ activesupport (3.2.9)
17
17
  i18n (~> 0.6)
18
18
  multi_json (~> 1.0)
19
- bson (1.6.4)
20
- bson_ext (1.6.4)
21
- bson (~> 1.6.4)
22
- builder (3.0.0)
19
+ bson (1.8.0)
20
+ activesupport
21
+ bson_ext (1.8.0)
22
+ bson (~> 1.8.0)
23
+ builder (3.0.4)
24
+ coderay (1.0.8)
23
25
  diff-lcs (1.1.3)
24
- ffi (1.1.5)
25
26
  git (1.2.5)
26
- guard (1.3.2)
27
+ guard (1.5.4)
27
28
  listen (>= 0.4.2)
29
+ lumberjack (>= 1.0.2)
30
+ pry (>= 0.9.10)
28
31
  thor (>= 0.14.6)
29
- guard-rspec (1.2.1)
32
+ guard-rspec (2.2.2)
30
33
  guard (>= 1.1)
31
- i18n (0.6.0)
34
+ rspec (~> 2.11)
35
+ i18n (0.6.1)
32
36
  jeweler (1.8.4)
33
37
  bundler (~> 1.0)
34
38
  git (>= 1.2.5)
35
39
  rake
36
40
  rdoc
37
41
  json (1.7.5)
38
- listen (0.4.7)
39
- rb-fchange (~> 0.0.5)
40
- rb-fsevent (~> 0.9.1)
41
- rb-inotify (~> 0.8.8)
42
- mongoid (3.0.5)
42
+ listen (0.6.0)
43
+ lumberjack (1.0.2)
44
+ method_source (0.8.1)
45
+ mongoid (3.0.14)
43
46
  activemodel (~> 3.1)
44
47
  moped (~> 1.1)
45
48
  origin (~> 1.0)
46
49
  tzinfo (~> 0.3.22)
47
- moped (1.2.1)
48
- multi_json (1.3.6)
49
- origin (1.0.7)
50
- rake (0.9.2.2)
51
- rb-fchange (0.0.5)
52
- ffi
53
- rb-fsevent (0.9.1)
54
- rb-inotify (0.8.8)
55
- ffi (>= 0.5.0)
50
+ moped (1.3.0)
51
+ multi_json (1.3.7)
52
+ origin (1.0.11)
53
+ pry (0.9.10)
54
+ coderay (~> 1.0.5)
55
+ method_source (~> 0.8)
56
+ slop (~> 3.3.1)
57
+ rake (10.0.2)
56
58
  rdoc (3.12)
57
59
  json (~> 1.4)
58
- rspec (2.11.0)
59
- rspec-core (~> 2.11.0)
60
- rspec-expectations (~> 2.11.0)
61
- rspec-mocks (~> 2.11.0)
62
- rspec-core (2.11.1)
63
- rspec-expectations (2.11.2)
60
+ rspec (2.12.0)
61
+ rspec-core (~> 2.12.0)
62
+ rspec-expectations (~> 2.12.0)
63
+ rspec-mocks (~> 2.12.0)
64
+ rspec-core (2.12.0)
65
+ rspec-expectations (2.12.0)
64
66
  diff-lcs (~> 1.1.3)
65
- rspec-mocks (2.11.2)
67
+ rspec-mocks (2.12.0)
68
+ slop (3.3.3)
66
69
  thor (0.16.0)
67
- tzinfo (0.3.33)
70
+ tzinfo (0.3.35)
68
71
 
69
72
  PLATFORMS
70
73
  ruby
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # mongoid-locker [![Build Status](https://secure.travis-ci.org/afeld/mongoid-locker.png)](http://travis-ci.org/afeld/mongoid-locker)
1
+ # mongoid-locker [![Build Status](https://secure.travis-ci.org/afeld/mongoid-locker.png?branch=master)](http://travis-ci.org/afeld/mongoid-locker)
2
2
 
3
3
  Document-level locking for MongoDB via Mongoid. The need arose at [Jux](https://jux.com) from multiple processes on multiple servers trying to act upon the same document and stepping on each other's toes. Mongoid-Locker is an easy way to ensure only one process can perform a certain operation on a document at a time.
4
4
 
data/Rakefile CHANGED
@@ -15,6 +15,7 @@ Jeweler::Tasks.new do |gem|
15
15
  gem.description = %Q{Allows multiple processes to operate on individual documents in MongoDB while ensuring that only one can act at a time.}
16
16
  gem.email = "aidan.feldman@gmail.com"
17
17
  gem.authors = ["Aidan Feldman"]
18
+ gem.files.exclude 'demo'
18
19
  # dependencies defined in Gemfile
19
20
  end
20
21
  Jeweler::RubygemsDotOrgTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
data/demo/README.md ADDED
@@ -0,0 +1,10 @@
1
+ To view slides:
2
+
3
+ git clone git@github.com:afeld/mongoid-locker.git
4
+ cd mongoid-locker/demo
5
+ gem install gli -v 1.6.0
6
+ gem install showoff
7
+ showoff serve
8
+ open "http://localhost:9090"
9
+
10
+ To run examples, make sure MongoDB is running.
@@ -0,0 +1,6 @@
1
+ development:
2
+ sessions:
3
+ default:
4
+ database: mongoid-locker_demo
5
+ hosts:
6
+ - localhost:27017
@@ -0,0 +1,1012 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>ActiveLayerIndex</key>
6
+ <integer>0</integer>
7
+ <key>ApplicationVersion</key>
8
+ <array>
9
+ <string>com.omnigroup.OmniGraffle</string>
10
+ <string>139.15.0.171074</string>
11
+ </array>
12
+ <key>AutoAdjust</key>
13
+ <true/>
14
+ <key>BackgroundGraphic</key>
15
+ <dict>
16
+ <key>Bounds</key>
17
+ <string>{{0, 0}, {676.13706563706569, 607}}</string>
18
+ <key>Class</key>
19
+ <string>SolidGraphic</string>
20
+ <key>ID</key>
21
+ <integer>2</integer>
22
+ <key>Style</key>
23
+ <dict>
24
+ <key>shadow</key>
25
+ <dict>
26
+ <key>Draws</key>
27
+ <string>NO</string>
28
+ </dict>
29
+ <key>stroke</key>
30
+ <dict>
31
+ <key>Draws</key>
32
+ <string>NO</string>
33
+ </dict>
34
+ </dict>
35
+ </dict>
36
+ <key>BaseZoom</key>
37
+ <integer>0</integer>
38
+ <key>CanvasOrigin</key>
39
+ <string>{0, 0}</string>
40
+ <key>CanvasSize</key>
41
+ <string>{676.13706563706569, 607}</string>
42
+ <key>ColumnAlign</key>
43
+ <integer>1</integer>
44
+ <key>ColumnSpacing</key>
45
+ <real>36</real>
46
+ <key>CreationDate</key>
47
+ <string>2012-11-28 22:02:01 +0000</string>
48
+ <key>Creator</key>
49
+ <string>Aidan Feldman</string>
50
+ <key>DisplayScale</key>
51
+ <string>1 0/72 in = 1.0000 in</string>
52
+ <key>FileType</key>
53
+ <string>flat</string>
54
+ <key>GraphDocumentVersion</key>
55
+ <integer>8</integer>
56
+ <key>GraphicsList</key>
57
+ <array>
58
+ <dict>
59
+ <key>Class</key>
60
+ <string>LineGraphic</string>
61
+ <key>Head</key>
62
+ <dict>
63
+ <key>ID</key>
64
+ <integer>19</integer>
65
+ </dict>
66
+ <key>ID</key>
67
+ <integer>30</integer>
68
+ <key>Points</key>
69
+ <array>
70
+ <string>{351.0711652615401, 335.45586973940624}</string>
71
+ <string>{432.94086536593164, 216.57724141180694}</string>
72
+ </array>
73
+ <key>Style</key>
74
+ <dict>
75
+ <key>stroke</key>
76
+ <dict>
77
+ <key>HeadArrow</key>
78
+ <string>FilledArrow</string>
79
+ <key>Legacy</key>
80
+ <true/>
81
+ <key>LineType</key>
82
+ <integer>1</integer>
83
+ <key>TailArrow</key>
84
+ <string>0</string>
85
+ </dict>
86
+ </dict>
87
+ <key>Tail</key>
88
+ <dict>
89
+ <key>ID</key>
90
+ <integer>4</integer>
91
+ </dict>
92
+ </dict>
93
+ <dict>
94
+ <key>Class</key>
95
+ <string>LineGraphic</string>
96
+ <key>Head</key>
97
+ <dict>
98
+ <key>ID</key>
99
+ <integer>25</integer>
100
+ </dict>
101
+ <key>ID</key>
102
+ <integer>28</integer>
103
+ <key>Points</key>
104
+ <array>
105
+ <string>{429.80156398429557, 401.61923648711212}</string>
106
+ <string>{406.78778880455707, 466.10984540542159}</string>
107
+ </array>
108
+ <key>Style</key>
109
+ <dict>
110
+ <key>stroke</key>
111
+ <dict>
112
+ <key>HeadArrow</key>
113
+ <string>FilledArrow</string>
114
+ <key>Legacy</key>
115
+ <true/>
116
+ <key>LineType</key>
117
+ <integer>1</integer>
118
+ <key>TailArrow</key>
119
+ <string>0</string>
120
+ </dict>
121
+ </dict>
122
+ <key>Tail</key>
123
+ <dict>
124
+ <key>ID</key>
125
+ <integer>5</integer>
126
+ </dict>
127
+ </dict>
128
+ <dict>
129
+ <key>Class</key>
130
+ <string>LineGraphic</string>
131
+ <key>Head</key>
132
+ <dict>
133
+ <key>ID</key>
134
+ <integer>25</integer>
135
+ </dict>
136
+ <key>ID</key>
137
+ <integer>27</integer>
138
+ <key>Points</key>
139
+ <array>
140
+ <string>{345.80592828894322, 401.59030475820424}</string>
141
+ <string>{378.24525307315224, 462.9240039478687}</string>
142
+ </array>
143
+ <key>Style</key>
144
+ <dict>
145
+ <key>stroke</key>
146
+ <dict>
147
+ <key>HeadArrow</key>
148
+ <string>FilledArrow</string>
149
+ <key>Legacy</key>
150
+ <true/>
151
+ <key>LineType</key>
152
+ <integer>1</integer>
153
+ <key>TailArrow</key>
154
+ <string>0</string>
155
+ </dict>
156
+ </dict>
157
+ <key>Tail</key>
158
+ <dict>
159
+ <key>ID</key>
160
+ <integer>4</integer>
161
+ </dict>
162
+ </dict>
163
+ <dict>
164
+ <key>Class</key>
165
+ <string>LineGraphic</string>
166
+ <key>Head</key>
167
+ <dict>
168
+ <key>ID</key>
169
+ <integer>25</integer>
170
+ </dict>
171
+ <key>ID</key>
172
+ <integer>26</integer>
173
+ <key>Points</key>
174
+ <array>
175
+ <string>{260.41239085351748, 400.60633855406797}</string>
176
+ <string>{359.21055004839587, 470.43875955028324}</string>
177
+ </array>
178
+ <key>Style</key>
179
+ <dict>
180
+ <key>stroke</key>
181
+ <dict>
182
+ <key>HeadArrow</key>
183
+ <string>FilledArrow</string>
184
+ <key>Legacy</key>
185
+ <true/>
186
+ <key>LineType</key>
187
+ <integer>1</integer>
188
+ <key>TailArrow</key>
189
+ <string>0</string>
190
+ </dict>
191
+ </dict>
192
+ <key>Tail</key>
193
+ <dict>
194
+ <key>ID</key>
195
+ <integer>3</integer>
196
+ </dict>
197
+ </dict>
198
+ <dict>
199
+ <key>Bounds</key>
200
+ <string>{{348.34746679508623, 457.89253536212181}, {95.214379744276357, 77.02984619140625}}</string>
201
+ <key>Class</key>
202
+ <string>ShapedGraphic</string>
203
+ <key>FontInfo</key>
204
+ <dict>
205
+ <key>Font</key>
206
+ <string>Helvetica</string>
207
+ <key>Size</key>
208
+ <real>15</real>
209
+ </dict>
210
+ <key>ID</key>
211
+ <integer>25</integer>
212
+ <key>Shape</key>
213
+ <string>Cloud</string>
214
+ <key>Style</key>
215
+ <dict/>
216
+ <key>Text</key>
217
+ <dict>
218
+ <key>Text</key>
219
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
220
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
221
+ {\colortbl;\red255\green255\blue255;}
222
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
223
+
224
+ \f0\fs32 \cf0 S3}</string>
225
+ <key>VerticalPad</key>
226
+ <integer>0</integer>
227
+ </dict>
228
+ </dict>
229
+ <dict>
230
+ <key>Bounds</key>
231
+ <string>{{194.58249137571553, 281.20986099625333}, {43, 24}}</string>
232
+ <key>Class</key>
233
+ <string>ShapedGraphic</string>
234
+ <key>FitText</key>
235
+ <string>Vertical</string>
236
+ <key>Flow</key>
237
+ <string>Resize</string>
238
+ <key>FontInfo</key>
239
+ <dict>
240
+ <key>Font</key>
241
+ <string>Helvetica</string>
242
+ <key>Size</key>
243
+ <real>19</real>
244
+ </dict>
245
+ <key>ID</key>
246
+ <integer>23</integer>
247
+ <key>Line</key>
248
+ <dict>
249
+ <key>ID</key>
250
+ <integer>11</integer>
251
+ <key>Position</key>
252
+ <real>0.62051773071289062</real>
253
+ <key>RotationType</key>
254
+ <integer>0</integer>
255
+ </dict>
256
+ <key>Shape</key>
257
+ <string>Rectangle</string>
258
+ <key>Style</key>
259
+ <dict>
260
+ <key>shadow</key>
261
+ <dict>
262
+ <key>Draws</key>
263
+ <string>NO</string>
264
+ </dict>
265
+ <key>stroke</key>
266
+ <dict>
267
+ <key>Draws</key>
268
+ <string>NO</string>
269
+ </dict>
270
+ </dict>
271
+ <key>Text</key>
272
+ <dict>
273
+ <key>Pad</key>
274
+ <integer>0</integer>
275
+ <key>Text</key>
276
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
277
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
278
+ {\colortbl;\red255\green255\blue255;}
279
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
280
+
281
+ \f0\fs40 \cf0 #jux}</string>
282
+ <key>VerticalPad</key>
283
+ <integer>0</integer>
284
+ </dict>
285
+ </dict>
286
+ <dict>
287
+ <key>Bounds</key>
288
+ <string>{{238.91257498615056, 258.7086603859205}, {59, 23}}</string>
289
+ <key>Class</key>
290
+ <string>ShapedGraphic</string>
291
+ <key>FitText</key>
292
+ <string>YES</string>
293
+ <key>Flow</key>
294
+ <string>Resize</string>
295
+ <key>FontInfo</key>
296
+ <dict>
297
+ <key>Font</key>
298
+ <string>Helvetica</string>
299
+ <key>Size</key>
300
+ <real>18</real>
301
+ </dict>
302
+ <key>ID</key>
303
+ <integer>24</integer>
304
+ <key>Line</key>
305
+ <dict>
306
+ <key>ID</key>
307
+ <integer>12</integer>
308
+ <key>Position</key>
309
+ <real>0.41387784481048584</real>
310
+ <key>RotationType</key>
311
+ <integer>0</integer>
312
+ </dict>
313
+ <key>Shape</key>
314
+ <string>Rectangle</string>
315
+ <key>Style</key>
316
+ <dict>
317
+ <key>shadow</key>
318
+ <dict>
319
+ <key>Draws</key>
320
+ <string>NO</string>
321
+ </dict>
322
+ <key>stroke</key>
323
+ <dict>
324
+ <key>Draws</key>
325
+ <string>NO</string>
326
+ </dict>
327
+ </dict>
328
+ <key>Text</key>
329
+ <dict>
330
+ <key>Pad</key>
331
+ <integer>0</integer>
332
+ <key>Text</key>
333
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
334
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
335
+ {\colortbl;\red255\green255\blue255;}
336
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
337
+
338
+ \f0\fs38 \cf0 User X}</string>
339
+ <key>VerticalPad</key>
340
+ <integer>0</integer>
341
+ </dict>
342
+ <key>Wrap</key>
343
+ <string>NO</string>
344
+ </dict>
345
+ <dict>
346
+ <key>Class</key>
347
+ <string>LineGraphic</string>
348
+ <key>FontInfo</key>
349
+ <dict>
350
+ <key>Font</key>
351
+ <string>Helvetica</string>
352
+ <key>Size</key>
353
+ <real>15</real>
354
+ </dict>
355
+ <key>Head</key>
356
+ <dict>
357
+ <key>ID</key>
358
+ <integer>19</integer>
359
+ </dict>
360
+ <key>ID</key>
361
+ <integer>22</integer>
362
+ <key>Points</key>
363
+ <array>
364
+ <string>{443.77097404861854, 335.36872101992549}</string>
365
+ <string>{451.00330789109154, 224.07394797684742}</string>
366
+ </array>
367
+ <key>Style</key>
368
+ <dict>
369
+ <key>stroke</key>
370
+ <dict>
371
+ <key>HeadArrow</key>
372
+ <string>FilledArrow</string>
373
+ <key>Legacy</key>
374
+ <true/>
375
+ <key>LineType</key>
376
+ <integer>1</integer>
377
+ <key>TailArrow</key>
378
+ <string>0</string>
379
+ </dict>
380
+ </dict>
381
+ <key>Tail</key>
382
+ <dict>
383
+ <key>ID</key>
384
+ <integer>5</integer>
385
+ </dict>
386
+ </dict>
387
+ <dict>
388
+ <key>Class</key>
389
+ <string>LineGraphic</string>
390
+ <key>FontInfo</key>
391
+ <dict>
392
+ <key>Font</key>
393
+ <string>Helvetica</string>
394
+ <key>Size</key>
395
+ <real>15</real>
396
+ </dict>
397
+ <key>Head</key>
398
+ <dict>
399
+ <key>ID</key>
400
+ <integer>19</integer>
401
+ </dict>
402
+ <key>ID</key>
403
+ <integer>20</integer>
404
+ <key>Points</key>
405
+ <array>
406
+ <string>{258.23397634386026, 335.56462841747589}</string>
407
+ <string>{409.09532482470729, 220.61150085982354}</string>
408
+ </array>
409
+ <key>Style</key>
410
+ <dict>
411
+ <key>stroke</key>
412
+ <dict>
413
+ <key>HeadArrow</key>
414
+ <string>FilledArrow</string>
415
+ <key>Legacy</key>
416
+ <true/>
417
+ <key>LineType</key>
418
+ <integer>1</integer>
419
+ <key>TailArrow</key>
420
+ <string>0</string>
421
+ </dict>
422
+ </dict>
423
+ <key>Tail</key>
424
+ <dict>
425
+ <key>ID</key>
426
+ <integer>3</integer>
427
+ </dict>
428
+ </dict>
429
+ <dict>
430
+ <key>Bounds</key>
431
+ <string>{{355.84299581028267, 147.83709369486576}, {195.16244506835938, 78}}</string>
432
+ <key>Class</key>
433
+ <string>ShapedGraphic</string>
434
+ <key>FontInfo</key>
435
+ <dict>
436
+ <key>Font</key>
437
+ <string>Helvetica</string>
438
+ <key>Size</key>
439
+ <real>15</real>
440
+ </dict>
441
+ <key>ID</key>
442
+ <integer>19</integer>
443
+ <key>Shape</key>
444
+ <string>Cloud</string>
445
+ <key>Style</key>
446
+ <dict/>
447
+ <key>Text</key>
448
+ <dict>
449
+ <key>Text</key>
450
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
451
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
452
+ {\colortbl;\red255\green255\blue255;}
453
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
454
+
455
+ \f0\fs32 \cf0 Instagram API}</string>
456
+ <key>VerticalPad</key>
457
+ <integer>0</integer>
458
+ </dict>
459
+ </dict>
460
+ <dict>
461
+ <key>Class</key>
462
+ <string>LineGraphic</string>
463
+ <key>FontInfo</key>
464
+ <dict>
465
+ <key>Font</key>
466
+ <string>Helvetica</string>
467
+ <key>Size</key>
468
+ <real>15</real>
469
+ </dict>
470
+ <key>Head</key>
471
+ <dict>
472
+ <key>ID</key>
473
+ <integer>15</integer>
474
+ </dict>
475
+ <key>ID</key>
476
+ <integer>18</integer>
477
+ <key>Points</key>
478
+ <array>
479
+ <string>{396.20577470520578, 400.77114463369924}</string>
480
+ <string>{306.98563675362061, 464.15840430738297}</string>
481
+ </array>
482
+ <key>Style</key>
483
+ <dict>
484
+ <key>stroke</key>
485
+ <dict>
486
+ <key>HeadArrow</key>
487
+ <string>FilledArrow</string>
488
+ <key>Legacy</key>
489
+ <true/>
490
+ <key>LineType</key>
491
+ <integer>1</integer>
492
+ <key>TailArrow</key>
493
+ <string>0</string>
494
+ </dict>
495
+ </dict>
496
+ <key>Tail</key>
497
+ <dict>
498
+ <key>ID</key>
499
+ <integer>5</integer>
500
+ </dict>
501
+ </dict>
502
+ <dict>
503
+ <key>Class</key>
504
+ <string>LineGraphic</string>
505
+ <key>FontInfo</key>
506
+ <dict>
507
+ <key>Font</key>
508
+ <string>Helvetica</string>
509
+ <key>Size</key>
510
+ <real>15</real>
511
+ </dict>
512
+ <key>Head</key>
513
+ <dict>
514
+ <key>ID</key>
515
+ <integer>15</integer>
516
+ </dict>
517
+ <key>ID</key>
518
+ <integer>17</integer>
519
+ <key>Points</key>
520
+ <array>
521
+ <string>{311.04498274488827, 401.59159446804023}</string>
522
+ <string>{278.83174357519385, 463.32385321343497}</string>
523
+ </array>
524
+ <key>Style</key>
525
+ <dict>
526
+ <key>stroke</key>
527
+ <dict>
528
+ <key>HeadArrow</key>
529
+ <string>FilledArrow</string>
530
+ <key>Legacy</key>
531
+ <true/>
532
+ <key>LineType</key>
533
+ <integer>1</integer>
534
+ <key>TailArrow</key>
535
+ <string>0</string>
536
+ </dict>
537
+ </dict>
538
+ <key>Tail</key>
539
+ <dict>
540
+ <key>ID</key>
541
+ <integer>4</integer>
542
+ </dict>
543
+ </dict>
544
+ <dict>
545
+ <key>Class</key>
546
+ <string>LineGraphic</string>
547
+ <key>FontInfo</key>
548
+ <dict>
549
+ <key>Font</key>
550
+ <string>Helvetica</string>
551
+ <key>Size</key>
552
+ <real>15</real>
553
+ </dict>
554
+ <key>Head</key>
555
+ <dict>
556
+ <key>ID</key>
557
+ <integer>15</integer>
558
+ </dict>
559
+ <key>ID</key>
560
+ <integer>16</integer>
561
+ <key>Points</key>
562
+ <array>
563
+ <string>{227.05477961229886, 401.61815214055167}</string>
564
+ <string>{249.51099100288744, 463.29731163084335}</string>
565
+ </array>
566
+ <key>Style</key>
567
+ <dict>
568
+ <key>stroke</key>
569
+ <dict>
570
+ <key>HeadArrow</key>
571
+ <string>FilledArrow</string>
572
+ <key>Legacy</key>
573
+ <true/>
574
+ <key>LineType</key>
575
+ <integer>1</integer>
576
+ <key>TailArrow</key>
577
+ <string>0</string>
578
+ </dict>
579
+ </dict>
580
+ <key>Tail</key>
581
+ <dict>
582
+ <key>ID</key>
583
+ <integer>3</integer>
584
+ </dict>
585
+ </dict>
586
+ <dict>
587
+ <key>Bounds</key>
588
+ <string>{{202.43814985922603, 463.76713083198666}, {118.25977325439453, 65.280653950953663}}</string>
589
+ <key>Class</key>
590
+ <string>ShapedGraphic</string>
591
+ <key>FontInfo</key>
592
+ <dict>
593
+ <key>Font</key>
594
+ <string>Helvetica</string>
595
+ <key>Size</key>
596
+ <real>15</real>
597
+ </dict>
598
+ <key>ID</key>
599
+ <integer>15</integer>
600
+ <key>Shape</key>
601
+ <string>RoundRect</string>
602
+ <key>Style</key>
603
+ <dict/>
604
+ <key>Text</key>
605
+ <dict>
606
+ <key>Text</key>
607
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
608
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
609
+ {\colortbl;\red255\green255\blue255;}
610
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
611
+
612
+ \f0\fs32 \cf0 MongoDB}</string>
613
+ <key>VerticalPad</key>
614
+ <integer>0</integer>
615
+ </dict>
616
+ </dict>
617
+ <dict>
618
+ <key>Class</key>
619
+ <string>LineGraphic</string>
620
+ <key>FontInfo</key>
621
+ <dict>
622
+ <key>Font</key>
623
+ <string>Helvetica</string>
624
+ <key>Size</key>
625
+ <real>15</real>
626
+ </dict>
627
+ <key>Head</key>
628
+ <dict>
629
+ <key>ID</key>
630
+ <integer>5</integer>
631
+ </dict>
632
+ <key>ID</key>
633
+ <integer>13</integer>
634
+ <key>Points</key>
635
+ <array>
636
+ <string>{259.61699854069485, 220.90349924217455}</string>
637
+ <string>{400.98318748089054, 335.55271826703222}</string>
638
+ </array>
639
+ <key>Style</key>
640
+ <dict>
641
+ <key>stroke</key>
642
+ <dict>
643
+ <key>HeadArrow</key>
644
+ <string>FilledArrow</string>
645
+ <key>Legacy</key>
646
+ <true/>
647
+ <key>LineType</key>
648
+ <integer>1</integer>
649
+ <key>TailArrow</key>
650
+ <string>0</string>
651
+ </dict>
652
+ </dict>
653
+ <key>Tail</key>
654
+ <dict>
655
+ <key>ID</key>
656
+ <integer>9</integer>
657
+ </dict>
658
+ </dict>
659
+ <dict>
660
+ <key>Class</key>
661
+ <string>LineGraphic</string>
662
+ <key>FontInfo</key>
663
+ <dict>
664
+ <key>Font</key>
665
+ <string>Helvetica</string>
666
+ <key>Size</key>
667
+ <real>15</real>
668
+ </dict>
669
+ <key>Head</key>
670
+ <dict>
671
+ <key>ID</key>
672
+ <integer>4</integer>
673
+ </dict>
674
+ <key>ID</key>
675
+ <integer>12</integer>
676
+ <key>Points</key>
677
+ <array>
678
+ <string>{240.34561450152938, 224.1464389374928}</string>
679
+ <string>{308.16021447721306, 335.44068197560358}</string>
680
+ </array>
681
+ <key>Style</key>
682
+ <dict>
683
+ <key>stroke</key>
684
+ <dict>
685
+ <key>HeadArrow</key>
686
+ <string>FilledArrow</string>
687
+ <key>Legacy</key>
688
+ <true/>
689
+ <key>LineType</key>
690
+ <integer>1</integer>
691
+ <key>TailArrow</key>
692
+ <string>0</string>
693
+ </dict>
694
+ </dict>
695
+ <key>Tail</key>
696
+ <dict>
697
+ <key>ID</key>
698
+ <integer>9</integer>
699
+ </dict>
700
+ </dict>
701
+ <dict>
702
+ <key>Class</key>
703
+ <string>LineGraphic</string>
704
+ <key>FontInfo</key>
705
+ <dict>
706
+ <key>Font</key>
707
+ <string>Helvetica</string>
708
+ <key>Size</key>
709
+ <real>15</real>
710
+ </dict>
711
+ <key>Head</key>
712
+ <dict>
713
+ <key>ID</key>
714
+ <integer>3</integer>
715
+ </dict>
716
+ <key>ID</key>
717
+ <integer>11</integer>
718
+ <key>Points</key>
719
+ <array>
720
+ <string>{217.07370573360029, 224.27462666402988}</string>
721
+ <string>{215.47630680553746, 335.36772025383954}</string>
722
+ </array>
723
+ <key>Style</key>
724
+ <dict>
725
+ <key>stroke</key>
726
+ <dict>
727
+ <key>HeadArrow</key>
728
+ <string>FilledArrow</string>
729
+ <key>Legacy</key>
730
+ <true/>
731
+ <key>LineType</key>
732
+ <integer>1</integer>
733
+ <key>TailArrow</key>
734
+ <string>0</string>
735
+ </dict>
736
+ </dict>
737
+ <key>Tail</key>
738
+ <dict>
739
+ <key>ID</key>
740
+ <integer>9</integer>
741
+ </dict>
742
+ </dict>
743
+ <dict>
744
+ <key>Bounds</key>
745
+ <string>{{105.61201713986952, 147.83709093859065}, {224, 78}}</string>
746
+ <key>Class</key>
747
+ <string>ShapedGraphic</string>
748
+ <key>FontInfo</key>
749
+ <dict>
750
+ <key>Font</key>
751
+ <string>Helvetica</string>
752
+ <key>Size</key>
753
+ <real>15</real>
754
+ </dict>
755
+ <key>ID</key>
756
+ <integer>9</integer>
757
+ <key>Shape</key>
758
+ <string>Cloud</string>
759
+ <key>Style</key>
760
+ <dict/>
761
+ <key>Text</key>
762
+ <dict>
763
+ <key>Text</key>
764
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
765
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
766
+ {\colortbl;\red255\green255\blue255;}
767
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
768
+
769
+ \f0\fs32 \cf0 Instagram Push API}</string>
770
+ <key>VerticalPad</key>
771
+ <integer>0</integer>
772
+ </dict>
773
+ </dict>
774
+ <dict>
775
+ <key>Bounds</key>
776
+ <string>{{396.61337783989404, 335.86766862999184}, {90.008174386921041, 65.280653950953663}}</string>
777
+ <key>Class</key>
778
+ <string>ShapedGraphic</string>
779
+ <key>FontInfo</key>
780
+ <dict>
781
+ <key>Font</key>
782
+ <string>Helvetica</string>
783
+ <key>Size</key>
784
+ <real>15</real>
785
+ </dict>
786
+ <key>ID</key>
787
+ <integer>5</integer>
788
+ <key>Shape</key>
789
+ <string>Rectangle</string>
790
+ <key>Text</key>
791
+ <dict>
792
+ <key>Text</key>
793
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
794
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
795
+ {\colortbl;\red255\green255\blue255;}
796
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
797
+
798
+ \f0\fs32 \cf0 ...}</string>
799
+ </dict>
800
+ </dict>
801
+ <dict>
802
+ <key>Bounds</key>
803
+ <string>{{283.30464194801687, 335.86766314420805}, {90.008174386921041, 65.280653950953663}}</string>
804
+ <key>Class</key>
805
+ <string>ShapedGraphic</string>
806
+ <key>FontInfo</key>
807
+ <dict>
808
+ <key>Font</key>
809
+ <string>Helvetica</string>
810
+ <key>Size</key>
811
+ <real>15</real>
812
+ </dict>
813
+ <key>ID</key>
814
+ <integer>4</integer>
815
+ <key>Shape</key>
816
+ <string>Rectangle</string>
817
+ <key>Text</key>
818
+ <dict>
819
+ <key>Text</key>
820
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
821
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
822
+ {\colortbl;\red255\green255\blue255;}
823
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
824
+
825
+ \f0\fs32 \cf0 Server 2}</string>
826
+ </dict>
827
+ </dict>
828
+ <dict>
829
+ <key>Bounds</key>
830
+ <string>{{169.99591280653948, 335.8676686299919}, {90.008174386921041, 65.280653950953663}}</string>
831
+ <key>Class</key>
832
+ <string>ShapedGraphic</string>
833
+ <key>FontInfo</key>
834
+ <dict>
835
+ <key>Font</key>
836
+ <string>Helvetica</string>
837
+ <key>Size</key>
838
+ <real>15</real>
839
+ </dict>
840
+ <key>ID</key>
841
+ <integer>3</integer>
842
+ <key>Shape</key>
843
+ <string>Rectangle</string>
844
+ <key>Text</key>
845
+ <dict>
846
+ <key>Text</key>
847
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
848
+ \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
849
+ {\colortbl;\red255\green255\blue255;}
850
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
851
+
852
+ \f0\fs32 \cf0 Server 1}</string>
853
+ </dict>
854
+ </dict>
855
+ </array>
856
+ <key>GridInfo</key>
857
+ <dict/>
858
+ <key>GuidesLocked</key>
859
+ <string>NO</string>
860
+ <key>GuidesVisible</key>
861
+ <string>YES</string>
862
+ <key>HPages</key>
863
+ <integer>2</integer>
864
+ <key>ImageCounter</key>
865
+ <integer>3</integer>
866
+ <key>KeepToScale</key>
867
+ <false/>
868
+ <key>Layers</key>
869
+ <array>
870
+ <dict>
871
+ <key>Lock</key>
872
+ <string>NO</string>
873
+ <key>Name</key>
874
+ <string>Layer 1</string>
875
+ <key>Print</key>
876
+ <string>YES</string>
877
+ <key>View</key>
878
+ <string>YES</string>
879
+ </dict>
880
+ </array>
881
+ <key>LayoutInfo</key>
882
+ <dict>
883
+ <key>Animate</key>
884
+ <string>NO</string>
885
+ <key>AutoLayout</key>
886
+ <integer>2</integer>
887
+ <key>LineLength</key>
888
+ <real>0.4643835723400116</real>
889
+ <key>circoMinDist</key>
890
+ <real>18</real>
891
+ <key>circoSeparation</key>
892
+ <real>0.0</real>
893
+ <key>layoutEngine</key>
894
+ <string>dot</string>
895
+ <key>neatoSeparation</key>
896
+ <real>0.0</real>
897
+ <key>twopiSeparation</key>
898
+ <real>0.0</real>
899
+ </dict>
900
+ <key>LinksVisible</key>
901
+ <string>NO</string>
902
+ <key>MagnetsVisible</key>
903
+ <string>NO</string>
904
+ <key>MasterSheets</key>
905
+ <array/>
906
+ <key>ModificationDate</key>
907
+ <string>2012-11-28 22:20:08 +0000</string>
908
+ <key>Modifier</key>
909
+ <string>Aidan Feldman</string>
910
+ <key>NotesVisible</key>
911
+ <string>NO</string>
912
+ <key>Orientation</key>
913
+ <integer>2</integer>
914
+ <key>OriginVisible</key>
915
+ <string>NO</string>
916
+ <key>OutlineStyle</key>
917
+ <string>Basic</string>
918
+ <key>PageBreaks</key>
919
+ <string>NO</string>
920
+ <key>PrintInfo</key>
921
+ <dict>
922
+ <key>NSBottomMargin</key>
923
+ <array>
924
+ <string>float</string>
925
+ <string>41</string>
926
+ </array>
927
+ <key>NSHorizonalPagination</key>
928
+ <array>
929
+ <string>coded</string>
930
+ <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
931
+ </array>
932
+ <key>NSLeftMargin</key>
933
+ <array>
934
+ <string>float</string>
935
+ <string>18</string>
936
+ </array>
937
+ <key>NSPaperSize</key>
938
+ <array>
939
+ <string>size</string>
940
+ <string>{612, 792}</string>
941
+ </array>
942
+ <key>NSPrintReverseOrientation</key>
943
+ <array>
944
+ <string>int</string>
945
+ <string>0</string>
946
+ </array>
947
+ <key>NSRightMargin</key>
948
+ <array>
949
+ <string>float</string>
950
+ <string>18</string>
951
+ </array>
952
+ <key>NSTopMargin</key>
953
+ <array>
954
+ <string>float</string>
955
+ <string>18</string>
956
+ </array>
957
+ </dict>
958
+ <key>PrintOnePage</key>
959
+ <true/>
960
+ <key>ReadOnly</key>
961
+ <string>NO</string>
962
+ <key>RowAlign</key>
963
+ <integer>1</integer>
964
+ <key>RowSpacing</key>
965
+ <real>36</real>
966
+ <key>SheetTitle</key>
967
+ <string>Canvas 1</string>
968
+ <key>SmartAlignmentGuidesActive</key>
969
+ <string>YES</string>
970
+ <key>SmartDistanceGuidesActive</key>
971
+ <string>YES</string>
972
+ <key>UniqueID</key>
973
+ <integer>1</integer>
974
+ <key>UseEntirePage</key>
975
+ <false/>
976
+ <key>VPages</key>
977
+ <integer>1</integer>
978
+ <key>WindowInfo</key>
979
+ <dict>
980
+ <key>CurrentSheet</key>
981
+ <integer>0</integer>
982
+ <key>ExpandedCanvases</key>
983
+ <array/>
984
+ <key>FitInWindow</key>
985
+ <true/>
986
+ <key>Frame</key>
987
+ <string>{{381, 247}, {717, 611}}</string>
988
+ <key>ListView</key>
989
+ <false/>
990
+ <key>OutlineWidth</key>
991
+ <integer>142</integer>
992
+ <key>RightSidebar</key>
993
+ <true/>
994
+ <key>Sidebar</key>
995
+ <false/>
996
+ <key>SidebarWidth</key>
997
+ <integer>138</integer>
998
+ <key>VisibleRegion</key>
999
+ <string>{{1.17331024554437, 1.1733102455443702}, {674.65339118801285, 606.60139694643942}}</string>
1000
+ <key>Zoom</key>
1001
+ <real>0.85228949785232544</real>
1002
+ <key>ZoomValues</key>
1003
+ <array>
1004
+ <array>
1005
+ <string>Canvas 1</string>
1006
+ <real>0.0</real>
1007
+ <real>1</real>
1008
+ </array>
1009
+ </array>
1010
+ </dict>
1011
+ </dict>
1012
+ </plist>