redis_object 1.0 → 1.1

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.
Files changed (103) hide show
  1. data/.coveralls.yml +1 -0
  2. data/.gitignore +2 -0
  3. data/.travis.yml +5 -0
  4. data/Gemfile +4 -0
  5. data/README.markdown +24 -15
  6. data/Rakefile +8 -0
  7. data/lib/redis_object.rb +11 -1
  8. data/lib/redis_object/base.rb +210 -60
  9. data/lib/redis_object/collection.rb +130 -100
  10. data/lib/redis_object/defaults.rb +21 -8
  11. data/lib/redis_object/{history.rb → experimental/history.rb} +0 -0
  12. data/lib/redis_object/ext/filters.rb +34 -16
  13. data/lib/redis_object/ext/script_cache.rb +92 -0
  14. data/lib/redis_object/ext/shardable.rb +18 -0
  15. data/lib/redis_object/ext/triggers.rb +75 -13
  16. data/lib/redis_object/ext/view_caching.rb +258 -0
  17. data/lib/redis_object/ext/views.rb +102 -0
  18. data/lib/redis_object/indices.rb +44 -39
  19. data/lib/redis_object/inheritance_tracking.rb +23 -0
  20. data/lib/redis_object/keys.rb +4 -4
  21. data/lib/redis_object/storage.rb +30 -1
  22. data/lib/redis_object/storage/adapter.rb +6 -3
  23. data/lib/redis_object/storage/redis.rb +98 -3
  24. data/lib/redis_object/timestamps.rb +42 -21
  25. data/lib/redis_object/types.rb +172 -30
  26. data/lib/redis_object/version.rb +1 -1
  27. data/redis_object.gemspec +1 -0
  28. data/spec/adapter_spec.rb +43 -0
  29. data/spec/base_spec.rb +41 -6
  30. data/spec/benchmark_spec.rb +46 -0
  31. data/spec/collections_spec.rb +144 -0
  32. data/spec/defaults_spec.rb +56 -0
  33. data/spec/filters_spec.rb +29 -0
  34. data/spec/indices_spec.rb +45 -0
  35. data/spec/rename_class_spec.rb +96 -0
  36. data/spec/spec_helper.rb +32 -1
  37. data/spec/timestamp_spec.rb +28 -0
  38. data/spec/trigger_spec.rb +51 -0
  39. data/spec/types_spec.rb +103 -0
  40. data/spec/view_caching_spec.rb +130 -0
  41. data/spec/views_spec.rb +72 -0
  42. metadata +111 -116
  43. data/doc/Object.html +0 -185
  44. data/doc/Seabright.html +0 -181
  45. data/doc/Seabright/Adapter.html +0 -442
  46. data/doc/Seabright/Collection.html +0 -797
  47. data/doc/Seabright/Collections.html +0 -635
  48. data/doc/Seabright/Collections/ClassMethods.html +0 -212
  49. data/doc/Seabright/ExternalIndex.html +0 -217
  50. data/doc/Seabright/History.html +0 -382
  51. data/doc/Seabright/History/ClassMethods.html +0 -276
  52. data/doc/Seabright/Indices.html +0 -324
  53. data/doc/Seabright/Indices/ClassMethods.html +0 -348
  54. data/doc/Seabright/Keys.html +0 -314
  55. data/doc/Seabright/Keys/ClassMethods.html +0 -276
  56. data/doc/Seabright/ObjectBase.html +0 -852
  57. data/doc/Seabright/ObjectBase/ClassMethods.html +0 -677
  58. data/doc/Seabright/RedisObject.html +0 -230
  59. data/doc/Seabright/References.html +0 -280
  60. data/doc/Seabright/Storage.html +0 -252
  61. data/doc/Seabright/Storage/ClassMethods.html +0 -276
  62. data/doc/Seabright/Storage/MySQL.html +0 -442
  63. data/doc/Seabright/Storage/Redis.html +0 -218
  64. data/doc/Seabright/Template.html +0 -212
  65. data/doc/Seabright/Template/ClassMethods.html +0 -166
  66. data/doc/Seabright/Timestamps.html +0 -292
  67. data/doc/Seabright/Timestamps/ClassMethods.html +0 -214
  68. data/doc/Seabright/Types.html +0 -410
  69. data/doc/Seabright/Types/ClassMethods.html +0 -308
  70. data/doc/created.rid +0 -17
  71. data/doc/images/add.png +0 -0
  72. data/doc/images/brick.png +0 -0
  73. data/doc/images/brick_link.png +0 -0
  74. data/doc/images/bug.png +0 -0
  75. data/doc/images/bullet_black.png +0 -0
  76. data/doc/images/bullet_toggle_minus.png +0 -0
  77. data/doc/images/bullet_toggle_plus.png +0 -0
  78. data/doc/images/date.png +0 -0
  79. data/doc/images/delete.png +0 -0
  80. data/doc/images/find.png +0 -0
  81. data/doc/images/loadingAnimation.gif +0 -0
  82. data/doc/images/macFFBgHack.png +0 -0
  83. data/doc/images/package.png +0 -0
  84. data/doc/images/page_green.png +0 -0
  85. data/doc/images/page_white_text.png +0 -0
  86. data/doc/images/page_white_width.png +0 -0
  87. data/doc/images/plugin.png +0 -0
  88. data/doc/images/ruby.png +0 -0
  89. data/doc/images/tag_blue.png +0 -0
  90. data/doc/images/tag_green.png +0 -0
  91. data/doc/images/transparent.png +0 -0
  92. data/doc/images/wrench.png +0 -0
  93. data/doc/images/wrench_orange.png +0 -0
  94. data/doc/images/zoom.png +0 -0
  95. data/doc/index.html +0 -125
  96. data/doc/js/darkfish.js +0 -153
  97. data/doc/js/jquery.js +0 -18
  98. data/doc/js/navigation.js +0 -142
  99. data/doc/js/search.js +0 -94
  100. data/doc/js/search_index.js +0 -1
  101. data/doc/js/searcher.js +0 -228
  102. data/doc/rdoc.css +0 -543
  103. data/doc/table_of_contents.html +0 -394
