rsence 2.0.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (311) hide show
  1. data/INSTALL.rdoc +295 -0
  2. data/LICENSE +622 -0
  3. data/README.rdoc +24 -0
  4. data/VERSION +1 -0
  5. data/bin/build_client.rb +254 -0
  6. data/bin/help +6 -0
  7. data/bin/launch.rb +120 -0
  8. data/bin/rdoc.sh +2 -0
  9. data/bin/restart +6 -0
  10. data/bin/rsence +120 -0
  11. data/bin/run +6 -0
  12. data/bin/run.rb +6 -0
  13. data/bin/save +6 -0
  14. data/bin/start +6 -0
  15. data/bin/status +6 -0
  16. data/bin/stop +6 -0
  17. data/conf/config.ru +5 -0
  18. data/conf/default_conf.yaml +337 -0
  19. data/conf/default_strings.yaml +77 -0
  20. data/conf/local_conf.yaml +14 -0
  21. data/conf/unicorn.conf +78 -0
  22. data/js/comm/comm/autosync/autosync.js +18 -0
  23. data/js/comm/comm/autosync/js.inc +0 -0
  24. data/js/comm/comm/comm.js +195 -0
  25. data/js/comm/comm/js.inc +0 -0
  26. data/js/comm/comm/queue/js.inc +0 -0
  27. data/js/comm/comm/queue/queue.js +183 -0
  28. data/js/comm/comm/session/js.inc +0 -0
  29. data/js/comm/comm/session/session.js +51 -0
  30. data/js/comm/comm/sessionwatcher/js.inc +0 -0
  31. data/js/comm/comm/sessionwatcher/sessionwatcher.js +43 -0
  32. data/js/comm/comm/transporter/js.inc +0 -0
  33. data/js/comm/comm/transporter/transporter.js +257 -0
  34. data/js/comm/comm/urlresponder/js.inc +0 -0
  35. data/js/comm/comm/urlresponder/urlresponder.js +148 -0
  36. data/js/comm/comm/values/js.inc +0 -0
  37. data/js/comm/comm/values/values.js +432 -0
  38. data/js/comm/jsloader/js.inc +0 -0
  39. data/js/comm/jsloader/jsloader.js +114 -0
  40. data/js/comm/reloadapp/js.inc +0 -0
  41. data/js/comm/reloadapp/reloadapp.js +150 -0
  42. data/js/comm/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
  43. data/js/comm/reloadapp/themes/default/reloadapp_warning.png +0 -0
  44. data/js/comm/sha/js.inc +0 -0
  45. data/js/comm/sha/sha.js +432 -0
  46. data/js/comm/values/value/js.inc +0 -0
  47. data/js/comm/values/value/value.js +182 -0
  48. data/js/comm/values/valuematrix/js.inc +0 -0
  49. data/js/comm/values/valuematrix/valuematrix.js +138 -0
  50. data/js/controls/button/button.js +57 -0
  51. data/js/controls/button/js.inc +0 -0
  52. data/js/controls/button/themes/bright/button.css +89 -0
  53. data/js/controls/button/themes/bright/button.html +7 -0
  54. data/js/controls/button/themes/bright/button_parts1-ie6.gif +0 -0
  55. data/js/controls/button/themes/bright/button_parts1.png +0 -0
  56. data/js/controls/button/themes/default/button.css +89 -0
  57. data/js/controls/button/themes/default/button.html +7 -0
  58. data/js/controls/button/themes/default/button_parts1-ie6.gif +0 -0
  59. data/js/controls/button/themes/default/button_parts1.png +0 -0
  60. data/js/controls/checkbox/checkbox.js +47 -0
  61. data/js/controls/checkbox/js.inc +0 -0
  62. data/js/controls/checkbox/themes/default/checkbox.css +69 -0
  63. data/js/controls/checkbox/themes/default/checkbox.html +5 -0
  64. data/js/controls/checkbox/themes/default/checkbox_parts1-ie6.gif +0 -0
  65. data/js/controls/checkbox/themes/default/checkbox_parts1.png +0 -0
  66. data/js/controls/datetime/calendar/calendar.js +197 -0
  67. data/js/controls/datetime/calendar/js.inc +0 -0
  68. data/js/controls/datetime/calendar/themes/default/calendar.css +108 -0
  69. data/js/controls/datetime/calendar/themes/default/calendar.html +9 -0
  70. data/js/controls/datetime/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
  71. data/js/controls/datetime/calendar/themes/default/calendar_arrows.png +0 -0
  72. data/js/controls/datetime/datetimevalue/datetimevalue.js +246 -0
  73. data/js/controls/datetime/datetimevalue/js.inc +0 -0
  74. data/js/controls/datetime/timesheet/js.inc +0 -0
  75. data/js/controls/datetime/timesheet/themes/default/timesheet.css +30 -0
  76. data/js/controls/datetime/timesheet/themes/default/timesheet.html +2 -0
  77. data/js/controls/datetime/timesheet/timesheet.js +182 -0
  78. data/js/controls/datetime/timesheet_item/js.inc +0 -0
  79. data/js/controls/datetime/timesheet_item/themes/default/timesheet_item.css +42 -0
  80. data/js/controls/datetime/timesheet_item/themes/default/timesheet_item.html +8 -0
  81. data/js/controls/datetime/timesheet_item/timesheet_item.js +247 -0
  82. data/js/controls/datetime/timesheet_item_edit/js.inc +0 -0
  83. data/js/controls/datetime/timesheet_item_edit/timesheet_item_edit.js +274 -0
  84. data/js/controls/dialogs/alert_sheet/alert_sheet.js +62 -0
  85. data/js/controls/dialogs/alert_sheet/js.inc +0 -0
  86. data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +36 -0
  87. data/js/controls/dialogs/confirm_sheet/js.inc +0 -0
  88. data/js/controls/dialogs/sheet/js.inc +0 -0
  89. data/js/controls/dialogs/sheet/sheet.js +83 -0
  90. data/js/controls/dialogs/sheet/themes/default/sheet.css +64 -0
  91. data/js/controls/dialogs/sheet/themes/default/sheet.html +14 -0
  92. data/js/controls/dialogs/sheet/themes/default/sheet_bg-ie6.gif +0 -0
  93. data/js/controls/dialogs/sheet/themes/default/sheet_bg.png +0 -0
  94. data/js/controls/dialogs/sheet/themes/default/sheet_dim-ie6.gif +0 -0
  95. data/js/controls/dialogs/sheet/themes/default/sheet_dim.png +0 -0
  96. data/js/controls/dialogs/sheet/themes/default/sheet_parts1-ie6.gif +0 -0
  97. data/js/controls/dialogs/sheet/themes/default/sheet_parts1.png +0 -0
  98. data/js/controls/dialogs/sheet/themes/default/sheet_parts2-ie6.gif +0 -0
  99. data/js/controls/dialogs/sheet/themes/default/sheet_parts2.png +0 -0
  100. data/js/controls/dialogs/sheet/themes/default/sheet_warning-ie6.gif +0 -0
  101. data/js/controls/dialogs/sheet/themes/default/sheet_warning.png +0 -0
  102. data/js/controls/imageview/imageview.js +108 -0
  103. data/js/controls/imageview/js.inc +0 -0
  104. data/js/controls/imageview/themes/default/blank.gif +0 -0
  105. data/js/controls/lists/checkboxlist/checkboxlist.js +170 -0
  106. data/js/controls/lists/checkboxlist/js.inc +0 -0
  107. data/js/controls/lists/listitems/js.inc +0 -0
  108. data/js/controls/lists/listitems/listitems.js +65 -0
  109. data/js/controls/lists/radiobuttonlist/js.inc +0 -0
  110. data/js/controls/lists/radiobuttonlist/radiobuttonlist.js +126 -0
  111. data/js/controls/passwordcontrol/js.inc +0 -0
  112. data/js/controls/passwordcontrol/passwordcontrol.js +22 -0
  113. data/js/controls/passwordcontrol/themes/default/passwordcontrol.css +0 -0
  114. data/js/controls/passwordcontrol/themes/default/passwordcontrol.html +18 -0
  115. data/js/controls/progress/progressbar/js.inc +0 -0
  116. data/js/controls/progress/progressbar/progressbar.js +36 -0
  117. data/js/controls/progress/progressbar/themes/default/progressbar.css +16 -0
  118. data/js/controls/progress/progressbar/themes/default/progressbar.html +2 -0
  119. data/js/controls/progress/progressindicator/js.inc +0 -0
  120. data/js/controls/progress/progressindicator/progressindicator.js +43 -0
  121. data/js/controls/radiobutton/js.inc +0 -0
  122. data/js/controls/radiobutton/radiobutton.js +41 -0
  123. data/js/controls/radiobutton/themes/default/radiobutton.css +69 -0
  124. data/js/controls/radiobutton/themes/default/radiobutton.html +5 -0
  125. data/js/controls/radiobutton/themes/default/radiobutton_parts1-ie6.gif +0 -0
  126. data/js/controls/radiobutton/themes/default/radiobutton_parts1.png +0 -0
  127. data/js/controls/sliders/slider/js.inc +0 -0
  128. data/js/controls/sliders/slider/slider.js +356 -0
  129. data/js/controls/sliders/slider/themes/default/hslider_tracks-ie6.gif +0 -0
  130. data/js/controls/sliders/slider/themes/default/hslider_tracks.png +0 -0
  131. data/js/controls/sliders/slider/themes/default/slider.css +108 -0
  132. data/js/controls/sliders/slider/themes/default/slider.html +5 -0
  133. data/js/controls/sliders/slider/themes/default/slider_thumbs-ie6.gif +0 -0
  134. data/js/controls/sliders/slider/themes/default/slider_thumbs.png +0 -0
  135. data/js/controls/sliders/vslider/js.inc +0 -0
  136. data/js/controls/sliders/vslider/themes/default/vslider.css +52 -0
  137. data/js/controls/sliders/vslider/themes/default/vslider.html +5 -0
  138. data/js/controls/sliders/vslider/themes/default/vslider_tracks-ie6.gif +0 -0
  139. data/js/controls/sliders/vslider/themes/default/vslider_tracks.png +0 -0
  140. data/js/controls/sliders/vslider/vslider.js +40 -0
  141. data/js/controls/stepper/js.inc +0 -0
  142. data/js/controls/stepper/stepper.js +212 -0
  143. data/js/controls/stepper/themes/default/stepper-ie6.gif +0 -0
  144. data/js/controls/stepper/themes/default/stepper.css +14 -0
  145. data/js/controls/stepper/themes/default/stepper.html +2 -0
  146. data/js/controls/stepper/themes/default/stepper.png +0 -0
  147. data/js/controls/stringview/js.inc +0 -0
  148. data/js/controls/stringview/stringview.js +49 -0
  149. data/js/controls/stringview/themes/default/stringview.css +8 -0
  150. data/js/controls/stringview/themes/default/stringview.html +1 -0
  151. data/js/controls/tab/js.inc +0 -0
  152. data/js/controls/tab/tab.js +276 -0
  153. data/js/controls/tab/themes/bright/tab.css +76 -0
  154. data/js/controls/tab/themes/bright/tab.html +6 -0
  155. data/js/controls/tab/themes/bright/tab_bg_color-ie6.gif +0 -0
  156. data/js/controls/tab/themes/bright/tab_bg_color.png +0 -0
  157. data/js/controls/tab/themes/bright/tab_border_pattern-ie6.gif +0 -0
  158. data/js/controls/tab/themes/bright/tab_border_pattern.png +0 -0
  159. data/js/controls/tab/themes/bright/tab_parts1-ie6.gif +0 -0
  160. data/js/controls/tab/themes/bright/tab_parts1.png +0 -0
  161. data/js/controls/tab/themes/default/tab.css +77 -0
  162. data/js/controls/tab/themes/default/tab.html +6 -0
  163. data/js/controls/tab/themes/default/tab_bg_color-ie6.gif +0 -0
  164. data/js/controls/tab/themes/default/tab_bg_color.png +0 -0
  165. data/js/controls/tab/themes/default/tab_border_pattern-ie6.gif +0 -0
  166. data/js/controls/tab/themes/default/tab_border_pattern.png +0 -0
  167. data/js/controls/tab/themes/default/tab_parts1-ie6.gif +0 -0
  168. data/js/controls/tab/themes/default/tab_parts1.png +0 -0
  169. data/js/controls/textarea/js.inc +0 -0
  170. data/js/controls/textarea/textarea.js +23 -0
  171. data/js/controls/textarea/themes/default/textarea.css +21 -0
  172. data/js/controls/textarea/themes/default/textarea.html +18 -0
  173. data/js/controls/textcontrol/js.inc +0 -0
  174. data/js/controls/textcontrol/textcontrol.js +372 -0
  175. data/js/controls/textcontrol/themes/default/textcontrol.css +107 -0
  176. data/js/controls/textcontrol/themes/default/textcontrol.html +18 -0
  177. data/js/controls/textcontrol/themes/default/textcontrol_parts1-ie6.gif +0 -0
  178. data/js/controls/textcontrol/themes/default/textcontrol_parts1.png +0 -0
  179. data/js/controls/textcontrol/themes/default/textcontrol_parts2-ie6.gif +0 -0
  180. data/js/controls/textcontrol/themes/default/textcontrol_parts2.png +0 -0
  181. data/js/controls/textcontrol/themes/default/textcontrol_parts3-ie6.gif +0 -0
  182. data/js/controls/textcontrol/themes/default/textcontrol_parts3.png +0 -0
  183. data/js/controls/uploader/js.inc +0 -0
  184. data/js/controls/uploader/themes/default/upload_progress.gif +0 -0
  185. data/js/controls/uploader/themes/default/uploader.css +108 -0
  186. data/js/controls/uploader/themes/default/uploader.html +27 -0
  187. data/js/controls/uploader/uploader.js +153 -0
  188. data/js/controls/validatorview/js.inc +0 -0
  189. data/js/controls/validatorview/themes/default/validator-ie6.gif +0 -0
  190. data/js/controls/validatorview/themes/default/validator.png +0 -0
  191. data/js/controls/validatorview/themes/default/validatorview.css +0 -0
  192. data/js/controls/validatorview/themes/default/validatorview.html +0 -0
  193. data/js/controls/validatorview/validatorview.js +55 -0
  194. data/js/controls/window/js.inc +0 -0
  195. data/js/controls/window/themes/default/window.css +219 -0
  196. data/js/controls/window/themes/default/window.html +17 -0
  197. data/js/controls/window/themes/default/window_bg_active-ie6.gif +0 -0
  198. data/js/controls/window/themes/default/window_bg_active.png +0 -0
  199. data/js/controls/window/themes/default/window_bg_inactive-ie6.gif +0 -0
  200. data/js/controls/window/themes/default/window_bg_inactive.png +0 -0
  201. data/js/controls/window/themes/default/window_buttons-ie6.gif +0 -0
  202. data/js/controls/window/themes/default/window_buttons.png +0 -0
  203. data/js/controls/window/themes/default/window_parts1-ie6.gif +0 -0
  204. data/js/controls/window/themes/default/window_parts1.png +0 -0
  205. data/js/controls/window/themes/default/window_parts2-ie6.gif +0 -0
  206. data/js/controls/window/themes/default/window_parts2.png +0 -0
  207. data/js/controls/window/window.js +284 -0
  208. data/js/core/class/class.js +317 -0
  209. data/js/core/class/js.inc +0 -0
  210. data/js/core/elem/elem.js +1376 -0
  211. data/js/core/elem/js.inc +0 -0
  212. data/js/core/event/event.js +1021 -0
  213. data/js/core/event/js.inc +0 -0
  214. data/js/core/iefix/ie_css_element.htc +5 -0
  215. data/js/core/iefix/ie_css_style.htc +5 -0
  216. data/js/core/iefix/iefix.js +359 -0
  217. data/js/core/iefix/js.inc +0 -0
  218. data/js/debugg/debugg.js +43 -0
  219. data/js/debugg/js.inc +0 -0
  220. data/js/foundation/application/application.js +209 -0
  221. data/js/foundation/application/js.inc +0 -0
  222. data/js/foundation/control/control.js +342 -0
  223. data/js/foundation/control/controldefaults/controldefaults.js +59 -0
  224. data/js/foundation/control/controldefaults/js.inc +0 -0
  225. data/js/foundation/control/dummyvalue/dummyvalue.js +50 -0
  226. data/js/foundation/control/dummyvalue/js.inc +0 -0
  227. data/js/foundation/control/dyncontrol/dyncontrol.js +494 -0
  228. data/js/foundation/control/dyncontrol/js.inc +0 -0
  229. data/js/foundation/control/dyncontrol/themes/default/dyncontrol.css +0 -0
  230. data/js/foundation/control/dyncontrol/themes/default/dyncontrol.html +0 -0
  231. data/js/foundation/control/eventresponder/eventresponder.js +713 -0
  232. data/js/foundation/control/eventresponder/js.inc +0 -0
  233. data/js/foundation/control/js.inc +0 -0
  234. data/js/foundation/control/valueresponder/js.inc +0 -0
  235. data/js/foundation/control/valueresponder/valueresponder.js +77 -0
  236. data/js/foundation/geom/point/js.inc +0 -0
  237. data/js/foundation/geom/point/point.js +202 -0
  238. data/js/foundation/geom/rect/js.inc +0 -0
  239. data/js/foundation/geom/rect/rect.js +610 -0
  240. data/js/foundation/json_renderer/js.inc +0 -0
  241. data/js/foundation/json_renderer/json_renderer.js +231 -0
  242. data/js/foundation/system/js.inc +0 -0
  243. data/js/foundation/system/system.js +369 -0
  244. data/js/foundation/thememanager/js.inc +0 -0
  245. data/js/foundation/thememanager/thememanager.js +387 -0
  246. data/js/foundation/view/js.inc +0 -0
  247. data/js/foundation/view/markupview/js.inc +0 -0
  248. data/js/foundation/view/markupview/markupview.js +113 -0
  249. data/js/foundation/view/morphanimation/js.inc +0 -0
  250. data/js/foundation/view/morphanimation/morphanimation.js +236 -0
  251. data/js/foundation/view/view.js +1804 -0
  252. data/js/foundation/view/viewdefaults/js.inc +0 -0
  253. data/js/foundation/view/viewdefaults/viewdefaults.js +25 -0
  254. data/js/views/centerview/centerview.js +45 -0
  255. data/js/views/centerview/js.inc +0 -0
  256. data/js/views/inlineview/inlineview.js +14 -0
  257. data/js/views/inlineview/js.inc +0 -0
  258. data/js/views/scrollview/js.inc +0 -0
  259. data/js/views/scrollview/scrollview.js +39 -0
  260. data/lib/conf/default.rb +220 -0
  261. data/lib/conf/wizard.rb +303 -0
  262. data/lib/daemon/daemon.rb +293 -0
  263. data/lib/http/broker.rb +102 -0
  264. data/lib/http/rackup.rb +88 -0
  265. data/lib/http/request.rb +69 -0
  266. data/lib/http/response.rb +63 -0
  267. data/lib/plugins/gui_plugin.rb +129 -0
  268. data/lib/plugins/guiparser.rb +114 -0
  269. data/lib/plugins/plugin.rb +652 -0
  270. data/lib/plugins/plugin_plugins.rb +47 -0
  271. data/lib/plugins/plugin_sqlite_db.rb +72 -0
  272. data/lib/plugins/plugin_util.rb +96 -0
  273. data/lib/plugins/pluginmanager.rb +517 -0
  274. data/lib/plugins/servlet.rb +69 -0
  275. data/lib/session/msg.rb +291 -0
  276. data/lib/session/sessionmanager.rb +491 -0
  277. data/lib/session/sessionstorage.rb +314 -0
  278. data/lib/transporter/transporter.rb +254 -0
  279. data/lib/util/gzstring.rb +5 -0
  280. data/lib/values/hvalue.rb +323 -0
  281. data/lib/values/valuemanager.rb +152 -0
  282. data/plugins/client_pkg/client_pkg.rb +186 -0
  283. data/plugins/client_pkg/info.yaml +25 -0
  284. data/plugins/client_pkg/lib/client_pkg_build.rb +569 -0
  285. data/plugins/client_pkg/lib/client_pkg_cache.rb +50 -0
  286. data/plugins/client_pkg/lib/client_pkg_serve.rb +210 -0
  287. data/plugins/client_pkg/log/build_log +0 -0
  288. data/plugins/index_html/img/loading.gif +0 -0
  289. data/plugins/index_html/img/riassence.gif +0 -0
  290. data/plugins/index_html/index_html.rb +150 -0
  291. data/plugins/index_html/tmpl/index.html +22 -0
  292. data/plugins/index_html/tmpl/startup_index.html +29 -0
  293. data/plugins/legacy/disabled +0 -0
  294. data/plugins/legacy/disabled- +0 -0
  295. data/plugins/legacy/info.yaml +22 -0
  296. data/plugins/legacy/legacy.rb +15 -0
  297. data/plugins/main/js/riassence_ns.js +87 -0
  298. data/plugins/main/main.rb +234 -0
  299. data/plugins/main/values.yaml +8 -0
  300. data/plugins/ticketservices/lib/common.rb +300 -0
  301. data/plugins/ticketservices/lib/favicon.rb +38 -0
  302. data/plugins/ticketservices/lib/file.rb +58 -0
  303. data/plugins/ticketservices/lib/img.rb +50 -0
  304. data/plugins/ticketservices/lib/objblob.rb +66 -0
  305. data/plugins/ticketservices/lib/rsrc.rb +34 -0
  306. data/plugins/ticketservices/lib/upload.rb +206 -0
  307. data/plugins/ticketservices/ticketservices.rb +268 -0
  308. data/var/db/.git_include +0 -0
  309. data/var/log/.git_include +0 -0
  310. data/var/run/.git_include +0 -0
  311. metadata +390 -0
