rsence-pre 2.1.0.1.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (313) hide show
  1. data/.yardopts +10 -0
  2. data/INSTALL.rdoc +330 -0
  3. data/LICENSE.txt +622 -0
  4. data/README.rdoc +98 -0
  5. data/VERSION +1 -0
  6. data/bin/rsence +25 -0
  7. data/bin/rsence-pre +25 -0
  8. data/conf/default_conf.yaml +346 -0
  9. data/conf/default_strings.yaml +76 -0
  10. data/conf/rsence_command_strings.yaml +444 -0
  11. data/docs/ExampleGuiPlugin.rdoc +193 -0
  12. data/docs/JavascriptBundles.rdoc +0 -0
  13. data/docs/PluginBundleInfo.rdoc +173 -0
  14. data/docs/PluginBundles.rdoc +96 -0
  15. data/docs/Values.rdoc +163 -0
  16. data/js/comm/autosync/autosync.js +17 -0
  17. data/js/comm/autosync/js.inc +0 -0
  18. data/js/comm/comm.js +203 -0
  19. data/js/comm/js.inc +0 -0
  20. data/js/comm/jsloader/js.inc +0 -0
  21. data/js/comm/jsloader/jsloader.js +112 -0
  22. data/js/comm/queue/js.inc +0 -0
  23. data/js/comm/queue/queue.js +184 -0
  24. data/js/comm/session/js.inc +0 -0
  25. data/js/comm/session/session.js +52 -0
  26. data/js/comm/sessionwatcher/js.inc +0 -0
  27. data/js/comm/sessionwatcher/sessionwatcher.js +44 -0
  28. data/js/comm/transporter/js.inc +0 -0
  29. data/js/comm/transporter/transporter.js +261 -0
  30. data/js/comm/urlresponder/js.inc +0 -0
  31. data/js/comm/urlresponder/urlresponder.js +149 -0
  32. data/js/comm/values/js.inc +0 -0
  33. data/js/comm/values/values.js +433 -0
  34. data/js/controls/button/button.js +72 -0
  35. data/js/controls/button/js.inc +0 -0
  36. data/js/controls/button/themes/bright/button.css +89 -0
  37. data/js/controls/button/themes/bright/button.html +7 -0
  38. data/js/controls/button/themes/bright/button_parts1-ie6.gif +0 -0
  39. data/js/controls/button/themes/bright/button_parts1.png +0 -0
  40. data/js/controls/button/themes/default/button.css +89 -0
  41. data/js/controls/button/themes/default/button.html +7 -0
  42. data/js/controls/button/themes/default/button_parts1-ie6.gif +0 -0
  43. data/js/controls/button/themes/default/button_parts1.png +0 -0
  44. data/js/controls/checkbox/checkbox.js +49 -0
  45. data/js/controls/checkbox/js.inc +0 -0
  46. data/js/controls/checkbox/themes/default/checkbox.css +69 -0
  47. data/js/controls/checkbox/themes/default/checkbox.html +5 -0
  48. data/js/controls/checkbox/themes/default/checkbox_parts1-ie6.gif +0 -0
  49. data/js/controls/checkbox/themes/default/checkbox_parts1.png +0 -0
  50. data/js/controls/dialogs/alert_sheet/alert_sheet.js +63 -0
  51. data/js/controls/dialogs/alert_sheet/js.inc +0 -0
  52. data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +37 -0
  53. data/js/controls/dialogs/confirm_sheet/js.inc +0 -0
  54. data/js/controls/dialogs/sheet/js.inc +0 -0
  55. data/js/controls/dialogs/sheet/sheet.js +84 -0
  56. data/js/controls/dialogs/sheet/themes/default/sheet.css +64 -0
  57. data/js/controls/dialogs/sheet/themes/default/sheet.html +14 -0
  58. data/js/controls/dialogs/sheet/themes/default/sheet_bg-ie6.gif +0 -0
  59. data/js/controls/dialogs/sheet/themes/default/sheet_bg.png +0 -0
  60. data/js/controls/dialogs/sheet/themes/default/sheet_dim-ie6.gif +0 -0
  61. data/js/controls/dialogs/sheet/themes/default/sheet_dim.png +0 -0
  62. data/js/controls/dialogs/sheet/themes/default/sheet_parts1-ie6.gif +0 -0
  63. data/js/controls/dialogs/sheet/themes/default/sheet_parts1.png +0 -0
  64. data/js/controls/dialogs/sheet/themes/default/sheet_parts2-ie6.gif +0 -0
  65. data/js/controls/dialogs/sheet/themes/default/sheet_parts2.png +0 -0
  66. data/js/controls/dialogs/sheet/themes/default/sheet_warning-ie6.gif +0 -0
  67. data/js/controls/dialogs/sheet/themes/default/sheet_warning.png +0 -0
  68. data/js/controls/imageview/imageview.js +109 -0
  69. data/js/controls/imageview/js.inc +0 -0
  70. data/js/controls/imageview/themes/default/blank.gif +0 -0
  71. data/js/controls/passwordcontrol/js.inc +0 -0
  72. data/js/controls/passwordcontrol/passwordcontrol.js +23 -0
  73. data/js/controls/passwordcontrol/themes/default/passwordcontrol.css +0 -0
  74. data/js/controls/passwordcontrol/themes/default/passwordcontrol.html +18 -0
  75. data/js/controls/progress/progressbar/js.inc +0 -0
  76. data/js/controls/progress/progressbar/progressbar.js +40 -0
  77. data/js/controls/progress/progressbar/themes/default/progressbar.css +16 -0
  78. data/js/controls/progress/progressbar/themes/default/progressbar.html +2 -0
  79. data/js/controls/progress/progressindicator/js.inc +0 -0
  80. data/js/controls/progress/progressindicator/progressindicator.js +44 -0
  81. data/js/controls/radiobutton/js.inc +0 -0
  82. data/js/controls/radiobutton/radiobutton.js +43 -0
  83. data/js/controls/radiobutton/themes/default/radiobutton.css +69 -0
  84. data/js/controls/radiobutton/themes/default/radiobutton.html +5 -0
  85. data/js/controls/radiobutton/themes/default/radiobutton_parts1-ie6.gif +0 -0
  86. data/js/controls/radiobutton/themes/default/radiobutton_parts1.png +0 -0
  87. data/js/controls/sliders/slider/js.inc +0 -0
  88. data/js/controls/sliders/slider/slider.js +357 -0
  89. data/js/controls/sliders/slider/themes/default/hslider_tracks-ie6.gif +0 -0
  90. data/js/controls/sliders/slider/themes/default/hslider_tracks.png +0 -0
  91. data/js/controls/sliders/slider/themes/default/slider.css +108 -0
  92. data/js/controls/sliders/slider/themes/default/slider.html +5 -0
  93. data/js/controls/sliders/slider/themes/default/slider_thumbs-ie6.gif +0 -0
  94. data/js/controls/sliders/slider/themes/default/slider_thumbs.png +0 -0
  95. data/js/controls/sliders/vslider/js.inc +0 -0
  96. data/js/controls/sliders/vslider/themes/default/vslider.css +52 -0
  97. data/js/controls/sliders/vslider/themes/default/vslider.html +5 -0
  98. data/js/controls/sliders/vslider/themes/default/vslider_tracks-ie6.gif +0 -0
  99. data/js/controls/sliders/vslider/themes/default/vslider_tracks.png +0 -0
  100. data/js/controls/sliders/vslider/vslider.js +41 -0
  101. data/js/controls/stepper/js.inc +0 -0
  102. data/js/controls/stepper/stepper.js +213 -0
  103. data/js/controls/stepper/themes/default/stepper-ie6.gif +0 -0
  104. data/js/controls/stepper/themes/default/stepper.css +14 -0
  105. data/js/controls/stepper/themes/default/stepper.html +2 -0
  106. data/js/controls/stepper/themes/default/stepper.png +0 -0
  107. data/js/controls/stringview/js.inc +0 -0
  108. data/js/controls/stringview/stringview.js +49 -0
  109. data/js/controls/stringview/themes/default/stringview.css +8 -0
  110. data/js/controls/stringview/themes/default/stringview.html +1 -0
  111. data/js/controls/tab/js.inc +0 -0
  112. data/js/controls/tab/tab.js +280 -0
  113. data/js/controls/tab/themes/bright/tab.css +76 -0
  114. data/js/controls/tab/themes/bright/tab.html +6 -0
  115. data/js/controls/tab/themes/bright/tab_bg_color-ie6.gif +0 -0
  116. data/js/controls/tab/themes/bright/tab_bg_color.png +0 -0
  117. data/js/controls/tab/themes/bright/tab_border_pattern-ie6.gif +0 -0
  118. data/js/controls/tab/themes/bright/tab_border_pattern.png +0 -0
  119. data/js/controls/tab/themes/bright/tab_parts1-ie6.gif +0 -0
  120. data/js/controls/tab/themes/bright/tab_parts1.png +0 -0
  121. data/js/controls/tab/themes/default/tab.css +77 -0
  122. data/js/controls/tab/themes/default/tab.html +6 -0
  123. data/js/controls/tab/themes/default/tab_bg_color-ie6.gif +0 -0
  124. data/js/controls/tab/themes/default/tab_bg_color.png +0 -0
  125. data/js/controls/tab/themes/default/tab_border_pattern-ie6.gif +0 -0
  126. data/js/controls/tab/themes/default/tab_border_pattern.png +0 -0
  127. data/js/controls/tab/themes/default/tab_parts1-ie6.gif +0 -0
  128. data/js/controls/tab/themes/default/tab_parts1.png +0 -0
  129. data/js/controls/textarea/js.inc +0 -0
  130. data/js/controls/textarea/textarea.js +24 -0
  131. data/js/controls/textarea/themes/default/textarea.css +21 -0
  132. data/js/controls/textarea/themes/default/textarea.html +18 -0
  133. data/js/controls/textcontrol/js.inc +0 -0
  134. data/js/controls/textcontrol/textcontrol.js +374 -0
  135. data/js/controls/textcontrol/themes/default/textcontrol.css +107 -0
  136. data/js/controls/textcontrol/themes/default/textcontrol.html +18 -0
  137. data/js/controls/textcontrol/themes/default/textcontrol_parts1-ie6.gif +0 -0
  138. data/js/controls/textcontrol/themes/default/textcontrol_parts1.png +0 -0
  139. data/js/controls/textcontrol/themes/default/textcontrol_parts2-ie6.gif +0 -0
  140. data/js/controls/textcontrol/themes/default/textcontrol_parts2.png +0 -0
  141. data/js/controls/textcontrol/themes/default/textcontrol_parts3-ie6.gif +0 -0
  142. data/js/controls/textcontrol/themes/default/textcontrol_parts3.png +0 -0
  143. data/js/controls/uploader/js.inc +0 -0
  144. data/js/controls/uploader/themes/default/upload_progress.gif +0 -0
  145. data/js/controls/uploader/themes/default/uploader.css +108 -0
  146. data/js/controls/uploader/themes/default/uploader.html +27 -0
  147. data/js/controls/uploader/uploader.js +154 -0
  148. data/js/controls/validatorview/js.inc +0 -0
  149. data/js/controls/validatorview/themes/default/validator-ie6.gif +0 -0
  150. data/js/controls/validatorview/themes/default/validator.png +0 -0
  151. data/js/controls/validatorview/themes/default/validatorview.css +0 -0
  152. data/js/controls/validatorview/themes/default/validatorview.html +0 -0
  153. data/js/controls/validatorview/validatorview.js +62 -0
  154. data/js/controls/window/js.inc +0 -0
  155. data/js/controls/window/themes/default/window.css +219 -0
  156. data/js/controls/window/themes/default/window.html +17 -0
  157. data/js/controls/window/themes/default/window_bg_active-ie6.gif +0 -0
  158. data/js/controls/window/themes/default/window_bg_active.png +0 -0
  159. data/js/controls/window/themes/default/window_bg_inactive-ie6.gif +0 -0
  160. data/js/controls/window/themes/default/window_bg_inactive.png +0 -0
  161. data/js/controls/window/themes/default/window_buttons-ie6.gif +0 -0
  162. data/js/controls/window/themes/default/window_buttons.png +0 -0
  163. data/js/controls/window/themes/default/window_parts1-ie6.gif +0 -0
  164. data/js/controls/window/themes/default/window_parts1.png +0 -0
  165. data/js/controls/window/themes/default/window_parts2-ie6.gif +0 -0
  166. data/js/controls/window/themes/default/window_parts2.png +0 -0
  167. data/js/controls/window/window.js +286 -0
  168. data/js/core/class/class.js +318 -0
  169. data/js/core/class/js.inc +0 -0
  170. data/js/core/elem/elem.js +1383 -0
  171. data/js/core/elem/js.inc +0 -0
  172. data/js/core/event/event.js +153 -0
  173. data/js/core/event/js.inc +0 -0
  174. data/js/core/iefix/ie_css_element.htc +5 -0
  175. data/js/core/iefix/ie_css_style.htc +5 -0
  176. data/js/core/iefix/iefix.js +359 -0
  177. data/js/core/iefix/js.inc +0 -0
  178. data/js/core/rsence_ns/js.inc +0 -0
  179. data/js/core/rsence_ns/rsence_ns.js +21 -0
  180. data/js/datetime/calendar/calendar.js +198 -0
  181. data/js/datetime/calendar/js.inc +0 -0
  182. data/js/datetime/calendar/themes/default/calendar.css +108 -0
  183. data/js/datetime/calendar/themes/default/calendar.html +9 -0
  184. data/js/datetime/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
  185. data/js/datetime/calendar/themes/default/calendar_arrows.png +0 -0
  186. data/js/datetime/datetimevalue/datetimevalue.js +247 -0
  187. data/js/datetime/datetimevalue/js.inc +0 -0
  188. data/js/datetime/timesheet/js.inc +0 -0
  189. data/js/datetime/timesheet/themes/default/timesheet.css +30 -0
  190. data/js/datetime/timesheet/themes/default/timesheet.html +2 -0
  191. data/js/datetime/timesheet/timesheet.js +183 -0
  192. data/js/datetime/timesheet_item/js.inc +0 -0
  193. data/js/datetime/timesheet_item/themes/default/timesheet_item.css +42 -0
  194. data/js/datetime/timesheet_item/themes/default/timesheet_item.html +8 -0
  195. data/js/datetime/timesheet_item/timesheet_item.js +248 -0
  196. data/js/datetime/timesheet_item_edit/js.inc +0 -0
  197. data/js/datetime/timesheet_item_edit/timesheet_item_edit.js +274 -0
  198. data/js/foundation/application/application.js +208 -0
  199. data/js/foundation/application/js.inc +0 -0
  200. data/js/foundation/control/control.js +339 -0
  201. data/js/foundation/control/controldefaults/controldefaults.js +56 -0
  202. data/js/foundation/control/controldefaults/js.inc +0 -0
  203. data/js/foundation/control/dummyvalue/dummyvalue.js +51 -0
  204. data/js/foundation/control/dummyvalue/js.inc +0 -0
  205. data/js/foundation/control/dyncontrol/dyncontrol.js +500 -0
  206. data/js/foundation/control/dyncontrol/js.inc +0 -0
  207. data/js/foundation/control/dyncontrol/themes/default/dyncontrol.css +0 -0
  208. data/js/foundation/control/dyncontrol/themes/default/dyncontrol.html +0 -0
  209. data/js/foundation/control/eventresponder/eventresponder.js +750 -0
  210. data/js/foundation/control/eventresponder/js.inc +0 -0
  211. data/js/foundation/control/js.inc +0 -0
  212. data/js/foundation/control/valuematrix/js.inc +0 -0
  213. data/js/foundation/control/valuematrix/valuematrix.js +135 -0
  214. data/js/foundation/control/valueresponder/js.inc +0 -0
  215. data/js/foundation/control/valueresponder/valueresponder.js +79 -0
  216. data/js/foundation/eventmanager/eventmanager.js +991 -0
  217. data/js/foundation/eventmanager/js.inc +0 -0
  218. data/js/foundation/geom/point/js.inc +0 -0
  219. data/js/foundation/geom/point/point.js +202 -0
  220. data/js/foundation/geom/rect/js.inc +0 -0
  221. data/js/foundation/geom/rect/rect.js +651 -0
  222. data/js/foundation/json_renderer/js.inc +0 -0
  223. data/js/foundation/json_renderer/json_renderer.js +246 -0
  224. data/js/foundation/system/js.inc +0 -0
  225. data/js/foundation/system/system.js +381 -0
  226. data/js/foundation/thememanager/js.inc +0 -0
  227. data/js/foundation/thememanager/thememanager.js +393 -0
  228. data/js/foundation/value/js.inc +0 -0
  229. data/js/foundation/value/value.js +183 -0
  230. data/js/foundation/view/js.inc +0 -0
  231. data/js/foundation/view/markupview/js.inc +0 -0
  232. data/js/foundation/view/markupview/markupview.js +114 -0
  233. data/js/foundation/view/morphanimation/js.inc +0 -0
  234. data/js/foundation/view/morphanimation/morphanimation.js +237 -0
  235. data/js/foundation/view/view.js +1812 -0
  236. data/js/foundation/view/viewdefaults/js.inc +0 -0
  237. data/js/foundation/view/viewdefaults/viewdefaults.js +26 -0
  238. data/js/lists/checkboxlist/checkboxlist.js +171 -0
  239. data/js/lists/checkboxlist/js.inc +0 -0
  240. data/js/lists/listitems/js.inc +0 -0
  241. data/js/lists/listitems/listitems.js +88 -0
  242. data/js/lists/propertylist/js.inc +0 -0
  243. data/js/lists/propertylist/propertylist.js +326 -0
  244. data/js/lists/radiobuttonlist/js.inc +0 -0
  245. data/js/lists/radiobuttonlist/radiobuttonlist.js +116 -0
  246. data/js/util/reloadapp/js.inc +0 -0
  247. data/js/util/reloadapp/reloadapp.js +152 -0
  248. data/js/util/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
  249. data/js/util/reloadapp/themes/default/reloadapp_warning.png +0 -0
  250. data/js/util/sha/js.inc +0 -0
  251. data/js/util/sha/sha.js +426 -0
  252. data/js/views/centerview/centerview.js +75 -0
  253. data/js/views/centerview/js.inc +0 -0
  254. data/js/views/inlineview/inlineview.js +15 -0
  255. data/js/views/inlineview/js.inc +0 -0
  256. data/js/views/scrollview/js.inc +0 -0
  257. data/js/views/scrollview/scrollview.js +40 -0
  258. data/lib/conf/argv.rb +850 -0
  259. data/lib/conf/default.rb +219 -0
  260. data/lib/daemon/daemon.rb +387 -0
  261. data/lib/daemon/sigcomm.rb +64 -0
  262. data/lib/http/broker.rb +150 -0
  263. data/lib/http/rackup.rb +91 -0
  264. data/lib/http/request.rb +66 -0
  265. data/lib/http/response.rb +65 -0
  266. data/lib/plugins/dependencies.rb +285 -0
  267. data/lib/plugins/gui_plugin.rb +160 -0
  268. data/lib/plugins/guiparser.rb +123 -0
  269. data/lib/plugins/plugin.rb +438 -0
  270. data/lib/plugins/plugin_base.rb +162 -0
  271. data/lib/plugins/plugin_plugins.rb +81 -0
  272. data/lib/plugins/plugin_sqlite_db.rb +98 -0
  273. data/lib/plugins/pluginmanager.rb +635 -0
  274. data/lib/plugins/plugins.rb +169 -0
  275. data/lib/plugins/servlet.rb +108 -0
  276. data/lib/rsence.rb +32 -0
  277. data/lib/session/msg.rb +327 -0
  278. data/lib/session/sessionmanager.rb +522 -0
  279. data/lib/session/sessionstorage.rb +340 -0
  280. data/lib/transporter/transporter.rb +263 -0
  281. data/lib/util/gzstring.rb +9 -0
  282. data/lib/util/ruby19_fixes.rb +18 -0
  283. data/lib/values/hvalue.rb +378 -0
  284. data/lib/values/valuemanager.rb +172 -0
  285. data/plugins/client_pkg/client_pkg.rb +157 -0
  286. data/plugins/client_pkg/info.yaml +25 -0
  287. data/plugins/client_pkg/lib/client_pkg_build.rb +561 -0
  288. data/plugins/client_pkg/lib/client_pkg_cache.rb +50 -0
  289. data/plugins/client_pkg/lib/client_pkg_serve.rb +218 -0
  290. data/plugins/index_html/img/loading.gif +0 -0
  291. data/plugins/index_html/img/riassence.gif +0 -0
  292. data/plugins/index_html/index_html.rb +120 -0
  293. data/plugins/index_html/info.yaml +18 -0
  294. data/plugins/index_html/tmpl/index.html +15 -0
  295. data/plugins/main/info.yaml +18 -0
  296. data/plugins/main/js/main.js +84 -0
  297. data/plugins/main/main.rb +255 -0
  298. data/plugins/main/values.yaml +8 -0
  299. data/plugins/ticket/info.yaml +21 -0
  300. data/plugins/ticket/lib/common.rb +392 -0
  301. data/plugins/ticket/lib/favicon.rb +39 -0
  302. data/plugins/ticket/lib/file.rb +58 -0
  303. data/plugins/ticket/lib/img.rb +50 -0
  304. data/plugins/ticket/lib/objblob.rb +66 -0
  305. data/plugins/ticket/lib/rsrc.rb +34 -0
  306. data/plugins/ticket/lib/upload.rb +236 -0
  307. data/plugins/ticket/ticket.rb +333 -0
  308. data/setup/welcome/gui/welcome.yaml +92 -0
  309. data/setup/welcome/info.yaml +13 -0
  310. data/setup/welcome/text/welcome.html +9 -0
  311. data/setup/welcome/values.yaml +9 -0
  312. data/setup/welcome/welcome.rb +54 -0
  313. metadata +407 -0