data/doc/rdoc.css DELETED
@@ -1,543 +0,0 @@
1
- /*
2
- * "Darkfish" Rdoc CSS
3
- * $Id: rdoc.css 54 2009-01-27 01:09:48Z deveiant $
4
- *
5
- * Author: Michael Granger <ged@FaerieMUD.org>
6
- *
7
- */
8
-
9
- /* Base Green is: #6C8C22 */
10
-
11
- * { padding: 0; margin: 0; }
12
-
13
- body {
14
- background: #efefef;
15
- font: 14px "Helvetica Neue", Helvetica, Tahoma, sans-serif;
16
- margin-left: 40px;
17
- }
18
- body.file-popup {
19
- font-size: 90%;
20
- margin-left: 0;
21
- }
22
-
23
- h1 {
24
- font-size: 300%;
25
- text-shadow: rgba(135,145,135,0.65) 2px 2px 3px;
26
- color: #6C8C22;
27
- }
28
- h2,h3,h4 { margin-top: 1.5em; }
29
-
30
- :link,
31
- :visited {
32
- color: #6C8C22;
33
- text-decoration: none;
34
- }
35
- :link:hover,
36
- :visited:hover {
37
- border-bottom: 1px dotted #6C8C22;
38
- }
39
-
40
- pre {
41
- background: #ddd;
42
- padding: 0.5em 0;
43
- }
44
-
45
- /* @group Generic Classes */
46
-
47
- .initially-hidden {
48
- display: none;
49
- }
50
-
51
- #search-field {
52
- width: 98%;
53
- background: #eee;
54
- border: none;
55
- height: 1.5em;
56
- -webkit-border-radius: 4px;
57
- }
58
- #search-field:focus {
59
- background: #f1edba;
60
- }
61
- #search-field:-moz-placeholder,
62
- #search-field::-webkit-input-placeholder {
63
- font-weight: bold;
64
- color: #666;
65
- }
66
-
67
- .missing-docs {
68
- font-size: 120%;
69
- background: white url(images/wrench_orange.png) no-repeat 4px center;
70
- color: #ccc;
71
- line-height: 2em;
72
- border: 1px solid #d00;
73
- opacity: 1;
74
- padding-left: 20px;
75
- text-indent: 24px;
76
- letter-spacing: 3px;
77
- font-weight: bold;
78
- -webkit-border-radius: 5px;
79
- -moz-border-radius: 5px;
80
- }
81
-
82
- .target-section {
83
- border: 2px solid #dcce90;
84
- border-left-width: 8px;
85
- padding: 0 1em;
86
- background: #fff3c2;
87
- }
88
-
89
- /* @end */
90
-
91
- /* @group Index Page, Standalone file pages */
92
- .indexpage ul {
93
- line-height: 160%;
94
- list-style: none;
95
- }
96
- .indexpage ul :link,
97
- .indexpage ul :visited {
98
- font-size: 16px;
99
- }
100
-
101
- .indexpage li {
102
- padding-left: 20px;
103
- }
104
-
105
- .indexpage ul > li {
106
- background: url(images/bullet_black.png) no-repeat left 4px;
107
- }
108
- .indexpage li.method {
109
- background: url(images/plugin.png) no-repeat left 4px;
110
- }
111
- .indexpage li.module {
112
- background: url(images/package.png) no-repeat left 4px;
113
- }
114
- .indexpage li.class {
115
- background: url(images/ruby.png) no-repeat left 4px;
116
- }
117
- .indexpage li.file {
118
- background: url(images/page_white_text.png) no-repeat left 4px;
119
- }
120
- .indexpage li li {
121
- background: url(images/tag_blue.png) no-repeat left 4px;
122
- }
123
- .indexpage li .toc-toggle {
124
- width: 16px;
125
- height: 16px;
126
- background: url(images/add.png) no-repeat;
127
- }
128
-
129
- .indexpage li .toc-toggle.open {
130
- background: url(images/delete.png) no-repeat;
131
- }
132
-
133
- /* @end */
134
-
135
- /* @group Top-Level Structure */
136
-
137
- #metadata {
138
- float: left;
139
- width: 260px;
140
- }
141
-
142
- #documentation {
143
- margin: 2em 1em 5em 300px;
144
- min-width: 340px;
145
- }
146
-
147
- #validator-badges {
148
- clear: both;
149
- margin: 1em 1em 2em;
150
- font-size: smaller;
151
- }
152
-
153
- /* @end */
154
-
155
- /* @group Metadata Section */
156
- #metadata .section {
157
- background-color: #dedede;
158
- -moz-border-radius: 5px;
159
- -webkit-border-radius: 5px;
160
- border: 1px solid #aaa;
161
- margin: 0 8px 8px;
162
- font-size: 90%;
163
- overflow: hidden;
164
- }
165
- #metadata h3.section-header {
166
- margin: 0;
167
- padding: 2px 8px;
168
- background: #ccc;
169
- color: #666;
170
- -moz-border-radius-topleft: 4px;
171
- -moz-border-radius-topright: 4px;
172
- -webkit-border-top-left-radius: 4px;
173
- -webkit-border-top-right-radius: 4px;
174
- border-bottom: 1px solid #aaa;
175
- }
176
- #metadata #home-section h3.section-header {
177
- border-bottom: 0;
178
- }
179
-
180
- #metadata ul,
181
- #metadata dl,
182
- #metadata p {
183
- padding: 8px;
184
- list-style: none;
185
- }
186
-
187
- #file-metadata {
188
- margin-top: 2em;
189
- }
190
-
191
- #file-metadata ul {
192
- padding-left: 28px;
193
- list-style-image: url(images/page_green.png);
194
- }
195
-
196
- dl.svninfo {
197
- color: #666;
198
- margin: 0;
199
- }
200
- dl.svninfo dt {
201
- font-weight: bold;
202
- }
203
-
204
- ul.link-list li {
205
- white-space: nowrap;
206
- }
207
- ul.link-list .type {
208
- font-size: 8px;
209
- text-transform: uppercase;
210
- color: white;
211
- background: #969696;
212
- padding: 2px 4px;
213
- -webkit-border-radius: 5px;
214
- }
215
-
216
- /* @end */
217
-
218
- /* @group Class Metadata Section */
219
- #class-metadata {
220
- margin-top: 2em;
221
- }
222
- /* @end */
223
-
224
- /* @group Project Metadata Section */
225
- #project-metadata {
226
- margin-top: 2em;
227
- }
228
-
229
- #project-metadata .section {
230
- border: 1px solid #aaa;
231
- }
232
- #project-metadata h3.section-header {
233
- border-bottom: 1px solid #aaa;
234
- position: relative;
235
- }
236
-
237
- #project-metadata form {
238
- color: #777;
239
- background: #ccc;
240
- }
241
-
242
- /* @end */
243
-
244
- /* @group Documentation Section */
245
- .description {
246
- font-size: 100%;
247
- color: #333;
248
- }
249
-
250
- .description p {
251
- margin: 1em 0.4em;
252
- }
253
-
254
- .description li p {
255
- margin: 0;
256
- }
257
-
258
- .description ol,
259
- .description ul {
260
- margin-left: 1.5em;
261
- }
262
- .description ol li,
263
- .description ul li {
264
- line-height: 1.4em;
265
- }
266
-
267
- .note-list {
268
- margin: 8px 0;
269
- }
270
-
271
- .label-list {
272
- margin: 8px 1.5em;
273
- border: 1px solid #ccc;
274
- }
275
- .description .label-list {
276
- font-size: 14px;
277
- }
278
-
279
- .note-list dt {
280
- font-weight: bold;
281
- }
282
- .note-list dd {
283
- padding: 0 12px;
284
- }
285
-
286
- .label-list dt {
287
- padding: 2px 4px;
288
- font-weight: bold;
289
- background: #ddd;
290
- }
291
- .label-list dd {
292
- padding: 2px 12px;
293
- }
294
- .label-list dd + dt,
295
- .note-list dd + dt {
296
- margin-top: 0.7em;
297
- }
298
-
299
- #documentation .section {
300
- font-size: 90%;
301
- }
302
-
303
- #documentation h2.section-header {
304
- margin-top: 1em;
305
- padding: 0.25em 0.5em;
306
- background: #ccc;
307
- color: #333;
308
- font-size: 175%;
309
- border: 1px solid #bbb;
310
- -moz-border-radius: 3px;
311
- -webkit-border-radius: 3px;
312
- }
313
-
314
- .documentation-section-title {
315
- position: relative;
316
- }
317
- .documentation-section-title .section-click-top {
318
- position: absolute;
319
- top: 6px;
320
- right: 12px;
321
- font-size: 10px;
322
- color: #9b9877;
323
- visibility: hidden;
324
- padding-right: 0.5px;
325
- }
326
-
327
- .documentation-section-title:hover .section-click-top {
328
- visibility: visible;
329
- }
330
-
331
- #documentation h3.section-header {
332
- margin-top: 1em;
333
- padding: 0.25em 0.5em;
334
- background-color: #dedede;
335
- color: #333;
336
- font-size: 150%;
337
- border: 1px solid #bbb;
338
- -moz-border-radius: 3px;
339
- -webkit-border-radius: 3px;
340
- }
341
-
342
- #constants-list > dl,
343
- #attributes-list > dl {
344
- margin: 1em 0 2em;
345
- border: 0;
346
- }
347
- #constants-list > dl dt,
348
- #attributes-list > dl dt {
349
- padding-left: 0;
350
- font-weight: bold;
351
- font-family: Monaco, "Andale Mono";
352
- background: inherit;
353
- }
354
- #constants-list > dl dt a,
355
- #attributes-list > dl dt a {
356
- color: inherit;
357
- }
358
- #constants-list > dl dd,
359
- #attributes-list > dl dd {
360
- margin: 0 0 1em 0;
361
- padding: 0;
362
- color: #666;
363
- }
364
-
365
- .documentation-section h2 {
366
- position: relative;
367
- }
368
-
369
- .documentation-section h2 a {
370
- position: absolute;
371
- top: 8px;
372
- right: 10px;
373
- font-size: 12px;
374
- color: #9b9877;
375
- visibility: hidden;
376
- }
377
-
378
- .documentation-section h2:hover a {
379
- visibility: visible;
380
- }
381
-
382
- /* @group Method Details */
383
-
384
- #documentation .method-source-code {
385
- display: none;
386
- }
387
-
388
- #documentation .method-detail {
389
- margin: 0.5em 0;
390
- padding: 0.5em 0;
391
- cursor: pointer;
392
- }
393
- #documentation .method-detail:hover {
394
- background-color: #f1edba;
395
- }
396
- #documentation .method-heading {
397
- position: relative;
398
- padding: 2px 4px 0 20px;
399
- font-size: 125%;
400
- font-weight: bold;
401
- color: #333;
402
- background: url(images/brick.png) no-repeat left bottom;
403
- }
404
- #documentation .method-heading :link,
405
- #documentation .method-heading :visited {
406
- color: inherit;
407
- }
408
- #documentation .method-click-advice {
409
- position: absolute;
410
- top: 2px;
411
- right: 5px;
412
- font-size: 10px;
413
- color: #9b9877;
414
- visibility: hidden;
415
- padding-right: 20px;
416
- line-height: 20px;
417
- background: url(images/zoom.png) no-repeat right top;
418
- }
419
- #documentation .method-heading:hover .method-click-advice {
420
- visibility: visible;
421
- }
422
-
423
- #documentation .method-alias .method-heading {
424
- color: #666;
425
- background: url(images/brick_link.png) no-repeat left bottom;
426
- }
427
-
428
- #documentation .method-description,
429
- #documentation .aliases {
430
- margin: 0 20px;
431
- color: #666;
432
- }
433
-
434
- #documentation .method-description p,
435
- #documentation .aliases p {
436
- line-height: 1.2em;
437
- }
438
-
439
- #documentation .aliases {
440
- padding-top: 4px;
441
- font-style: italic;
442
- cursor: default;
443
- }
444
- #documentation .method-description p {
445
- margin-bottom: 0.5em;
446
- }
447
- #documentation .method-description ul {
448
- margin-left: 1.5em;
449
- }
450
- pre {
451
- margin: 0.5em 0;
452
- }
453
-
454
- #documentation .attribute-method-heading {
455
- background: url(images/tag_green.png) no-repeat left bottom;
456
- }
457
- #documentation #attribute-method-details .method-detail:hover {
458
- background-color: transparent;
459
- cursor: default;
460
- }
461
- #documentation .attribute-access-type {
462
- font-size: 60%;
463
- text-transform: uppercase;
464
- vertical-align: super;
465
- padding: 0 2px;
466
- }
467
- /* @end */
468
-
469
- /* @end */
470
-
471
- /* @group Source Code */
472
-
473
- pre {
474
- overflow: auto;
475
- background: #262626;
476
- color: white;
477
- border: 1px dashed #999;
478
- padding: 0.5em;
479
- }
480
-
481
- .description pre {
482
- margin: 0 0.4em;
483
- }
484
-
485
- .ruby-constant { color: #7fffd4; background: transparent; }
486
- .ruby-keyword { color: #00ffff; background: transparent; }
487
- .ruby-ivar { color: #eedd82; background: transparent; }
488
- .ruby-operator { color: #00ffee; background: transparent; }
489
- .ruby-identifier { color: #ffdead; background: transparent; }
490
- .ruby-node { color: #ffa07a; background: transparent; }
491
- .ruby-comment { color: #dc0000; font-weight: bold; background: transparent; }
492
- .ruby-regexp { color: #ffa07a; background: transparent; }
493
- .ruby-value { color: #7fffd4; background: transparent; }
494
-
495
- /* @end */
496
-
497
-
498
- /* @group search results */
499
- #search-results h1 {
500
- font-size: 1em;
501
- font-weight: normal;
502
- text-shadow: none;
503
- }
504
-
505
- #search-results .current {
506
- background: #ccc;
507
- border-bottom: 1px solid transparent;
508
- }
509
-
510
- #search-results li {
511
- list-style: none;
512
- border-bottom: 1px solid #aaa;
513
- -moz-border-radius: 4px;
514
- -webkit-border-radius: 4px;
515
- border-radius: 4px;
516
- margin-bottom: 0.5em;
517
- }
518
-
519
- #search-results li:last-child {
520
- border-bottom: none;
521
- margin-bottom: 0;
522
- }
523
-
524
- #search-results li p {
525
- padding: 0;
526
- margin: 0.5em;
527
- }
528
-
529
- #search-results .search-namespace {
530
- font-weight: bold;
531
- }
532
-
533
- #search-results li em {
534
- background: yellow;
535
- font-style: normal;
536
- }
537
-
538
- #search-results pre {
539
- margin: 0.5em;
540
- }
541
-
542
- /* @end */
543
-