@@ -0,0 +1,14 @@
1
+ ---
2
+ :plugin_paths:
3
+ - demos
4
+ :http_server:
5
+ :latency: 0
6
+ :rack_handler:
7
+ :rack_require: mongrel
8
+ :bind_address: 0.0.0.0
9
+ :port: 8001
10
+ :database:
11
+ :ses_db: sqlite://var/db/rsence_ses.db
12
+ :client_pkg:
13
+ :no_obfuscation: true
14
+ :no_whitespace_removal: true
data/conf/unicorn.conf ADDED
@@ -0,0 +1,78 @@
1
+ # Sample configuration file for Unicorn (not Rack)
2
+ #
3
+ # See http://unicorn.bogomips.org/Unicorn/Configurator.html for complete
4
+ # documentation.
5
+
6
+ # Use at least one worker per core if you're on a dedicated server,
7
+ # more will usually help for _short_ waits on databases/caches.
8
+ worker_processes 1
9
+
10
+ # Help ensure your application will always spawn in the symlinked
11
+ # "current" directory that Capistrano sets up.
12
+ # working_directory "/path/to/app/current" # available in 0.94.0+
13
+
14
+ # listen on both a Unix domain socket and a TCP port,
15
+ # we use a shorter backlog for quicker failover when busy
16
+ # listen "/tmp/.sock", :backlog => 64
17
+ # listen 8080, :tcp_nopush => true
18
+
19
+ # nuke workers after 30 seconds instead of 60 seconds (the default)
20
+ timeout 9999
21
+
22
+ # feel free to point this anywhere accessible on the filesystem
23
+ #pid "/path/to/app/shared/pids/unicorn.pid"
24
+
25
+ # some applications/frameworks log to stderr or stdout, so prevent
26
+ # them from going to /dev/null when daemonized here:
27
+ #stderr_path "/path/to/app/shared/log/unicorn.stderr.log"
28
+ #stdout_path "/path/to/app/shared/log/unicorn.stdout.log"
29
+
30
+ # combine REE with "preload_app true" for memory savings
31
+ # http://rubyenterpriseedition.com/faq.html#adapt_apps_for_cow
32
+ preload_app true
33
+ GC.respond_to?(:copy_on_write_friendly=) and
34
+ GC.copy_on_write_friendly = true
35
+
36
+ # before_fork do |server, worker|
37
+ # # the following is highly recomended for Rails + "preload_app true"
38
+ # # as there's no need for the master process to hold a connection
39
+ # defined?(ActiveRecord::Base) and
40
+ # ActiveRecord::Base.connection.disconnect!
41
+ #
42
+ # # The following is only recommended for memory/DB-constrained
43
+ # # installations. It is not needed if your system can house
44
+ # # twice as many worker_processes as you have configured.
45
+ # #
46
+ # # # This allows a new master process to incrementally
47
+ # # # phase out the old master process with SIGTTOU to avoid a
48
+ # # # thundering herd (especially in the "preload_app false" case)
49
+ # # # when doing a transparent upgrade. The last worker spawned
50
+ # # # will then kill off the old master process with a SIGQUIT.
51
+ # # old_pid = "#{server.config[:pid]}.oldbin"
52
+ # # if old_pid != server.pid
53
+ # # begin
54
+ # # sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
55
+ # # Process.kill(sig, File.read(old_pid).to_i)
56
+ # # rescue Errno::ENOENT, Errno::ESRCH
57
+ # # end
58
+ # # end
59
+ # #
60
+ # # # *optionally* throttle the master from forking too quickly by sleeping
61
+ # # sleep 1
62
+ # end
63
+ #
64
+ # after_fork do |server, worker|
65
+ # # per-process listener ports for debugging/admin/migrations
66
+ # # addr = "127.0.0.1:#{9293 + worker.nr}"
67
+ # # server.listen(addr, :tries => -1, :delay => 5, :tcp_nopush => true)
68
+ #
69
+ # # the following is *required* for Rails + "preload_app true",
70
+ # defined?(ActiveRecord::Base) and
71
+ # ActiveRecord::Base.establish_connection
72
+ #
73
+ # # if preload_app is true, then you may also want to check and
74
+ # # restart any other shared sockets/descriptors such as Memcached,
75
+ # # and Redis. TokyoCabinet file handles are safe to reuse
76
+ # # between any number of forked children (assuming your kernel
77
+ # # correctly implements pread()/pwrite() system calls)
78
+ # end
@@ -0,0 +1,18 @@
1
+ /* Riassence Framework
2
+ * Copyright 2009 Riassence Inc.
3
+ * http://riassence.com/
4
+ *
5
+ * You should have received a copy of the GNU General Public License along
6
+ * with this software package. If not, contact licensing@riassence.com
7
+ */
8
+
9
+ // Starts the synchronization upon page load.
10
+ LOAD(
11
+ function(){
12
+ COMM.urlResponder=COMM.URLResponder.nu();
13
+ urlResponder=COMM.urlResponder; // backwards compatibility
14
+ COMM.Transporter.url=HCLIENT_HELLO;
15
+ COMM.Transporter.stop=false;
16
+ COMM.Transporter.sync();
17
+ }
18
+ );
File without changes
@@ -0,0 +1,195 @@
1
+ /* Riassence Framework
2
+ * Copyright 2009 Riassence Inc.
3
+ * http://riassence.com/
4
+ *
5
+ * You should have received a copy of the GNU General Public License along
6
+ * with this software package. If not, contact licensing@riassence.com
7
+ */
8
+
9
+
10
+ /*** = Description
11
+ ** XMLHttpRequest abstractor, and handler and utilities.
12
+ ** The only public method is +request+
13
+ ** The namespace also holds the following services:
14
+ **
15
+ ** Service Name:: Service Description
16
+ ** +COMM.Queue+:: Singleton, used for queuing tasks
17
+ ** awaiting asynchronous requests to complete.
18
+ ** +COMM.Session+:: Session key secure hashing service.
19
+ ** +COMM.SessionWatcher+:: Polls server at regular intervals by reporting
20
+ ** the client's local time.
21
+ ** +COMM.Transporter+:: Automated synchronization service, pulls server
22
+ ** data, tasks etc. The main server interface.
23
+ ** +COMM.Values+:: Data value manager, handles synchronized data in
24
+ ** both directions (server-client-server).
25
+ ** +COMM.JSLoader+:: Loads Javascript libraries asynchronously.
26
+ ** +COMM.JSONRenderer+:: Constructs nodes from JSON structures as GUI
27
+ ** tree structures. Lowers the learning curve of GUI
28
+ ** development, because Javascript knowledge is not
29
+ ** required to define user interfaces.
30
+ ** The main purpose is to ease the development of
31
+ ** user interfaces by defining them as data on the
32
+ ** server, converting the data to JSON GUI trees and
33
+ ** letting the client handle the rest. The end result
34
+ ** is the same as defining the structures in
35
+ ** JavaScript code.
36
+ **
37
+ ***/
38
+ COMM = {
39
+
40
+ /** Displays an error alert, if the browser doesn't support XMLHttpRequests
41
+ **/
42
+ _FakeHttpRequest: function(){
43
+ alert("'ERROR: This web browser doesn't support XMLHttpRequest. Please upgrade; unable to continue.");
44
+ },
45
+
46
+ /** = Description
47
+ * Finds and calls the state responder method upon a readyState change to 4.
48
+ * - On readyStates other than 4 does nothing.
49
+ * - The default responder for a successful response code (between 200 to 299) is onSuccess.
50
+ * - The default responder for unsuccessful response codes is onFailure.
51
+ * - The responders are called with the request object as the parameter.
52
+ * - Custom response code handling is implemented as 'on' + status code,
53
+ * eg. 'on404' for a 404 not found error.
54
+ **/
55
+ _stateChange: function(_this){
56
+ if(_this.X.readyState === 4){
57
+ var _status = _this.X.status,
58
+ _responderName = 'on'+_status,
59
+ _success = ((_status >= 200 && _status < 300) || (_status === 0));
60
+ _this[_responderName]?_this[_responderName](_this):_success?_this.onSuccess(_this):_this.onFailure(_this);
61
+ }
62
+ },
63
+
64
+ /** = Description
65
+ * Converts arrays to valid query strings.
66
+ *
67
+ * = Usage
68
+ * Returns 'productId=100&customerName=J-J%20Heinonen'
69
+ * COMM._arrayToQueryString(['productId',100,'customerName','J-J Heinonen'])
70
+ *
71
+ **/
72
+ _arrayToQueryString: function(_params){
73
+ var i = 0,
74
+ _length = _params.length,
75
+ _queryString = '';
76
+ for(;i<_length;i++){
77
+ _queryString += encodeURIComponent(_params[i]);
78
+ _queryString += (i===_length-1)?'':(i%2===0)?'=':'&';
79
+ }
80
+ return _queryString;
81
+ },
82
+
83
+ /** = Description
84
+ * The main Request-handling object. Provides a general and fairly easy to use
85
+ * interface for making "Ajax" requests.
86
+ *
87
+ * = Parameters
88
+ * +_url+:: Full or relative url of the response handler
89
+ * +_options+:: An +Object+, see below for content:
90
+ *
91
+ *
92
+ * == Required properties for +_options+:
93
+ * +onSuccess+:: A function that is called on a successful response.
94
+ * Must accept one parameter: the request object.
95
+ * +onFailure+:: A function that is called on an unsuccessful response.
96
+ * Must accept one parameter: the request object.
97
+ *
98
+ * == Optional properties for +_options+:
99
+ * +method+:: The HTTP Request Method, usually 'POST' or 'GET', but will handle
100
+ * DAV and other extensions if the server supports them.
101
+ * Defaults to 'POST'.
102
+ * +async+:: Boolean; Uses asyncronous requests when true.
103
+ * Defaults to true.
104
+ * +params+:: Extra parameters to send, format: Array, see COMM._arrayToQueryString()
105
+ * +headers+:: Extra HTTP headers to send for POST requests, format: Hash.
106
+ * +body+:: The HTTP POST Body
107
+ * +username+:: Username for basic authentication
108
+ * +password+:: Password for basic authentication
109
+ * +contentType+:: The 'content-type' -header to send.
110
+ * Defaults to 'application/x-www-form-urlencoded'.
111
+ * +charset+:: The charset type to use. Defaults to 'UTF-8'.
112
+ *
113
+ * = Returns
114
+ * An +Object+ extended from the +_options+ given in the input.
115
+ *
116
+ **/
117
+ request: function(_url,_options){
118
+ var _comm = COMM,
119
+
120
+ _this = _options?_options:{},
121
+
122
+ _method = _options.method?_options.method.toUpperCase():'GET',
123
+ _async = (_options.async===undefined)?true:_options.async,
124
+ _params = _options.params?_options.params:[],
125
+ _headers = _options.headers?_options.headers:{},
126
+ _contentType = _options.contentType?_options.contentType:'application/x-www-form-urlencoded',
127
+ _charset = _options.charset?_options.charset:'UTF-8',
128
+ _username = _options.username?_options.username:null,
129
+ _password = _options.username?_options.password:null;
130
+ if(!_options.onFailure){
131
+ _this.onFailure = function(resp){console.log('No failure handler specified, response: ',resp);};
132
+ }
133
+ if(!_options.onSuccess){
134
+ _this.onSuccess = function(resp){console.log('No success handler specified, response: ',resp);};
135
+ }
136
+ _this.url = _url;
137
+ _this.options = _options;
138
+ _this.X = _comm._XMLHttpRequest();
139
+ if(_method === 'GET' && _params.length !== 0){
140
+ _url += ((_url.indexOf('?')!==-1)?'&':'?')+_comm._arrayToQueryString(_params);
141
+ }
142
+ if(!_async){
143
+ console.log("WARNING: Synchronous "+_method+" request to "+_url+", these will fail on the Symbian web browser.");
144
+ }
145
+ _this.X.open(
146
+ _method,
147
+ _url,
148
+ _async,
149
+ _username,
150
+ _password
151
+ );
152
+ _this.X.onreadystatechange = function(){
153
+ _comm._stateChange(_this);
154
+ };
155
+ if(_method === 'POST'){
156
+ _headers['Content-Type'] = _contentType + '; charset=' + _charset;
157
+ var _body = _options.body?_options.body:'';
158
+ for(var _header in _headers){
159
+ _this.X.setRequestHeader(_header,_headers[_header]);
160
+ }
161
+ _this.X.send(_body);
162
+ }
163
+ else if(_method === 'GET'){
164
+ _this.X.send(null);
165
+ }
166
+ if(!_async){
167
+ _comm._stateChange(_this);
168
+ }
169
+ return _this;
170
+ }
171
+ };
172
+
173
+ /** = Description
174
+ * Creates a new instance of the XMLHttpRequest
175
+ * object supported by the browser. Evaluated only once,
176
+ * after that does its things without any extra statements
177
+ *
178
+ **/
179
+ if(window['XMLHttpRequest']!==undefined){
180
+ COMM._XMLHttpRequest = function(){
181
+ return new XMLHttpRequest();
182
+ };
183
+ }
184
+ else if(BROWSER_TYPE.ie){
185
+ COMM._XMLHttpRequest = function(){
186
+ return new ActiveXObject("Msxml2.XMLHTTP");
187
+ };
188
+ }
189
+ else {
190
+ COMM._XMLHttpRequest = function(){
191
+ console.log("No XMLHttpRequest object types known. Can't Communicate.");
192
+ return new COMM._FakeHttpRequst();
193
+ };
194
+ }
195
+
File without changes
File without changes
@@ -0,0 +1,183 @@
1
+ /* Riassence Framework
2
+ * Copyright 2009 Riassence Inc.
3
+ * http://riassence.com/
4
+ *
5
+ * You should have received a copy of the GNU General Public License along
6
+ * with this software package. If not, contact licensing@riassence.com
7
+ */
8
+
9
+ /*** = Description
10
+ ** COMM.Queue executes javascript blocks in a managed queue.
11
+ **
12
+ ** COMM.Queue is used by COMM.Transporter and JSLoader to continue
13
+ ** javascript command execution after a XMLHttpRequest finishes.
14
+ **
15
+ ** COMM.Queue runs as a single instance, dan't try to reconstruct it.
16
+ ***/
17
+ COMM.Queue = HApplication.extend({
18
+
19
+ /** The constructor takes no arguments and starts queue flushing automatically.
20
+ **/
21
+ constructor: function(){
22
+
23
+ // The queue itself, is packed with anonymous functions
24
+ this.commandQueue = [];
25
+
26
+ // Flag to signal the pause and resume status.
27
+ this.paused = false;
28
+
29
+ // Run with priority 10; not too demanding but not too sluggish either
30
+ this.base(10);
31
+ },
32
+
33
+ /** Checks periodically, if the queue needs flushing.
34
+ **/
35
+ onIdle: function(){
36
+ // Runs the flush operation, if the queue is not
37
+ // empty and the state is not resumed:
38
+ !this.paused && this.commandQueue.length !== 0 && this.flush();
39
+ },
40
+
41
+ /** = Description
42
+ * Pauses the queue.
43
+ *
44
+ * Use to stop execution, if some data or code needs to be loaded that the
45
+ * rest of the queue depends on.
46
+ * Typically called before an +XMLHttpRequest+ with the +onSuccess+
47
+ * event defined to call +resume+ when the request is done.
48
+ *
49
+ **/
50
+ pause: function(){
51
+ this.paused = true;
52
+ },
53
+
54
+ /** = Description
55
+ * Resumes queue flushing.
56
+ *
57
+ * Use to resume execuption, when some depending code for the rest
58
+ * of the queue has been loaded.
59
+ * Typically on an +XMLHttpRequest+ +onSuccess+ event.
60
+ *
61
+ **/
62
+ resume: function(){
63
+ this.paused = false;
64
+ this.flush();
65
+ },
66
+
67
+ /** A Group of localizable strings; errors and warnings.
68
+ **/
69
+ STRINGS: {
70
+ ERR: 'COMM.Queue Error: ',
71
+ JS_EXEC_FAIL: 'Failed to execute the Javascript function: ',
72
+ REASON: ' Reason:'
73
+ },
74
+
75
+ /** = Description
76
+ * Flushes the queue until stopped.
77
+ *
78
+ * Iterates through the +commandQueue+ and calls each function.
79
+ * Removes items from the queue after execution.
80
+ *
81
+ **/
82
+ flush: function(){
83
+ var i = 0, // current index in the for-loop.
84
+ _item, // the current item to execute
85
+ _function, // the function to run
86
+ _arguments, // the arguments of the function
87
+ _len = this.commandQueue.length; // the length of the queue
88
+
89
+ // Iterates through the items.
90
+ for(;i<_len;i++){
91
+
92
+ // Checks that the queue hasn't been paused.
93
+ if(this.paused){
94
+ break; // stops flushing, if paused.
95
+ }
96
+
97
+ // The first item in the queue is removed from the queue.
98
+ _item = this.commandQueue.shift();
99
+
100
+ // Execute the item, with arugments if the item
101
+ try{
102
+ if(typeof _item === 'function'){
103
+ _item.call();
104
+ }
105
+ else {
106
+ _function = _item[0];
107
+ _arguments = _item[1];
108
+ _function.apply(this,_arguments);
109
+ }
110
+ }
111
+
112
+ // Displays an error message in the Javascript console, if failure.
113
+ catch(e){
114
+ var _strs = this.STRINGS;
115
+ console.log([
116
+ _strs.ERR_PREFIX,
117
+ _strs.JS_EXEC_FAIL,
118
+ _item,
119
+ _strs.REASON,
120
+ e.description
121
+ ].join(''));
122
+ }
123
+ }
124
+ },
125
+
126
+ /** = Description
127
+ * Adds an item to the beginning of the queue.
128
+ *
129
+ * Use to make the given +_function+ with its
130
+ * optional +_arguments+ the next item to flush.
131
+ *
132
+ * = Parameters:
133
+ * +_function+:: An anonymous function. Contains the code to execute.
134
+ *
135
+ * +_arguments+:: _Optional_ arguments to pass on to the +_function+
136
+ **/
137
+ unshift: function(_function,_arguments){
138
+ if(_arguments!==undefined){
139
+ this.commandQueue.unshift([_function,_arguments]);
140
+ }
141
+ else {
142
+ this.commandQueue.unshift(_function);
143
+ }
144
+ },
145
+
146
+ /** = Description
147
+ * Adds an item to the end of the queue.
148
+ *
149
+ * Use to make the given +_function+ with its
150
+ * optional +_arguments+ the last item to flush.
151
+ *
152
+ * = Parameters:
153
+ * +_function+:: An anonymous function. Contains the code to execute.
154
+ *
155
+ * +_arguments+:: _Optional_ arguments to pass on to the +_function+
156
+ **/
157
+ push: function(_function,_arguments){
158
+ if(_arguments!==undefined){
159
+ this.commandQueue.push([_function,_arguments]);
160
+ }
161
+ else {
162
+ this.commandQueue.push(_function);
163
+ }
164
+ },
165
+
166
+ /** Like +unshift+, but uses the code block as a string to be
167
+ * passed on as an evaluated anonymous function.
168
+ **/
169
+ unshiftEval: function(_evalStr,_arguments){
170
+ var _function;
171
+ eval('_function = function(){'+_evalStr+'}');
172
+ this.unshift(_function);
173
+ },
174
+
175
+ /** Like +push+, but uses the code block as a string to be
176
+ * passed on as an evaluated anonymous function.
177
+ **/
178
+ pushEval: function(_evalStr){
179
+ var _function;
180
+ eval('_function = function(){'+_evalStr+'}');
181
+ this.push(_function);
182
+ }
183
+ }).nu();