rhoconnect 3.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (361) hide show
  1. data/CHANGELOG +208 -0
  2. data/CREDITS +38 -0
  3. data/Gemfile +18 -0
  4. data/Gemfile.lock +97 -0
  5. data/LICENSE +75 -0
  6. data/README.md +10 -0
  7. data/Rakefile +82 -0
  8. data/bench/bench +7 -0
  9. data/bench/bench_runner.rb +112 -0
  10. data/bench/benchapp/Gemfile +21 -0
  11. data/bench/benchapp/Gemfile.lock +76 -0
  12. data/bench/benchapp/Rakefile +22 -0
  13. data/bench/benchapp/application.rb +39 -0
  14. data/bench/benchapp/config.ru +36 -0
  15. data/bench/benchapp/settings/license.key +1 -0
  16. data/bench/benchapp/settings/settings.yml +20 -0
  17. data/bench/benchapp/sources/mock_adapter.rb +55 -0
  18. data/bench/benchapp/sources/queue_mock_adapter.rb +2 -0
  19. data/bench/benchapp/spec/sources/mock_adapter_spec.rb +25 -0
  20. data/bench/benchapp/spec/sources/queue_mock_adapter_spec.rb +25 -0
  21. data/bench/benchapp/spec/spec_helper.rb +42 -0
  22. data/bench/blobapp/Gemfile +31 -0
  23. data/bench/blobapp/Gemfile.lock +103 -0
  24. data/bench/blobapp/Rakefile +25 -0
  25. data/bench/blobapp/application.rb +44 -0
  26. data/bench/blobapp/config.ru +36 -0
  27. data/bench/blobapp/settings/license.key +1 -0
  28. data/bench/blobapp/settings/settings.yml +16 -0
  29. data/bench/blobapp/sources/blob_adapter.rb +71 -0
  30. data/bench/blobapp/spec/sources/blob_adapter_spec.rb +25 -0
  31. data/bench/blobapp/spec/spec_helper.rb +42 -0
  32. data/bench/lib/bench/cli.rb +16 -0
  33. data/bench/lib/bench/logging.rb +13 -0
  34. data/bench/lib/bench/mock_client.rb +41 -0
  35. data/bench/lib/bench/result.rb +50 -0
  36. data/bench/lib/bench/runner.rb +107 -0
  37. data/bench/lib/bench/session.rb +67 -0
  38. data/bench/lib/bench/statistics.rb +56 -0
  39. data/bench/lib/bench/test_data.rb +98 -0
  40. data/bench/lib/bench/timer.rb +10 -0
  41. data/bench/lib/bench/utils.rb +49 -0
  42. data/bench/lib/bench.rb +129 -0
  43. data/bench/lib/testdata/100-data.txt +148 -0
  44. data/bench/lib/testdata/5-data.txt +9 -0
  45. data/bench/lib/testdata/images/icon.ico +0 -0
  46. data/bench/lib/testdata/images/icon.png +0 -0
  47. data/bench/lib/testdata/images/loading-Landscape.png +0 -0
  48. data/bench/lib/testdata/images/loading-LandscapeLeft.png +0 -0
  49. data/bench/lib/testdata/images/loading-LandscapeRight.png +0 -0
  50. data/bench/lib/testdata/images/loading-Portrait.png +0 -0
  51. data/bench/lib/testdata/images/loading-PortraitUpsideDown.png +0 -0
  52. data/bench/lib/testdata/images/loading.png +0 -0
  53. data/bench/lib/testdata/images/loading@2x.png +0 -0
  54. data/bench/run_bench.sh +42 -0
  55. data/bench/run_blob_script.sh +3 -0
  56. data/bench/run_cud_script.sh +3 -0
  57. data/bench/run_query_md_script.sh +3 -0
  58. data/bench/run_query_only_script.sh +3 -0
  59. data/bench/run_query_script.sh +3 -0
  60. data/bench/scripts/blob_cud_script.rb +98 -0
  61. data/bench/scripts/cud_script.rb +92 -0
  62. data/bench/scripts/helpers.rb +101 -0
  63. data/bench/scripts/query_md_script.rb +45 -0
  64. data/bench/scripts/query_only_script.rb +51 -0
  65. data/bench/scripts/query_script.rb +45 -0
  66. data/bench/spec/bench_spec_helper.rb +33 -0
  67. data/bench/spec/logging_spec.rb +15 -0
  68. data/bench/spec/mock_adapter_spec.rb +61 -0
  69. data/bench/spec/mock_client_spec.rb +65 -0
  70. data/bench/spec/result_spec.rb +61 -0
  71. data/bench/spec/utils_spec.rb +36 -0
  72. data/bin/rhoconnect +34 -0
  73. data/bin/rhoconnect-setup +84 -0
  74. data/doc/async-jobs.txt +69 -0
  75. data/doc/authentication.txt +76 -0
  76. data/doc/benchmarks.txt +168 -0
  77. data/doc/blob-sync.txt +130 -0
  78. data/doc/bulk-sync.txt +102 -0
  79. data/doc/client.txt +432 -0
  80. data/doc/command-line.txt +210 -0
  81. data/doc/contributing.txt +60 -0
  82. data/doc/deploying.txt +82 -0
  83. data/doc/install.txt +28 -0
  84. data/doc/introduction.txt +20 -0
  85. data/doc/licensing.txt +18 -0
  86. data/doc/metadata.txt +458 -0
  87. data/doc/migration.txt +182 -0
  88. data/doc/public/css/print.css +29 -0
  89. data/doc/public/css/screen.css +257 -0
  90. data/doc/public/css/style.css +20 -0
  91. data/doc/push.txt +135 -0
  92. data/doc/release.txt +41 -0
  93. data/doc/rest-api.txt +367 -0
  94. data/doc/source-adapters.txt +325 -0
  95. data/doc/stats-middleware.txt +69 -0
  96. data/doc/testing.txt +222 -0
  97. data/doc/tutorial.txt +315 -0
  98. data/doc/web-console.txt +35 -0
  99. data/examples/simple/Rakefile +14 -0
  100. data/examples/simple/application.rb +27 -0
  101. data/examples/simple/config.ru +49 -0
  102. data/examples/simple/settings/license.key +1 -0
  103. data/examples/simple/settings/settings.yml +23 -0
  104. data/examples/simple/sources/sample_adapter.rb +5 -0
  105. data/examples/simple/sources/simple_adapter.rb +5 -0
  106. data/generators/rhoconnect.rb +119 -0
  107. data/generators/templates/application/Gemfile +21 -0
  108. data/generators/templates/application/Rakefile +22 -0
  109. data/generators/templates/application/application.rb +39 -0
  110. data/generators/templates/application/config.ru +36 -0
  111. data/generators/templates/application/settings/license.key +1 -0
  112. data/generators/templates/application/settings/settings.yml +14 -0
  113. data/generators/templates/application/spec/spec_helper.rb +42 -0
  114. data/generators/templates/source/source_adapter.rb +47 -0
  115. data/generators/templates/source/source_spec.rb +25 -0
  116. data/install.sh +408 -0
  117. data/installer/unix-like/rho_connect_install_checkers.rb +140 -0
  118. data/installer/unix-like/rho_connect_install_constants.rb +51 -0
  119. data/installer/unix-like/rho_connect_install_debian.rb +63 -0
  120. data/installer/unix-like/rho_connect_install_dnd.rb +58 -0
  121. data/installer/unix-like/rho_connect_install_get_params.rb +30 -0
  122. data/installer/unix-like/rho_connect_install_installers.rb +142 -0
  123. data/installer/unix-like/rho_connect_install_utilities.rb +85 -0
  124. data/installer/unix-like/rho_connect_install_yum.rb +63 -0
  125. data/installer/unix-like/rhoinstaller.rb +89 -0
  126. data/installer/utils/create_texts.rb +366 -0
  127. data/installer/utils/install_test.rb +140 -0
  128. data/installer/windows/EnvVarUpdate.nsh +328 -0
  129. data/installer/windows/ServiceLib.nsh +369 -0
  130. data/installer/windows/configUi.ini +44 -0
  131. data/installer/windows/icon.ico +0 -0
  132. data/installer/windows/rhosync.nsi +418 -0
  133. data/installer/windows/uninstall.bat +7 -0
  134. data/lib/rhoconnect/api/admin/get_api_token.rb +14 -0
  135. data/lib/rhoconnect/api/admin/get_license_info.rb +8 -0
  136. data/lib/rhoconnect/api/admin/login.rb +6 -0
  137. data/lib/rhoconnect/api/admin/reset.rb +10 -0
  138. data/lib/rhoconnect/api/admin/stats.rb +21 -0
  139. data/lib/rhoconnect/api/application/bulk_data.rb +7 -0
  140. data/lib/rhoconnect/api/application/clientcreate.rb +8 -0
  141. data/lib/rhoconnect/api/application/clientlogin.rb +6 -0
  142. data/lib/rhoconnect/api/application/clientregister.rb +6 -0
  143. data/lib/rhoconnect/api/application/clientreset.rb +6 -0
  144. data/lib/rhoconnect/api/application/query.rb +7 -0
  145. data/lib/rhoconnect/api/application/queue_updates.rb +6 -0
  146. data/lib/rhoconnect/api/application/search.rb +6 -0
  147. data/lib/rhoconnect/api/client/create_client.rb +3 -0
  148. data/lib/rhoconnect/api/client/delete_client.rb +5 -0
  149. data/lib/rhoconnect/api/client/get_client_params.rb +3 -0
  150. data/lib/rhoconnect/api/client/list_client_docs.rb +12 -0
  151. data/lib/rhoconnect/api/client/list_clients.rb +3 -0
  152. data/lib/rhoconnect/api/client/ping.rb +7 -0
  153. data/lib/rhoconnect/api/source/get_adapter.rb +3 -0
  154. data/lib/rhoconnect/api/source/get_db_doc.rb +7 -0
  155. data/lib/rhoconnect/api/source/get_source_params.rb +3 -0
  156. data/lib/rhoconnect/api/source/list_source_docs.rb +10 -0
  157. data/lib/rhoconnect/api/source/list_sources.rb +15 -0
  158. data/lib/rhoconnect/api/source/push_deletes.rb +8 -0
  159. data/lib/rhoconnect/api/source/push_objects.rb +8 -0
  160. data/lib/rhoconnect/api/source/save_adapter.rb +3 -0
  161. data/lib/rhoconnect/api/source/set_db_doc.rb +8 -0
  162. data/lib/rhoconnect/api/source/set_refresh_time.rb +8 -0
  163. data/lib/rhoconnect/api/source/upload_file.rb +4 -0
  164. data/lib/rhoconnect/api/user/create_user.rb +7 -0
  165. data/lib/rhoconnect/api/user/delete_user.rb +9 -0
  166. data/lib/rhoconnect/api/user/list_users.rb +3 -0
  167. data/lib/rhoconnect/api/user/update_user.rb +4 -0
  168. data/lib/rhoconnect/api_token.rb +19 -0
  169. data/lib/rhoconnect/app.rb +76 -0
  170. data/lib/rhoconnect/bulk_data/bulk_data.rb +88 -0
  171. data/lib/rhoconnect/bulk_data/syncdb.index.schema +4 -0
  172. data/lib/rhoconnect/bulk_data/syncdb.schema +41 -0
  173. data/lib/rhoconnect/bulk_data.rb +2 -0
  174. data/lib/rhoconnect/client.rb +96 -0
  175. data/lib/rhoconnect/client_sync.rb +412 -0
  176. data/lib/rhoconnect/console/app/helpers/auth_helper.rb +22 -0
  177. data/lib/rhoconnect/console/app/helpers/extensions.rb +19 -0
  178. data/lib/rhoconnect/console/app/helpers/helpers.rb +57 -0
  179. data/lib/rhoconnect/console/app/public/ThickBox.css +649 -0
  180. data/lib/rhoconnect/console/app/public/home.css +438 -0
  181. data/lib/rhoconnect/console/app/public/images/foot_logo_rhoconnect.png +0 -0
  182. data/lib/rhoconnect/console/app/public/images/header_halo.jpg +0 -0
  183. data/lib/rhoconnect/console/app/public/images/land_separator.gif +0 -0
  184. data/lib/rhoconnect/console/app/public/images/landing_header.jpg +0 -0
  185. data/lib/rhoconnect/console/app/public/images/logo_rhoconnect.png +0 -0
  186. data/lib/rhoconnect/console/app/public/images/rhomobile_rhohub_logo.png +0 -0
  187. data/lib/rhoconnect/console/app/public/images/tabs_separator.png +0 -0
  188. data/lib/rhoconnect/console/app/public/jqplot/excanvas.min.js +35 -0
  189. data/lib/rhoconnect/console/app/public/jqplot/jqplot.barRenderer.min.js +34 -0
  190. data/lib/rhoconnect/console/app/public/jqplot/jqplot.canvasAxisLabelRenderer.js +187 -0
  191. data/lib/rhoconnect/console/app/public/jqplot/jqplot.canvasAxisTickRenderer.js +226 -0
  192. data/lib/rhoconnect/console/app/public/jqplot/jqplot.canvasTextRenderer.js +408 -0
  193. data/lib/rhoconnect/console/app/public/jqplot/jqplot.categoryAxisRenderer.min.js +34 -0
  194. data/lib/rhoconnect/console/app/public/jqplot/jqplot.cursor.js +952 -0
  195. data/lib/rhoconnect/console/app/public/jqplot/jqplot.dateAxisRenderer.js +313 -0
  196. data/lib/rhoconnect/console/app/public/jqplot/jqplot.dateAxisRenderer.min.js +34 -0
  197. data/lib/rhoconnect/console/app/public/jqplot/jqplot.pointLabels.min.js +34 -0
  198. data/lib/rhoconnect/console/app/public/jqplot/jquery-1.4.2.min.js +154 -0
  199. data/lib/rhoconnect/console/app/public/jqplot/jquery.jqplot.min.css +1 -0
  200. data/lib/rhoconnect/console/app/public/jqplot/jquery.jqplot.min.js +34 -0
  201. data/lib/rhoconnect/console/app/public/main.css +7 -0
  202. data/lib/rhoconnect/console/app/public/reset.css +76 -0
  203. data/lib/rhoconnect/console/app/public/style.css +2201 -0
  204. data/lib/rhoconnect/console/app/public/text.txt +0 -0
  205. data/lib/rhoconnect/console/app/routes/adapter.rb +28 -0
  206. data/lib/rhoconnect/console/app/routes/auth.rb +29 -0
  207. data/lib/rhoconnect/console/app/routes/client.rb +31 -0
  208. data/lib/rhoconnect/console/app/routes/docs.rb +145 -0
  209. data/lib/rhoconnect/console/app/routes/heroku.rb +19 -0
  210. data/lib/rhoconnect/console/app/routes/home.rb +63 -0
  211. data/lib/rhoconnect/console/app/routes/timing.rb +242 -0
  212. data/lib/rhoconnect/console/app/routes/user.rb +117 -0
  213. data/lib/rhoconnect/console/app/views/adapter.erb +16 -0
  214. data/lib/rhoconnect/console/app/views/client.erb +30 -0
  215. data/lib/rhoconnect/console/app/views/content.erb +14 -0
  216. data/lib/rhoconnect/console/app/views/doc.erb +8 -0
  217. data/lib/rhoconnect/console/app/views/docdata.erb +28 -0
  218. data/lib/rhoconnect/console/app/views/docs.erb +30 -0
  219. data/lib/rhoconnect/console/app/views/edituser.erb +13 -0
  220. data/lib/rhoconnect/console/app/views/headermenu.erb +40 -0
  221. data/lib/rhoconnect/console/app/views/home.erb +24 -0
  222. data/lib/rhoconnect/console/app/views/index.erb +58 -0
  223. data/lib/rhoconnect/console/app/views/jqplot.erb +52 -0
  224. data/lib/rhoconnect/console/app/views/layout.erb +165 -0
  225. data/lib/rhoconnect/console/app/views/login.erb +26 -0
  226. data/lib/rhoconnect/console/app/views/newuser.erb +17 -0
  227. data/lib/rhoconnect/console/app/views/ping.erb +28 -0
  228. data/lib/rhoconnect/console/app/views/result.erb +11 -0
  229. data/lib/rhoconnect/console/app/views/rightboxlinks.erb +15 -0
  230. data/lib/rhoconnect/console/app/views/select_doc.erb +17 -0
  231. data/lib/rhoconnect/console/app/views/upload_doc.erb +23 -0
  232. data/lib/rhoconnect/console/app/views/user.erb +29 -0
  233. data/lib/rhoconnect/console/app/views/users.erb +12 -0
  234. data/lib/rhoconnect/console/rhoconnect_api.rb +245 -0
  235. data/lib/rhoconnect/console/server.rb +32 -0
  236. data/lib/rhoconnect/console.rb +3 -0
  237. data/lib/rhoconnect/cors.rb +229 -0
  238. data/lib/rhoconnect/credential.rb +9 -0
  239. data/lib/rhoconnect/db_adapter.rb +46 -0
  240. data/lib/rhoconnect/document.rb +49 -0
  241. data/lib/rhoconnect/dynamic_adapter.rb +91 -0
  242. data/lib/rhoconnect/generator.rb +1 -0
  243. data/lib/rhoconnect/jobs/bulk_data_job.rb +203 -0
  244. data/lib/rhoconnect/jobs/ping_job.rb +46 -0
  245. data/lib/rhoconnect/jobs/source_job.rb +16 -0
  246. data/lib/rhoconnect/license.rb +86 -0
  247. data/lib/rhoconnect/lock_ops.rb +11 -0
  248. data/lib/rhoconnect/model.rb +414 -0
  249. data/lib/rhoconnect/ping/android.rb +56 -0
  250. data/lib/rhoconnect/ping/apple.rb +52 -0
  251. data/lib/rhoconnect/ping/blackberry.rb +56 -0
  252. data/lib/rhoconnect/ping.rb +3 -0
  253. data/lib/rhoconnect/read_state.rb +31 -0
  254. data/lib/rhoconnect/rho_indifferent_access.rb +88 -0
  255. data/lib/rhoconnect/server/views/index.erb +13 -0
  256. data/lib/rhoconnect/server.rb +286 -0
  257. data/lib/rhoconnect/source.rb +289 -0
  258. data/lib/rhoconnect/source_adapter.rb +123 -0
  259. data/lib/rhoconnect/source_sync.rb +302 -0
  260. data/lib/rhoconnect/stats/middleware.rb +20 -0
  261. data/lib/rhoconnect/stats/record.rb +108 -0
  262. data/lib/rhoconnect/store.rb +232 -0
  263. data/lib/rhoconnect/tasks.rb +350 -0
  264. data/lib/rhoconnect/test_methods.rb +220 -0
  265. data/lib/rhoconnect/user.rb +95 -0
  266. data/lib/rhoconnect/version.rb +3 -0
  267. data/lib/rhoconnect/x_domain_session_wrapper.rb +53 -0
  268. data/lib/rhoconnect.rb +285 -0
  269. data/rhoconnect.gemspec +67 -0
  270. data/spec/api/admin/api_token_spec.rb +14 -0
  271. data/spec/api/admin/get_api_token_spec.rb +36 -0
  272. data/spec/api/admin/get_license_info_spec.rb +38 -0
  273. data/spec/api/admin/reset_spec.rb +22 -0
  274. data/spec/api/admin/stats_spec.rb +66 -0
  275. data/spec/api/api_helper.rb +21 -0
  276. data/spec/api/application/rhoconnect_api_spec.rb +548 -0
  277. data/spec/api/client/create_client_spec.rb +13 -0
  278. data/spec/api/client/delete_client_spec.rb +13 -0
  279. data/spec/api/client/get_client_params_spec.rb +18 -0
  280. data/spec/api/client/list_client_docs_spec.rb +32 -0
  281. data/spec/api/client/list_clients_spec.rb +22 -0
  282. data/spec/api/client/ping_spec.rb +23 -0
  283. data/spec/api/rhosync_api_spec.rb.orig +606 -0
  284. data/spec/api/source/adapter_spec.rb +29 -0
  285. data/spec/api/source/get_db_doc_spec.rb +21 -0
  286. data/spec/api/source/get_source_params_spec.rb +32 -0
  287. data/spec/api/source/list_source_docs_spec.rb +25 -0
  288. data/spec/api/source/list_sources_spec.rb +26 -0
  289. data/spec/api/source/push_deletes_spec.rb +18 -0
  290. data/spec/api/source/push_objects_spec.rb +27 -0
  291. data/spec/api/source/set_db_doc_spec.rb +19 -0
  292. data/spec/api/source/set_refresh_time_spec.rb +43 -0
  293. data/spec/api/source/upload_file_spec.rb +26 -0
  294. data/spec/api/user/create_user_spec.rb +16 -0
  295. data/spec/api/user/delete_user_spec.rb +36 -0
  296. data/spec/api/user/list_users_spec.rb +30 -0
  297. data/spec/api/user/update_user_spec.rb +31 -0
  298. data/spec/api_token_spec.rb +14 -0
  299. data/spec/app_spec.rb +18 -0
  300. data/spec/apps/emptyapp/application.rb +27 -0
  301. data/spec/apps/emptyapp/settings/license.key +1 -0
  302. data/spec/apps/emptyapp/settings/settings.yml +14 -0
  303. data/spec/apps/rhotestapp/Rakefile +1 -0
  304. data/spec/apps/rhotestapp/application.rb +19 -0
  305. data/spec/apps/rhotestapp/config.ru +1 -0
  306. data/spec/apps/rhotestapp/settings/apple_fake_cert.pem +1 -0
  307. data/spec/apps/rhotestapp/settings/license.key +1 -0
  308. data/spec/apps/rhotestapp/settings/settings.yml +36 -0
  309. data/spec/apps/rhotestapp/sources/base_adapter.rb +9 -0
  310. data/spec/apps/rhotestapp/sources/fixed_schema_adapter.rb +28 -0
  311. data/spec/apps/rhotestapp/sources/sample_adapter.rb +71 -0
  312. data/spec/apps/rhotestapp/sources/simple_adapter.rb +41 -0
  313. data/spec/apps/rhotestapp/sources/sub_adapter.rb +7 -0
  314. data/spec/apps/rhotestapp/vendor/mygem-0.1.0/lib/mygem/mygem.rb +8 -0
  315. data/spec/apps/rhotestapp/vendor/mygem-0.1.0/lib/mygem.rb +1 -0
  316. data/spec/bulk_data/bulk_data_spec.rb +97 -0
  317. data/spec/client_spec.rb +124 -0
  318. data/spec/client_sync_spec.rb +774 -0
  319. data/spec/doc/base.html +72 -0
  320. data/spec/doc/doc_spec.rb +376 -0
  321. data/spec/doc/footer.html +4 -0
  322. data/spec/doc/header.html +30 -0
  323. data/spec/document_spec.rb +31 -0
  324. data/spec/dynamic_adapter_spec.rb +43 -0
  325. data/spec/factories/factories.rb +17 -0
  326. data/spec/generator/generator_spec.rb +58 -0
  327. data/spec/generator/generator_spec_helper.rb +9 -0
  328. data/spec/jobs/bulk_data_job_spec.rb +125 -0
  329. data/spec/jobs/ping_job_spec.rb +102 -0
  330. data/spec/jobs/source_job_spec.rb +29 -0
  331. data/spec/license_spec.rb +66 -0
  332. data/spec/model_spec.rb +273 -0
  333. data/spec/perf/bulk_data_perf_spec.rb +32 -0
  334. data/spec/perf/perf_spec_helper.rb +50 -0
  335. data/spec/perf/store_perf_spec.rb +27 -0
  336. data/spec/ping/android_spec.rb +91 -0
  337. data/spec/ping/apple_spec.rb +70 -0
  338. data/spec/ping/blackberry_spec.rb +62 -0
  339. data/spec/read_state_spec.rb +35 -0
  340. data/spec/rhosync_spec.rb +75 -0
  341. data/spec/server/cors_spec.rb +287 -0
  342. data/spec/server/server_spec.rb +470 -0
  343. data/spec/server/x_domain_session_wrapper_spec.rb +150 -0
  344. data/spec/source_adapter_spec.rb +125 -0
  345. data/spec/source_spec.rb +114 -0
  346. data/spec/source_sync_spec.rb +328 -0
  347. data/spec/spec.opts +4 -0
  348. data/spec/spec_helper.rb +231 -0
  349. data/spec/stats/middleware_spec.rb +53 -0
  350. data/spec/stats/record_spec.rb +92 -0
  351. data/spec/store_spec.rb +251 -0
  352. data/spec/support/shared_examples.rb +168 -0
  353. data/spec/sync_states_spec.rb +72 -0
  354. data/spec/test_methods_spec.rb +134 -0
  355. data/spec/testdata/1000-data.txt +1414 -0
  356. data/spec/testdata/compressed/compress-data.txt +1 -0
  357. data/spec/testdata/upload1.txt +1 -0
  358. data/spec/testdata/upload2.txt +1 -0
  359. data/spec/user_spec.rb +139 -0
  360. data/tasks/redis.rake +206 -0
  361. metadata +706 -0
