rhosync 2.0.9 → 2.1.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/CHANGELOG +9 -0
  2. data/Rakefile +1 -1
  3. data/bench/benchapp/sources/mock_adapter.rb +2 -2
  4. data/bench/benchapp/tmp/restart.txt +0 -0
  5. data/bench/spec/mock_adapter_spec.rb +1 -1
  6. data/lib/rhosync/api/stats.rb +21 -0
  7. data/lib/rhosync/bulk_data/bulk_data.rb +1 -1
  8. data/lib/rhosync/client.rb +10 -0
  9. data/lib/rhosync/console/app/public/home.css +9 -4
  10. data/lib/rhosync/console/app/public/images/foot_logo_rhosync.png +0 -0
  11. data/lib/rhosync/console/app/public/images/landing_header.jpg +0 -0
  12. data/lib/rhosync/console/app/public/jqplot/excanvas.min.js +35 -0
  13. data/lib/rhosync/console/app/public/jqplot/jqplot.barRenderer.min.js +34 -0
  14. data/lib/rhosync/console/app/public/jqplot/jqplot.canvasAxisLabelRenderer.js +187 -0
  15. data/lib/rhosync/console/app/public/jqplot/jqplot.canvasAxisTickRenderer.js +226 -0
  16. data/lib/rhosync/console/app/public/jqplot/jqplot.canvasTextRenderer.js +408 -0
  17. data/lib/rhosync/console/app/public/jqplot/jqplot.categoryAxisRenderer.min.js +34 -0
  18. data/lib/rhosync/console/app/public/jqplot/jqplot.cursor.js +952 -0
  19. data/lib/rhosync/console/app/public/jqplot/jqplot.dateAxisRenderer.js +313 -0
  20. data/lib/rhosync/console/app/public/jqplot/jqplot.dateAxisRenderer.min.js +34 -0
  21. data/lib/rhosync/console/app/public/jqplot/jqplot.pointLabels.min.js +34 -0
  22. data/lib/rhosync/console/app/public/jqplot/jquery-1.4.2.min.js +154 -0
  23. data/lib/rhosync/console/app/public/jqplot/jquery.jqplot.min.css +1 -0
  24. data/lib/rhosync/console/app/public/jqplot/jquery.jqplot.min.js +34 -0
  25. data/lib/rhosync/console/app/routes/timing.rb +223 -7
  26. data/lib/rhosync/console/app/views/content.erb +1 -1
  27. data/lib/rhosync/console/app/views/headermenu.erb +4 -4
  28. data/lib/rhosync/console/app/views/jqplot.erb +52 -0
  29. data/lib/rhosync/console/app/views/layout.erb +86 -11
  30. data/lib/rhosync/console/rhosync_api.rb +19 -0
  31. data/lib/rhosync/jobs/bulk_data_job.rb +2 -2
  32. data/lib/rhosync/stats/middleware.rb +4 -6
  33. data/lib/rhosync/stats/record.rb +51 -26
  34. data/lib/rhosync/store.rb +12 -1
  35. data/lib/rhosync/tasks.rb +4 -2
  36. data/lib/rhosync/user.rb +11 -1
  37. data/lib/rhosync/version.rb +2 -2
  38. data/lib/rhosync.rb +3 -3
  39. data/spec/api/rhosync_api_spec.rb +26 -0
  40. data/spec/api/stats_spec.rb +66 -0
  41. data/spec/client_spec.rb +40 -0
  42. data/spec/client_sync_spec.rb +14 -0
  43. data/spec/stats/middleware_spec.rb +11 -5
  44. data/spec/stats/record_spec.rb +30 -11
  45. data/spec/store_spec.rb +15 -1
  46. data/spec/user_spec.rb +44 -0
  47. metadata +32 -14
  48. data/doc/protocol.html +0 -2291
  49. data/doc/public/css/print.css +0 -29
  50. data/doc/public/css/screen.css +0 -257
  51. data/doc/public/css/style.css +0 -20
  52. data/lib/rhosync/console/app/public/images/header_halo copy.jpg +0 -0