data/.yardopts ADDED
@@ -0,0 +1,10 @@
1
+ bin/rsence
2
+ lib/rsence.rb
3
+ lib/**/*.rb
4
+ plugins/**/*.rb
5
+ --no-private
6
+ --hide-void-return
7
+ --exclude lib/util/ruby19_fixes.rb
8
+ --exclude lib/http/rackup.rb
9
+ - conf/default_*.yaml INSTALL.rdoc LICENSE.txt VERSION
10
+ docs/*.rdoc
data/INSTALL.rdoc ADDED
@@ -0,0 +1,330 @@
1
+ = Install Guide
2
+
3
+ If you already have a working ruby environment and know what to do, the easiest way is just:
4
+
5
+ gem install rsence
6
+
7
+ Otherwise, follow these instructions:
8
+
9
+
10
+ == 1. System Dependencies
11
+
12
+ This is a list of system level dependencies. You only need to do this step once; follow the steps of for your target operating system.
13
+
14
+ === 1.1. Mac OS X
15
+
16
+ ==== 1.1.1 Mac OS X 10.6
17
+
18
+ * Install *XCode*[http://developer.apple.com/mac/] to get the essential development tools, like compilers.
19
+ * Proceed to section 3.0
20
+
21
+ ==== 1.1.2. Mac OS X 10.4 and 10.5
22
+
23
+ This step applies only to Mac OS X 10.4 "Tiger" and 10.5 "Leopard". The default ruby build of these versions of Mac OS X is somewhat broken.
24
+
25
+ * Install *XCode*[http://developer.apple.com/mac/] to get the essential development tools, like compilers.
26
+ * Install *MacPorts*[http://www.macports.org/]
27
+ * Install the ruby and rb-rubygems packages using Terminal like this:
28
+ sudo port install ruby
29
+ sudo port install rb-rubygems
30
+ * Proceed to section 3.0
31
+
32
+ === 1.2. Debian and Ubuntu Linux
33
+
34
+ This step applies only to Debian, Ubuntu and similar Linux distributions.
35
+
36
+ * Install these packages:
37
+ sudo apt-get install build-essential ruby-full rubygems rake
38
+ * Proceed to section 3.0
39
+
40
+ === 1.3. Microsoft Windows
41
+
42
+ RSence works just fine on Windows too, with a few limitations.
43
+ Windows compatibility has been officially tested on Windows XP SP3 and Windows 7 (64 bit).
44
+
45
+ ==== 1.3.1. Install ruby 1.8.7:
46
+ * Download Ruby 1.8.7-p249 (RC2) from http://rubyinstaller.org/downloads
47
+ * Run the downloaded exe to install ruby
48
+ * In the installation and destination prompt, check these options:
49
+ * Add Ruby executables to your PATH
50
+ * Associate .rb and .rbw files with this Ruby installation
51
+ * Download and Install the Development Kit from http://rubyinstaller.org/downloads
52
+ * Extract the included directories into the directory where you installed ruby.
53
+ * It's +C:\ruby+ by default.
54
+
55
+ ==== 1.3.2. Install RSence
56
+ * In the command prompt, run:
57
+ gem update --system
58
+ gem install rsence
59
+ rsence help
60
+
61
+ ==== 1.3.3. Create RSence environment
62
+
63
+ Replace the +\my_projects+ path with the path to the directory where you want to run or develop your projects. Likewise, replace +my_project+ with something descriptive for your project.
64
+
65
+ * In the command prompt, run:
66
+ cd \my_projects
67
+ rsence initenv my_project
68
+ * Answer the questions
69
+ * In the command prompt, run:
70
+ rsence run my_project
71
+ * Open your web browser in the address as configured.
72
+ * If the address is +0.0.0.0+, enter +127.0.0.1+ instead.
73
+ * Using just defaults, the following URL should work: http://127.0.0.1:8001
74
+
75
+ ==== 1.3.4. Windows limitations
76
+ If you install the sqlite dll and the sqlite3-ruby gem, you'll gain persistent sessions and this warning message will disappear:
77
+ `Warning: Session database is not available. Can't use persistent sessions`
78
+
79
+ It's not a dependency in the default install, because it's not strictly required and makes the first installation much easier. Also, you can use any other database supported by Sequel instead of Sqlite.
80
+
81
+ Backgrounding on Windows is not yet implemented, because POSIX signals are not fully implemented in windows and backgrounding requires some Windows-specific service hooks.
82
+
83
+ However, if you run RSence under Cygwin, everything should work like on a UNIX machines.
84
+
85
+
86
+ === 1.4. Other UNIX / Linux systems:
87
+
88
+ This step applies to systems not listed above.
89
+
90
+ You'll have to figure out how to install the dependencies on your own, but generally this is the list of software you should look for:
91
+
92
+ * Ruby
93
+ * Version 1.8.7 or newer
94
+ * http://ruby-lang.org
95
+ * RubyGems
96
+ * Ruby package manager
97
+ * A standard set of compilers and build tools to build the gems with C extensions.
98
+ * gcc, make etc.
99
+
100
+
101
+ == 2. Ruby Library Dependencies
102
+
103
+ The `rsence` gem depends on the dummy `rsence-deps` gem, which depends on all essential dependencies of RSence.
104
+ Optionally, you probably want at a database and a database adapter supported by Sequel[http://sequel.rubyforge.org]
105
+ This not only enables SessionStorage (persistent sessions between RSence restarts), but some plugins written for RSence depend on at least Sqlite.
106
+
107
+ === 2.1 Detailed list of ruby libraries used
108
+
109
+ * *rake*[http://rake.rubyforge.org]
110
+ * Ruby build tool
111
+ * Not necessarily required via ruby gems, if installed via a system-level package
112
+ * *rack*[http://rack.rubyforge.org]
113
+ * Abstract ruby web server interface
114
+ * A rack handler is also required. One of the following is suggested:
115
+ * *unicorn*[http://unicorn.bogomips.org] :: Suggested for production deployment. Use Apache, Nginx or similar front-ends for virtual hosts, SSL and such.
116
+ * *mongrel*[http://github.com/fauna/mongrel] :: Suggested for development use, also works for production when combined with a front-end proxy for virtual hosts etc.
117
+ * *thin*[http://code.macournoyer.com/thin] :: Alternative for development use.
118
+ * *webrick*:: Bundled with ruby (no installation required). Very slow; use as last resort
119
+ * *json*[http://flori.github.com/json]:: Library for bi-directional JSON[http://json.org] conversion.
120
+ * *yaml*[http://yaml4r.sourceforge.net/doc]:: Library for handling YAML[http://www.yaml.org] files
121
+ * *randgen*:: C-optimized random string generator developed for RSence specifically
122
+ * *jsmin_c*:: C-optimized Javascript whitespace removal library; Ruby wrapper developed for RSence specifically; based on the original JSMin[http://www.crockford.com/javascript/jsmin.html]
123
+ * *jscompress*:: C-optimized Javascript compression and obfuscation library developed for RSence specifically
124
+ * *html_min*:: C-optimized HTML whitespace removal library developed for RSence specfically
125
+ * *cssmin*:: CSS whitespace removal library
126
+ * *sequel*[http://www.sequel.org]
127
+ * Generic SQL database ORM
128
+ * A Sequel driver for your preferred database is also needed:
129
+ * *sqlite3-ruby*:: SQLite[http://www.sqlite.org] is a light-weight SQL library. Recommended for development and small projects.
130
+ * Other database adapters compatible with Sequel are fine. Just configure RSence accordingly.
131
+ * *highline*:: Console-based menu prompt system by the initenv command.
132
+ * rmagick
133
+ * Optional, but suggested, because RSence has RMagick -savvy features, like serving RMagick objects using tickets that are rendered only when requested.
134
+ * Some plugins depend on it directly.
135
+
136
+
137
+ == 3. Setting up RSence
138
+
139
+ The primary installation method of RSence is via RubyGems.
140
+
141
+ To ensure your RubyGems is up-to-date, run:
142
+ sudo gem update --system
143
+
144
+ Even if RubyGems is up-to-date, ensure your installed gems are up-to-date, some of these are updated frequently. This will also update RSence release versions to the most recent version, if installed.
145
+ sudo gem update
146
+
147
+ === 3.1. Install RSence
148
+
149
+ This will install RSence via RubyGems, the preferred method. All dependencies are installed too, except for the ones you already might have installed.
150
+ gem install rsence
151
+
152
+ Optionally, you might want to contribute to RSence development, just clone or fork the GIT repository on Github:
153
+ * http://github.com/rsence/rsence
154
+
155
+ When installed, ensure it works by exploring the help of the 'rsence' command, like:
156
+ rsence
157
+ rsence help
158
+ rsence help version
159
+ rsence help run
160
+ rsence help initenv
161
+ etc..
162
+
163
+ === 3.2. Setting up
164
+
165
+ ==== 3.2.1. Creating a RSence project environment
166
+
167
+ To set up an environment for your RSence project, use the initenv command. In this example '/home/me/projects' is assumed as your project directory. Replace that with a path that matches your own environment. The RSence project directory must either be empty or will be created automatically.
168
+ rsence initenv /home/me/projects/my_first_rsence_project
169
+
170
+ To see the options of the initenv command, use
171
+ rsence help initenv
172
+
173
+ By default, initenv asks a few simple questions to write your configuration file. Just press enter, if you want to keep the suggested default options.
174
+
175
+ The questions are:
176
+ * Project Title
177
+ * This is the name of your project. It's displayed as the title of the RSence web page.
178
+ * Session database connection string
179
+ * This is a database connection string for persistent RSence session storage. It allows keeping sessions valid even if RSence is restarted.
180
+ * You'll need the appropriate database adapter, most database engines are supported.
181
+ * The simplest (and default) database connection string is for a local Sqlite database.
182
+ * sqlite://db/ses.db
183
+ * This default example string is for a database named 'ses.db' to be created in the 'db' subdirectory of your project directory.
184
+ * The usual format is like any url, the following is for connecting to a mysql database named 'my_rsence_db' on the mysql server responding at 'localhost' on port '3306' using the username 'me' and password 'ins3cur3':
185
+ * mysql://me:ins3cur3@localhost:3306/my_rsence_db
186
+ * For more information, see:
187
+ * http://sequel.rubyforge.org/rdoc/files/doc/opening_databases_rdoc.html
188
+ * HTTP Port
189
+ * This is the port RSence listens to. It may be any free and valid port number.
190
+ * Interface TCP/IP address
191
+ * This is the address RSence binds to.
192
+ * '0.0.0.0' means RSence responds on all interface addresses configured on the computer.
193
+ * '127.0.0.1' means RSence responds only on localhost. For testing and development, use 127.0.01 instead of 'localhost' in the web browser url field, because cookies can't be set for 'localhost'.
194
+ * Any other IP address requires the same exact address to be configured on the computer RSence is running on.
195
+ * URI Prefix
196
+ * This is by default the root directory, or /
197
+ * Change this to another 'virtual directory', if you are configuring several RSence instances on a virtual host served via a HTTP proxy, like mod_rewrite on apache.
198
+
199
+ You may edit the conf/config.yaml at a later time to change these settings. The full list (and the defaults) are specified in the 'conf/default_conf.yaml' file in the installation directory of RSence.
200
+
201
+ Any differences in your local configuration replace the default. If the configuration option type is an Array, the defaults are not replaced, the defaults are appended to. If your configuration only has partial items of a Hash defined, only those are applied to the default.
202
+
203
+ ==== 3.2.2. Start RSence in the development mode with logs printed to the standard output:
204
+
205
+ The debug/development mode has the most verbose output and is the intended mode of RSence for development. Changes in your code are automatically (re)loaded and the javascript is not obfuscated or minimized in any way. Values also have human-readable id's.
206
+ cd /home/me/projects/my_first_rsence_project
207
+ rsence run -df
208
+
209
+ ==== 3.3.3. Open a web browser
210
+ * By default, the RSence listens on port 8001
211
+ * To test it, open the address http://127.0.0.1:8001/
212
+ * If everything works:
213
+ * A welcome message is displayed
214
+ * Check the "Don't show again" checkbox and click the "Close" button to make the 'welcome' plugin uninstall itself.
215
+
216
+ ==== 3.3.4. Stop RSence
217
+ Just press CTRL-C in the terminal, if RSence was started using the 'run' command.
218
+
219
+
220
+ == 4. Modes of operation
221
+
222
+ RSence supports two main modes of operation: in the foreground and in the background. Each have various options. Use the 'rsence help run' and 'rsence help start' commands to read more about them.
223
+
224
+
225
+ === 4.1. Starting RSence as a foreground process.
226
+
227
+ The 'run' mode is well suited for development. Especially when combined with the -d and -f options.
228
+
229
+ Starting in foreground mode:
230
+ rsence run
231
+
232
+ Starting in foreground mode with debug mode:
233
+ rsence run -d
234
+
235
+ Starting in foreground mode with debug and logging in foreground:
236
+ rsence run -df
237
+
238
+ Stopping in foreground mode: Press CTRL-C
239
+
240
+
241
+ === 4.2. Starting RSence as a daemon (background mode).
242
+
243
+ In the background mode, standard output and standard errors are logged in the 'log' directory of your project and the PID file is written in the 'run' directory. This mode of operation is best suited for production deployment and it's not available on Microsoft Windows, because full POSIX compliance is not available on Windows.
244
+ rsence start
245
+
246
+ === 4.2.1 Stopping RSence in background mode
247
+ rsence stop
248
+
249
+ === 4.2.2 Checking RSence status in background mode
250
+ rsence status
251
+
252
+ === 4.2.3 To store the RSence sessions into the session database while in background mode
253
+ rsence save
254
+
255
+ The sessions are also stored when stopping and restarting RSence. Use the 'save' command regularly from a cron script or equivalent in a production environment.
256
+
257
+ === 4.3. Restarting RSence in background mode
258
+ rsence restart
259
+
260
+ === 4.2.5. Re-setting the sessions
261
+ This is needed only, if the session storage becomes corrupt in a development environment (changing value definitions and such). This invalidates all ongoing sessions.
262
+ Just apply the --reset-sessions option after the run, start or restart command in the command prompt.
263
+ rsence restart --reset-sessions
264
+
265
+ The '-r' switch is equivalent to '--reset-sessions'
266
+
267
+ *NOTE: All the sessions currently connected clients are invalidated and need to reload the page*
268
+
269
+
270
+ === 4.4. Running in development mode
271
+ Just apply the -d option after the *run*, *start* or *restart* command in the command prompt.
272
+ rsence restart -d
273
+
274
+ ==== 4.4.1. What does development mode do?
275
+ * Plugins are (re)loaded automatically in the background, if they are changed, disabled, added or removed.
276
+ * This is also enabled with the -a switch (--auto-update)
277
+ * Javascript packages are automatically re-built, if they are changed.
278
+ * This is also enabled with the -a switch (--auto-update)
279
+ * Much more verbose logging
280
+ * Code obfuscation / minimizing options are turned off.
281
+
282
+ === 4.5. Other command-line options
283
+ Just run this command to see the available options:
284
+ rsence help <command>
285
+ example:
286
+ rsence help run
287
+
288
+ === 4.6. Running RSence using rackup
289
+ rackup conf/config.ru
290
+
291
+ === 4.7. Running RSence using unicorn
292
+ unicorn conf/config.ru -c conf/unicorn.conf
293
+
294
+
295
+ == 5. Plugin Deployment
296
+
297
+ If you followed the previous steps, you are ready to deploy some software.
298
+ * In development mode (see 4.4.), plugins are (re/un)loaded when:
299
+ * Adding a new plugin into the plugins directory
300
+ * Removing a plugin from the plugins directory
301
+ * Disabling a plugin by creating a file or folder named "disabled" in the plugin's bundle directory
302
+ * Enabling a plugin by removing a file or folder named "disabled" in the plugin's bundle directory
303
+ * The plugin's ruby or yaml files are changed.
304
+
305
+ * In production mode, a RSence restart is required (see 4.4.), unless running with the '-a' ('--auto-update') option enabled. Enabling it is a good idea for production environments where the code is updated frequently. It enables nearly zero downtime, if code updates are thoroughly tested before being deployed.
306
+
307
+ * By default, the "plugins" directory in the "rsence" directory is the only plugin directory.
308
+ * Edit the configuration file to enable other directories.
309
+ * Sample plugins are available at http://rsence.org/
310
+
311
+
312
+ === 5.1. Deploying plugins
313
+ Copy or move a plugin bundle directory into the "plugins" directory.
314
+
315
+ === 5.2. Un-deploying plugins
316
+ Move a plugin bundle out of the the "plugins" directory.
317
+
318
+ === 5.3. Temporarily disabling a plugin
319
+ Create an empty file named "disabled" in the plugin bundle to disable it.
320
+ touch plugins/legacy/disabled
321
+
322
+
323
+ == 6. Getting more information
324
+
325
+ * Explore http://rsence.org/
326
+ * Join our chat room on IRC (IRCNet and FreeNode):
327
+ #rsence
328
+ * Email a question to us:
329
+ info@rsence.org
330
+