@@ -0,0 +1,649 @@
1
+ /* ----------------------------------------------------------------------------------------------------------------*/
2
+ /* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/
3
+ /* ----------------------------------------------------------------------------------------------------------------*/
4
+ *{padding: 0; margin: 0;}
5
+
6
+ /* ----------------------------------------------------------------------------------------------------------------*/
7
+ /* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/
8
+ /* ----------------------------------------------------------------------------------------------------------------*/
9
+ #TB_window {
10
+ font: 12px Arial, Helvetica, sans-serif;
11
+ color: #333333;
12
+ }
13
+
14
+ #TB_secondLine {
15
+ font: 10px Arial, Helvetica, sans-serif;
16
+ color:#666666;
17
+ }
18
+
19
+ #TB_window a.linking, #TB_window a.linking:link, #TB_window a.linking:visited{
20
+ color:#88A93B;
21
+ font-weight:bold;
22
+ text-decoration:none;
23
+ }
24
+ #TB_window a.linking:hover{
25
+ text-decoration:underline;
26
+ }
27
+ #TB_closeWindowButton, .heroku_logs_refresh{
28
+ color:#525252;
29
+ font-weight:bold;
30
+ text-decoration:underline;
31
+ }
32
+ /* ----------------------------------------------------------------------------------------------------------------*/
33
+ /* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/
34
+ /* ----------------------------------------------------------------------------------------------------------------*/
35
+ #TB_overlay {
36
+ background:none repeat scroll 0 0 black;
37
+ height:100%;
38
+ left:0;
39
+ filter:alpha(opacity=75);
40
+ -moz-opacity: 0.75;
41
+ opacity: 0.75;
42
+ position:fixed;
43
+ top:0;
44
+ width:100%;
45
+ z-index:100;
46
+ }
47
+
48
+ .TB_overlayMacFFBGHack {background: url(macFFBgHack.png) repeat;}
49
+ .TB_overlayBG {
50
+ background-color:#000;
51
+ filter:alpha(opacity=75);
52
+ -moz-opacity: 0.75;
53
+ opacity: 0.75;
54
+ }
55
+
56
+ * html #TB_overlay { /* ie6 hack */
57
+ position: absolute;
58
+ height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
59
+ }
60
+
61
+ #TB_window {
62
+ position: fixed;
63
+ background: #ffffff;
64
+ z-index: 102;
65
+ color:#000000;
66
+ display:none;
67
+ border: 7px solid #525252;
68
+ text-align:left;
69
+ top:40%;
70
+ left:50%;
71
+ }
72
+
73
+ * html #TB_window { /* ie6 hack */
74
+ position: absolute;
75
+ margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
76
+ }
77
+
78
+ #TB_window img#TB_Image {
79
+ display:block;
80
+ margin: 15px 0 0 15px;
81
+ border-right: 1px solid #ccc;
82
+ border-bottom: 1px solid #ccc;
83
+ border-top: 1px solid #666;
84
+ border-left: 1px solid #666;
85
+ }
86
+
87
+ #TB_caption{
88
+ height:25px;
89
+ padding:7px 30px 10px 25px;
90
+ float:left;
91
+ }
92
+
93
+ #TB_closeWindow{
94
+ height:25px;
95
+ padding:11px 25px 10px 0;
96
+ float:right;
97
+ }
98
+
99
+ #TB_closeAjaxWindow{
100
+ padding:7px 10px 5px 0;
101
+ margin-bottom:1px;
102
+ text-align:right;
103
+ float:right;
104
+ }
105
+
106
+ #TB_ajaxWindowTitle{
107
+ float:left;
108
+ font-size:14px;
109
+ font-weight:bold;
110
+ margin-bottom:1px;
111
+ padding:10px 0 0 15px;
112
+ }
113
+
114
+ #TB_title{
115
+ background-color:#E8E8E8;
116
+ height:40px;
117
+ }
118
+
119
+ #TB_ajaxContent{
120
+ clear:both;
121
+ padding:2px 15px 15px 15px;
122
+ overflow:auto;
123
+ text-align:left;
124
+ line-height:1.4em;
125
+ }
126
+
127
+ #TB_ajaxContent h3{
128
+ font-size:12px;
129
+ margin:10px 0;
130
+ }
131
+ #TB_ajaxContent h3 span{
132
+ color:#003867;
133
+ font-size:18px;
134
+ }
135
+
136
+ #TB_ajaxContent.TB_modal{
137
+ padding:15px;
138
+ }
139
+
140
+ #TB_ajaxContent p{
141
+ padding:5px 0px 5px 0px;
142
+ }
143
+
144
+ #TB_load{
145
+ position: fixed;
146
+ display:none;
147
+ height:13px;
148
+ width:208px;
149
+ z-index:103;
150
+ top: 50%;
151
+ left: 50%;
152
+ margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
153
+ }
154
+
155
+ * html #TB_load { /* ie6 hack */
156
+ position: absolute;
157
+ margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
158
+ }
159
+
160
+ #TB_HideSelect{
161
+ z-index:99;
162
+ position:fixed;
163
+ top: 0;
164
+ left: 0;
165
+ background-color:#fff;
166
+ border:none;
167
+ filter:alpha(opacity=0);
168
+ -moz-opacity: 0;
169
+ opacity: 0;
170
+ height:100%;
171
+ width:100%;
172
+ }
173
+
174
+ * html #TB_HideSelect { /* ie6 hack */
175
+ position: absolute;
176
+ height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
177
+ }
178
+
179
+ #TB_iframeContent{
180
+ clear:both;
181
+ border:none;
182
+ margin-bottom:-1px;
183
+ margin-top:1px;
184
+ _margin-bottom:1px;
185
+ }
186
+ #TB_iframeContent body{
187
+ font-size:12px;
188
+ font-family:Arial, Helvetica, sans-serif;
189
+ }
190
+ /* ----------------------------------------------------------------------------------------------------------------*/
191
+ /* ---------->>> Form <<<-----------------------------------------------------------------------------*/
192
+ /* ----------------------------------------------------------------------------------------------------------------*/
193
+ h2{
194
+ font-size:14px;
195
+ margin-bottom:5px;
196
+ margin-top:10px;
197
+ }
198
+
199
+ .clear{
200
+ display:block;
201
+ clear:both;
202
+ }
203
+ label{
204
+ font-weight:bold;
205
+ color:#454555;
206
+ }
207
+
208
+ .col_container{
209
+ float:left;
210
+ margin-bottom:10px;
211
+ width:100%;
212
+ }
213
+
214
+ .left_long {
215
+ float:left;
216
+ margin-right:10px;
217
+ width:55.5%;
218
+ }
219
+ .left_tiny{
220
+ float:left;
221
+ margin-right:15px;
222
+ width:19.5%;
223
+ }
224
+
225
+ .left_short{
226
+ float:left;
227
+ margin-right:10px;
228
+ width:25%;
229
+ }
230
+ .left{
231
+ float:left;
232
+ margin-right:10px;
233
+ width:46%;
234
+ }
235
+ .modal_hr{
236
+ margin-top:5px;
237
+ }
238
+ .private_app{
239
+ background-color:#FFFCCC;
240
+ border:1px solid #DEDEDE;
241
+ color:#454555;
242
+ float:left;
243
+ font-size:11px;
244
+ margin-top:10px;
245
+ padding:5px 15px;
246
+ width:96%;
247
+ }
248
+
249
+ .info_table{
250
+ -moz-border-radius:10px;
251
+ -webkit-border-radius:10px;
252
+ background-color:#FFFFC2;
253
+ border-top:1px solid white;
254
+ margin-top:10px;
255
+ padding:15px;
256
+ width:94%;
257
+ }
258
+
259
+ .tint {
260
+ color:#666666;
261
+ display:inline-block;
262
+ margin-top:10px;
263
+ }
264
+
265
+
266
+ .information {
267
+ background-color:#FFFCCC;
268
+ border:1px solid #DEDEDE;
269
+ color:#003867;
270
+ float:left;
271
+ font-size:14px;
272
+ font-weight:bold;
273
+ margin-bottom:18px;
274
+ margin-top:10px;
275
+ padding:8px;
276
+ width:96%;
277
+ }
278
+
279
+ .information_pay{
280
+ background-color:#FFFCCC;
281
+ border:1px solid #DEDEDE;
282
+ color:#003867;
283
+ float:left;
284
+ font-size:12px;
285
+ font-weight:bold;
286
+ margin-bottom:18px;
287
+ margin-top:10px;
288
+ padding:3px;
289
+ width:96%;
290
+ }
291
+
292
+ #app_type{
293
+ margin-left:15px;
294
+ margin-top:10px;
295
+ }
296
+
297
+ .small_desc{
298
+ font-size:11px;
299
+ font-style:italic;
300
+ }
301
+
302
+ .modal_input {
303
+ border:1px solid #CCCCCC;
304
+ color:#454555;
305
+ display:block;
306
+ height:28px;
307
+ padding-left:5px;
308
+ width:96%;
309
+ font-size:13px;
310
+ }
311
+
312
+ .modal_input_select{
313
+ border:1px solid #CCCCCC;
314
+ color:#454555;
315
+ display:block;
316
+ height:28px;
317
+ padding:5px;
318
+ width:96%;
319
+ font-size:13px;
320
+ }
321
+
322
+ .modal_input_select_short{
323
+ border:1px solid #CCCCCC;
324
+ color:#454555;
325
+ display:inline;
326
+ font-size:13px;
327
+ height:30px;
328
+ padding:5px;
329
+ }
330
+ .modal_input_select_small {
331
+ border:1px solid #CCCCCC;
332
+ color:#454555;
333
+ display:inline-block;
334
+ float:right;
335
+ font-size:12px;
336
+ height:25px;
337
+ margin-top:5px;
338
+ padding:4px;
339
+ width:100px;
340
+ }
341
+ .modal_input_short_li{
342
+ background:none repeat scroll 0 0 white;
343
+ border:1px solid #CCCCCC;
344
+ color:#454555;
345
+ display:inline-block;
346
+ float:right;
347
+ font-size:13px;
348
+ height:25px;
349
+ margin-top:5px;
350
+ padding-left:6px;
351
+ width:92px;
352
+ }
353
+ .modal_input_short {
354
+ border:1px solid #CCCCCC;
355
+ color:#454555;
356
+ display:block;
357
+ height:28px;
358
+ padding-left:5px;
359
+ width:56%;
360
+ float:left;
361
+ font-size:13px;
362
+ }
363
+ .modal_area {
364
+ border:1px solid #CCCCCC;
365
+ color:#454555;
366
+ display:block;
367
+ font-size:12px;
368
+ height:80px;
369
+ padding-left:5px;
370
+ padding-top:5px;
371
+ width:96%;
372
+ }
373
+
374
+ .update_app:hover{
375
+ background-position:left bottom;
376
+ }
377
+ .update_app {
378
+ background:url("../images/update_app.png") no-repeat scroll left top transparent;
379
+ border:medium none;
380
+ cursor:pointer;
381
+ display:block;
382
+ height:31px;
383
+ margin-bottom:5px;
384
+ margin-top:5px;
385
+ width:173px;
386
+ }
387
+
388
+ ul.ssh_tabs li.collaborator {
389
+ height:35px;
390
+ padding-left:0;
391
+ }
392
+ ul.ssh_tabs li a.delete_my_app{
393
+ margin-left:30px;
394
+ margin-top:6px;
395
+ }
396
+ ul.ssh_tabs li span{
397
+ display:inline-block;
398
+ float:left;
399
+ padding-left:10px;
400
+ padding-top:5px;
401
+ }
402
+ .gravatar_box_small_modal {
403
+ background-image:url("../images/small_avatar.jpg");
404
+ border:1px solid #A4A4A6;
405
+ display:inline-block;
406
+ float:left;
407
+ height:25px;
408
+ margin-left:10px;
409
+ margin-top:4px;
410
+ width:25px;
411
+ }
412
+
413
+ .app_private:hover{
414
+ background-position:left bottom;
415
+ }
416
+ .app_private{
417
+ background:url("../images/app_private.png") no-repeat scroll left top transparent;
418
+ display:block;
419
+ float:right;
420
+ height:16px;
421
+ margin-top:-2px;
422
+ margin-right:3px;
423
+ width:16px;
424
+ }
425
+
426
+ #new_deploy{
427
+ float:left;
428
+ margin-right:15px;
429
+ }
430
+
431
+ .deploy:hover{
432
+ background-position:left bottom;
433
+ }
434
+ .deploy{
435
+ background:url("../images/deploy.png") no-repeat scroll left top transparent;
436
+ border:medium none;
437
+ cursor:pointer;
438
+ display:block;
439
+ height:31px;
440
+ margin-bottom:15px;
441
+ margin-top:15px;
442
+ width:173px;
443
+ }
444
+
445
+ .deploy_block{
446
+ background:url("../images/deploy.png") no-repeat scroll left top transparent;
447
+ border:medium none;
448
+ cursor:default;
449
+ display:block;
450
+ height:31px;
451
+ margin-bottom:15px;
452
+ margin-top:15px;
453
+ opacity:0.5;
454
+ width:173px;
455
+ }
456
+ .undeploy_block{
457
+ background:url("../images/undeploy.png") no-repeat scroll left top transparent;
458
+ border:medium none;
459
+ cursor:default;
460
+ display:block;
461
+ height:31px;
462
+ float:left;
463
+ margin-bottom:15px;
464
+ margin-top:15px;
465
+ opacity:0.5;
466
+ width:173px;
467
+ }
468
+ .undeploy:hover{
469
+ background-position:left bottom;
470
+ }
471
+ .undeploy{
472
+ background:url("../images/undeploy.png") no-repeat scroll left top transparent;
473
+ border:medium none;
474
+ cursor:pointer;
475
+ display:block;
476
+ height:31px;
477
+ float:left;
478
+ margin-bottom:15px;
479
+ margin-top:15px;
480
+ width:173px;
481
+ }
482
+
483
+ .app_public:hover{
484
+ background-position:left bottom;
485
+ }
486
+ .app_public{
487
+ background:url("../images/app_public.png") no-repeat scroll left top transparent;
488
+ display:block;
489
+ float:right;
490
+ height:16px;
491
+ margin-right:3px;
492
+ margin-top:-2px;
493
+ width:16px;
494
+ }
495
+ .app_public_empty{
496
+ display:block;
497
+ float:right;
498
+ height:16px;
499
+ margin-right:3px;
500
+ margin-top:-2px;
501
+ width:16px;
502
+ }
503
+ .download_build:hover{
504
+ background-position:left bottom;
505
+ }
506
+ .download_build{
507
+ background:url("../images/download_build.png") no-repeat scroll left top transparent;
508
+ display:block;
509
+ height:22px;
510
+ width:24px;
511
+ }
512
+
513
+ .download_build_log:hover{
514
+ background-position:left bottom;
515
+ }
516
+
517
+ .download_build_log{
518
+ background:url("../images/download_build_log.png") no-repeat scroll left top transparent;
519
+ display:block;
520
+ height:22px;
521
+ width:24px;
522
+ }
523
+
524
+ #upgrade_my_plan:hover{
525
+ background-position:left bottom;
526
+ }
527
+ #upgrade_my_plan{
528
+ background:url("../images/upgrade_my_plan.png") no-repeat scroll left top transparent;
529
+ border:medium none;
530
+ cursor:pointer;
531
+ display:block;
532
+ height:24px;
533
+ margin-top:20px;
534
+ width:148px;
535
+ }
536
+
537
+ .heroku_logs{
538
+ border:1px solid #CCCCCC;
539
+ color:#454555;
540
+ display:block;
541
+ font-size:12px;
542
+ height:290px;
543
+ margin-bottom:10px;
544
+ margin-top:15px;
545
+ padding-left:5px;
546
+ padding-top:5px;
547
+ width:99%;
548
+ }
549
+
550
+
551
+ #downgrade_my_plan:hover{
552
+ background-position:left bottom;
553
+ }
554
+ #downgrade_my_plan{
555
+ background:url("../images/downgrade_my_plan.png") no-repeat scroll left top transparent;
556
+ border:medium none;
557
+ cursor:pointer;
558
+ display:block;
559
+ height:24px;
560
+ margin-top:20px;
561
+ width:148px;
562
+ }
563
+ /*************************************************************************/
564
+ /*************************************************************************/
565
+ #modal_table{
566
+ border-collapse:collapse;
567
+ margin:10px 0 0;
568
+ width:100%;
569
+ }
570
+ #modal_table th{
571
+ background:none repeat scroll 0 0 #DDDDDD;
572
+ color:#003867;
573
+ font-size:12px;
574
+ padding:10px 5px 10px 10px;
575
+ text-align:left;
576
+ }
577
+ #modal_table tr{
578
+ border-bottom:1px solid #DDDDDD;
579
+ font-size:11px;
580
+ }
581
+
582
+ #modal_table tr.light:hover, #modal_table tr.dark:hover, #modal_table tr:hover{
583
+ background: #F5FFDF;
584
+ }
585
+ #modal_table tr.light{
586
+ background:none repeat scroll 0 0 #FFFFFF;
587
+ font-size:15px;
588
+ font-weight:bold;
589
+ }
590
+ #modal_table tr.not_light{
591
+ font-size:15px;
592
+ font-weight:bold;
593
+ }
594
+ #modal_table tr.dark{
595
+ background: #F9F9F9;
596
+ }
597
+ #modal_table td{
598
+ line-height:10px;
599
+ padding:5px 5px 5px 10px;
600
+ }
601
+ #modal_table td a{
602
+ color:#2C0000;
603
+ }
604
+
605
+ .send_request:hover{
606
+ background-position:left bottom;
607
+ }
608
+ .send_request{
609
+ background:url("../images/send.png") no-repeat scroll left top transparent;
610
+ border:medium none;
611
+ cursor:pointer;
612
+ display:block;
613
+ height:24px;
614
+ margin-top:20px;
615
+ width:108px;
616
+ }
617
+
618
+ #help_container{
619
+ background-color:#F9F9F7;
620
+ border:1px solid #DEDEDE;
621
+ margin-bottom:10px;
622
+ margin-top:10px;
623
+ padding:20px;
624
+ }
625
+ #help_container .exit{
626
+ -moz-border-radius:6px;
627
+ -webkit-border-radius:6px;
628
+ background:none repeat scroll 0 0 #FFFFFF;
629
+ border:1px solid #CCCCCC;
630
+ color:#666666;
631
+ cursor:pointer;
632
+ float:right;
633
+ font-size:11px;
634
+ margin-right:-13px;
635
+ margin-top:-13px;
636
+ padding:1px 7px;
637
+ text-decoration:none;
638
+ }
639
+ #help_container .exit:hover{
640
+ background:none repeat scroll 0 0 #ECECEC;
641
+ }
642
+ #help_container ol{
643
+ margin-left:20px;
644
+ margin-top:-5px;
645
+ padding-bottom:10px;
646
+ }
647
+ #help_container ol li{
648
+
649
+ }