@@ -1,29 +0,0 @@
1
- /* -----------------------------------------------------------------------
2
-
3
-
4
- Blueprint CSS Framework 0.9
5
- http://blueprintcss.org
6
-
7
- * Copyright (c) 2007-Present. See LICENSE for more info.
8
- * See README for instructions on how to use Blueprint.
9
- * For credits and origins, see AUTHORS.
10
- * This is a compressed file. See the sources in the 'src' directory.
11
-
12
- ----------------------------------------------------------------------- */
13
-
14
- /* print.css */
15
- body {line-height:1.5;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;color:#000;background:none;font-size:10pt;}
16
- .container {background:none;}
17
- hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;}
18
- hr.space {background:#fff;color:#fff;visibility:hidden;}
19
- h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;}
20
- code {font:.9em "Courier New", Monaco, Courier, monospace;}
21
- a img {border:none;}
22
- p img.top {margin-top:0;}
23
- blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;}
24
- .small {font-size:.9em;}
25
- .large {font-size:1.1em;}
26
- .quiet {color:#999;}
27
- .hide {display:none;}
28
- a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;}
29
- a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;}
@@ -1,257 +0,0 @@
1
- /* -----------------------------------------------------------------------
2
-
3
-
4
- Blueprint CSS Framework 0.9
5
- http://blueprintcss.org
6
-
7
- * Copyright (c) 2007-Present. See LICENSE for more info.
8
- * See README for instructions on how to use Blueprint.
9
- * For credits and origins, see AUTHORS.
10
- * This is a compressed file. See the sources in the 'src' directory.
11
-
12
- ----------------------------------------------------------------------- */
13
-
14
- /* reset.css */
15
- html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;}
16
- body {line-height:1.5;}
17
- table {border-collapse:separate;border-spacing:0;}
18
- caption, th, td {text-align:left;font-weight:normal;}
19
- table, td, th {vertical-align:middle;}
20
- blockquote:before, blockquote:after, q:before, q:after {content:"";}
21
- blockquote, q {quotes:"" "";}
22
- a img {border:none;}
23
-
24
- /* typography.css */
25
- html {font-size:100.01%;}
26
- body {font-size:75%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;}
27
- h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;}
28
- h1 {font-size:3em;line-height:1;margin-bottom:0.5em;}
29
- h2 {font-size:2em;margin-bottom:0.75em;}
30
- h3 {font-size:1.5em;line-height:1;margin-bottom:1em;}
31
- h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;}
32
- h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;}
33
- h6 {font-size:1em;font-weight:bold;}
34
- h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;}
35
- p {margin:0 0 1.5em;}
36
- p img.left {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;}
37
- p img.right {float:right;margin:1.5em 0 1.5em 1.5em;}
38
- a:focus, a:hover {color:#000;}
39
- a {color:#009;text-decoration:underline;}
40
- blockquote {margin:1.5em;color:#666;font-style:italic;}
41
- strong {font-weight:bold;}
42
- em, dfn {font-style:italic;}
43
- dfn {font-weight:bold;}
44
- sup, sub {line-height:0;}
45
- abbr, acronym {border-bottom:1px dotted #666;}
46
- address {margin:0 0 1.5em;font-style:italic;}
47
- del {color:#666;}
48
- pre {margin:1.5em 0;white-space:pre;}
49
- pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;}
50
- li ul, li ol {margin:0;}
51
- ul, ol {margin:0 1.5em 1.5em 0;padding-left:3.333em;}
52
- ul {list-style-type:disc;}
53
- ol {list-style-type:decimal;}
54
- dl {margin:0 0 1.5em 0;}
55
- dl dt {font-weight:bold;}
56
- dd {margin-left:1.5em;}
57
- table {table-layout: fixed; margin-bottom:1.4em;width:100%;}
58
- th {font-weight:bold;}
59
- thead th {background:#c3d9ff;}
60
- th, td, caption {padding:1px 4px 1px 2px;}
61
- tr.even td {background:#e5ecf9;}
62
- tfoot {font-style:italic;}
63
- caption {background:#eee;}
64
- .small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;}
65
- .large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;}
66
- .hide {display:none;}
67
- .quiet {color:#666;}
68
- .loud {color:#000;}
69
- .highlight {background:#ff0;}
70
- .added {background:#060;color:#fff;}
71
- .removed {background:#900;color:#fff;}
72
- .first {margin-left:0;padding-left:0;}
73
- .last {margin-right:0;padding-right:0;}
74
- .top {margin-top:0;padding-top:0;}
75
- .bottom {margin-bottom:0;padding-bottom:0;}
76
-
77
- /* forms.css */
78
- label {font-weight:bold;}
79
- fieldset {padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;}
80
- legend {font-weight:bold;font-size:1.2em;}
81
- input[type=text], input[type=password], input.text, input.title, textarea, select {background-color:#fff;border:1px solid #bbb;}
82
- input[type=text]:focus, input[type=password]:focus, input.text:focus, input.title:focus, textarea:focus, select:focus {border-color:#666;}
83
- input[type=text], input[type=password], input.text, input.title, textarea, select {margin:0.5em 0;}
84
- input.text, input.title {width:300px;padding:5px;}
85
- input.title {font-size:1.5em;}
86
- textarea {width:390px;height:250px;padding:5px;}
87
- input[type=checkbox], input[type=radio], input.checkbox, input.radio {position:relative;top:.25em;}
88
- form.inline {line-height:3;}
89
- form.inline p {margin-bottom:0;}
90
- .error, .notice, .success {padding:.8em;margin-bottom:1em;border:2px solid #ddd;}
91
- .error {background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;}
92
- .notice {background:#FFF6BF;color:#514721;border-color:#FFD324;}
93
- .success {background:#E6EFC2;color:#264409;border-color:#C6D880;}
94
- .error a {color:#8a1f11;}
95
- .notice a {color:#514721;}
96
- .success a {color:#264409;}
97
-
98
- /* grid.css */
99
- .container {width:950px;margin:0 auto;}
100
- .showgrid {background:url(src/grid.png);}
101
- .column, div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21, div.span-22, div.span-23, div.span-24 {float:left;margin-right:10px;}
102
- .last, div.last {margin-right:0;}
103
- .span-1 {width:30px;}
104
- .span-2 {width:70px;}
105
- .span-3 {width:110px;}
106
- .span-4 {width:150px;}
107
- .span-5 {width:190px;}
108
- .span-6 {width:230px;}
109
- .span-7 {width:270px;}
110
- .span-8 {width:310px;}
111
- .span-9 {width:350px;}
112
- .span-10 {width:390px;}
113
- .span-11 {width:430px;}
114
- .span-12 {width:470px;}
115
- .span-13 {width:510px;}
116
- .span-14 {width:550px;}
117
- .span-15 {width:590px;}
118
- .span-16 {width:630px;}
119
- .span-17 {width:670px;}
120
- .span-18 {width:710px;}
121
- .span-19 {width:750px;}
122
- .span-20 {width:790px;}
123
- .span-21 {width:830px;}
124
- .span-22 {width:870px;}
125
- .span-23 {width:910px;}
126
- .span-24, div.span-24 {width:950px;margin-right:0;}
127
- input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 {border-left-width:1px!important;border-right-width:1px!important;padding-left:5px!important;padding-right:5px!important;}
128
- input.span-1, textarea.span-1 {width:18px!important;}
129
- input.span-2, textarea.span-2 {width:58px!important;}
130
- input.span-3, textarea.span-3 {width:98px!important;}
131
- input.span-4, textarea.span-4 {width:138px!important;}
132
- input.span-5, textarea.span-5 {width:178px!important;}
133
- input.span-6, textarea.span-6 {width:218px!important;}
134
- input.span-7, textarea.span-7 {width:258px!important;}
135
- input.span-8, textarea.span-8 {width:298px!important;}
136
- input.span-9, textarea.span-9 {width:338px!important;}
137
- input.span-10, textarea.span-10 {width:378px!important;}
138
- input.span-11, textarea.span-11 {width:418px!important;}
139
- input.span-12, textarea.span-12 {width:458px!important;}
140
- input.span-13, textarea.span-13 {width:498px!important;}
141
- input.span-14, textarea.span-14 {width:538px!important;}
142
- input.span-15, textarea.span-15 {width:578px!important;}
143
- input.span-16, textarea.span-16 {width:618px!important;}
144
- input.span-17, textarea.span-17 {width:658px!important;}
145
- input.span-18, textarea.span-18 {width:698px!important;}
146
- input.span-19, textarea.span-19 {width:738px!important;}
147
- input.span-20, textarea.span-20 {width:778px!important;}
148
- input.span-21, textarea.span-21 {width:818px!important;}
149
- input.span-22, textarea.span-22 {width:858px!important;}
150
- input.span-23, textarea.span-23 {width:898px!important;}
151
- input.span-24, textarea.span-24 {width:938px!important;}
152
- .append-1 {padding-right:40px;}
153
- .append-2 {padding-right:80px;}
154
- .append-3 {padding-right:120px;}
155
- .append-4 {padding-right:160px;}
156
- .append-5 {padding-right:200px;}
157
- .append-6 {padding-right:240px;}
158
- .append-7 {padding-right:280px;}
159
- .append-8 {padding-right:320px;}
160
- .append-9 {padding-right:360px;}
161
- .append-10 {padding-right:400px;}
162
- .append-11 {padding-right:440px;}
163
- .append-12 {padding-right:480px;}
164
- .append-13 {padding-right:520px;}
165
- .append-14 {padding-right:560px;}
166
- .append-15 {padding-right:600px;}
167
- .append-16 {padding-right:640px;}
168
- .append-17 {padding-right:680px;}
169
- .append-18 {padding-right:720px;}
170
- .append-19 {padding-right:760px;}
171
- .append-20 {padding-right:800px;}
172
- .append-21 {padding-right:840px;}
173
- .append-22 {padding-right:880px;}
174
- .append-23 {padding-right:920px;}
175
- .prepend-1 {padding-left:40px;}
176
- .prepend-2 {padding-left:80px;}
177
- .prepend-3 {padding-left:120px;}
178
- .prepend-4 {padding-left:160px;}
179
- .prepend-5 {padding-left:200px;}
180
- .prepend-6 {padding-left:240px;}
181
- .prepend-7 {padding-left:280px;}
182
- .prepend-8 {padding-left:320px;}
183
- .prepend-9 {padding-left:360px;}
184
- .prepend-10 {padding-left:400px;}
185
- .prepend-11 {padding-left:440px;}
186
- .prepend-12 {padding-left:480px;}
187
- .prepend-13 {padding-left:520px;}
188
- .prepend-14 {padding-left:560px;}
189
- .prepend-15 {padding-left:600px;}
190
- .prepend-16 {padding-left:640px;}
191
- .prepend-17 {padding-left:680px;}
192
- .prepend-18 {padding-left:720px;}
193
- .prepend-19 {padding-left:760px;}
194
- .prepend-20 {padding-left:800px;}
195
- .prepend-21 {padding-left:840px;}
196
- .prepend-22 {padding-left:880px;}
197
- .prepend-23 {padding-left:920px;}
198
- div.border {padding-right:4px;margin-right:5px;border-right:1px solid #eee;}
199
- div.colborder {padding-right:24px;margin-right:25px;border-right:1px solid #eee;}
200
- .pull-1 {margin-left:-40px;}
201
- .pull-2 {margin-left:-80px;}
202
- .pull-3 {margin-left:-120px;}
203
- .pull-4 {margin-left:-160px;}
204
- .pull-5 {margin-left:-200px;}
205
- .pull-6 {margin-left:-240px;}
206
- .pull-7 {margin-left:-280px;}
207
- .pull-8 {margin-left:-320px;}
208
- .pull-9 {margin-left:-360px;}
209
- .pull-10 {margin-left:-400px;}
210
- .pull-11 {margin-left:-440px;}
211
- .pull-12 {margin-left:-480px;}
212
- .pull-13 {margin-left:-520px;}
213
- .pull-14 {margin-left:-560px;}
214
- .pull-15 {margin-left:-600px;}
215
- .pull-16 {margin-left:-640px;}
216
- .pull-17 {margin-left:-680px;}
217
- .pull-18 {margin-left:-720px;}
218
- .pull-19 {margin-left:-760px;}
219
- .pull-20 {margin-left:-800px;}
220
- .pull-21 {margin-left:-840px;}
221
- .pull-22 {margin-left:-880px;}
222
- .pull-23 {margin-left:-920px;}
223
- .pull-24 {margin-left:-960px;}
224
- .pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float:left;position:relative;}
225
- .push-1 {margin:0 -40px 1.5em 40px;}
226
- .push-2 {margin:0 -80px 1.5em 80px;}
227
- .push-3 {margin:0 -120px 1.5em 120px;}
228
- .push-4 {margin:0 -160px 1.5em 160px;}
229
- .push-5 {margin:0 -200px 1.5em 200px;}
230
- .push-6 {margin:0 -240px 1.5em 240px;}
231
- .push-7 {margin:0 -280px 1.5em 280px;}
232
- .push-8 {margin:0 -320px 1.5em 320px;}
233
- .push-9 {margin:0 -360px 1.5em 360px;}
234
- .push-10 {margin:0 -400px 1.5em 400px;}
235
- .push-11 {margin:0 -440px 1.5em 440px;}
236
- .push-12 {margin:0 -480px 1.5em 480px;}
237
- .push-13 {margin:0 -520px 1.5em 520px;}
238
- .push-14 {margin:0 -560px 1.5em 560px;}
239
- .push-15 {margin:0 -600px 1.5em 600px;}
240
- .push-16 {margin:0 -640px 1.5em 640px;}
241
- .push-17 {margin:0 -680px 1.5em 680px;}
242
- .push-18 {margin:0 -720px 1.5em 720px;}
243
- .push-19 {margin:0 -760px 1.5em 760px;}
244
- .push-20 {margin:0 -800px 1.5em 800px;}
245
- .push-21 {margin:0 -840px 1.5em 840px;}
246
- .push-22 {margin:0 -880px 1.5em 880px;}
247
- .push-23 {margin:0 -920px 1.5em 920px;}
248
- .push-24 {margin:0 -960px 1.5em 960px;}
249
- .push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float:right;position:relative;}
250
- .prepend-top {margin-top:1.5em;}
251
- .append-bottom {margin-bottom:1.5em;}
252
- .box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;}
253
- hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:none;}
254
- hr.space {background:#fff;color:#fff;visibility:hidden;}
255
- .clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;}
256
- .clearfix, .container {display:block;}
257
- .clear {clear:both;}
@@ -1,20 +0,0 @@
1
- h2 { background: #ddd; text-align: center; padding: 4px; }
2
-
3
- .content { font-size: 1.2em; }
4
- .content h3 { background: #ffd; font-size: 1.5em; padding: 6px 2px; }
5
-
6
- #wrapper { text-align: left; width: 640px; } /* toc width */
7
-
8
- /* font styling */
9
- #wrapper h1 { font-size: 18px; margin-bottom: 0.8em; text-align: left; }
10
- #wrapper a { color: #222; }
11
- #wrapper a:hover { color: #555; }
12
- #wrapper p { font-size: 18px; margin: 1.5em 0; }
13
- /*#wrapper p a { background: url(dot.gif) repeat-x bottom left; }*/
14
-
15
- /* start table of contents styling */
16
- ul#toc { list-style: none; width: 640px; padding-left: 0;}
17
- /*#toc li { background: url(dot.gif) repeat-x 0 0.85em; }*/
18
- #toc li a { font-size: 14px; background: #FFF; padding: 0 0 0 10px; }
19
- #toc li span { font-size: 14px; background: #FFF; padding: 0 0 0 4px; }
20
- #toc li br { clear: both; }