rsence 2.0.0.10.pre → 2.0.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (161) hide show
  1. data/.yardopts +10 -0
  2. data/INSTALL.rdoc +52 -86
  3. data/{LICENSE → LICENSE.txt} +0 -0
  4. data/README.rdoc +52 -49
  5. data/VERSION +1 -1
  6. data/bin/rsence +4 -6
  7. data/conf/default_conf.yaml +314 -305
  8. data/conf/default_strings.yaml +70 -71
  9. data/docs/ExampleGuiPlugin.rdoc +193 -0
  10. data/{js/comm/comm/autosync/js.inc → docs/JavascriptBundles.rdoc} +0 -0
  11. data/docs/PluginBundleInfo.rdoc +173 -0
  12. data/docs/PluginBundles.rdoc +96 -0
  13. data/docs/Values.rdoc +163 -0
  14. data/js/comm/{comm/autosync → autosync}/autosync.js +1 -2
  15. data/js/comm/{comm → autosync}/js.inc +0 -0
  16. data/js/comm/{comm/comm.js → comm.js} +1 -0
  17. data/js/comm/{comm/queue/js.inc → js.inc} +0 -0
  18. data/js/comm/jsloader/jsloader.js +2 -4
  19. data/js/comm/{comm/session → queue}/js.inc +0 -0
  20. data/js/comm/{comm/queue → queue}/queue.js +1 -0
  21. data/js/comm/{comm/sessionwatcher → session}/js.inc +0 -0
  22. data/js/comm/{comm/session → session}/session.js +4 -3
  23. data/js/comm/{comm/transporter → sessionwatcher}/js.inc +0 -0
  24. data/js/comm/{comm/sessionwatcher → sessionwatcher}/sessionwatcher.js +1 -0
  25. data/js/comm/{comm/urlresponder → transporter}/js.inc +0 -0
  26. data/js/comm/{comm/transporter → transporter}/transporter.js +1 -0
  27. data/js/comm/{comm/values → urlresponder}/js.inc +0 -0
  28. data/js/comm/{comm/urlresponder → urlresponder}/urlresponder.js +1 -0
  29. data/js/comm/{reloadapp → values}/js.inc +0 -0
  30. data/js/comm/{comm/values → values}/values.js +1 -0
  31. data/js/controls/button/button.js +10 -1
  32. data/js/controls/checkbox/checkbox.js +2 -0
  33. data/js/controls/dialogs/alert_sheet/alert_sheet.js +1 -0
  34. data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +1 -0
  35. data/js/controls/dialogs/sheet/sheet.js +1 -0
  36. data/js/controls/imageview/imageview.js +1 -0
  37. data/js/controls/passwordcontrol/passwordcontrol.js +1 -0
  38. data/js/controls/progress/progressbar/progressbar.js +1 -0
  39. data/js/controls/progress/progressindicator/progressindicator.js +1 -0
  40. data/js/controls/radiobutton/radiobutton.js +3 -1
  41. data/js/controls/sliders/slider/slider.js +1 -0
  42. data/js/controls/sliders/vslider/vslider.js +1 -0
  43. data/js/controls/stepper/stepper.js +1 -0
  44. data/js/controls/stringview/stringview.js +2 -2
  45. data/js/controls/tab/tab.js +7 -5
  46. data/js/controls/textarea/textarea.js +1 -0
  47. data/js/controls/textcontrol/textcontrol.js +3 -1
  48. data/js/controls/uploader/uploader.js +1 -0
  49. data/js/controls/validatorview/validatorview.js +62 -59
  50. data/js/controls/window/window.js +1 -0
  51. data/js/core/class/class.js +2 -1
  52. data/js/core/elem/elem.js +27 -27
  53. data/js/core/event/event.js +3 -874
  54. data/js/{comm/sha → core/rsence_ns}/js.inc +0 -0
  55. data/js/core/rsence_ns/rsence_ns.js +15 -0
  56. data/js/{controls/datetime → datetime}/calendar/calendar.js +1 -0
  57. data/js/{comm/values/value → datetime/calendar}/js.inc +0 -0
  58. data/js/{controls/datetime → datetime}/calendar/themes/default/calendar.css +0 -0
  59. data/js/{controls/datetime → datetime}/calendar/themes/default/calendar.html +0 -0
  60. data/js/{controls/datetime → datetime}/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
  61. data/js/{controls/datetime → datetime}/calendar/themes/default/calendar_arrows.png +0 -0
  62. data/js/{controls/datetime → datetime}/datetimevalue/datetimevalue.js +1 -0
  63. data/js/{comm/values/valuematrix → datetime/datetimevalue}/js.inc +0 -0
  64. data/js/{controls/datetime/calendar → datetime/timesheet}/js.inc +0 -0
  65. data/js/{controls/datetime → datetime}/timesheet/themes/default/timesheet.css +0 -0
  66. data/js/{controls/datetime → datetime}/timesheet/themes/default/timesheet.html +0 -0
  67. data/js/{controls/datetime → datetime}/timesheet/timesheet.js +1 -0
  68. data/js/{controls/datetime/datetimevalue → datetime/timesheet_item}/js.inc +0 -0
  69. data/js/{controls/datetime → datetime}/timesheet_item/themes/default/timesheet_item.css +0 -0
  70. data/js/{controls/datetime → datetime}/timesheet_item/themes/default/timesheet_item.html +0 -0
  71. data/js/{controls/datetime → datetime}/timesheet_item/timesheet_item.js +1 -0
  72. data/js/{controls/datetime/timesheet → datetime/timesheet_item_edit}/js.inc +0 -0
  73. data/js/{controls/datetime → datetime}/timesheet_item_edit/timesheet_item_edit.js +1 -1
  74. data/js/foundation/application/application.js +1 -2
  75. data/js/foundation/control/control.js +1 -4
  76. data/js/foundation/control/controldefaults/controldefaults.js +1 -4
  77. data/js/foundation/control/dummyvalue/dummyvalue.js +1 -0
  78. data/js/foundation/control/dyncontrol/dyncontrol.js +1 -2
  79. data/js/foundation/control/eventresponder/eventresponder.js +11 -3
  80. data/js/{controls/datetime/timesheet_item → foundation/control/valuematrix}/js.inc +0 -0
  81. data/js/{comm/values → foundation/control}/valuematrix/valuematrix.js +2 -5
  82. data/js/foundation/control/valueresponder/valueresponder.js +3 -1
  83. data/js/foundation/eventmanager/eventmanager.js +884 -0
  84. data/js/{controls/datetime/timesheet_item_edit → foundation/eventmanager}/js.inc +0 -0
  85. data/js/foundation/geom/point/point.js +2 -2
  86. data/js/foundation/geom/rect/rect.js +1 -0
  87. data/js/foundation/json_renderer/json_renderer.js +2 -0
  88. data/js/foundation/system/system.js +2 -1
  89. data/js/foundation/thememanager/thememanager.js +29 -23
  90. data/js/{controls/lists/checkboxlist → foundation/value}/js.inc +0 -0
  91. data/js/{comm/values → foundation}/value/value.js +1 -0
  92. data/js/foundation/view/markupview/markupview.js +2 -1
  93. data/js/foundation/view/morphanimation/morphanimation.js +1 -0
  94. data/js/foundation/view/view.js +6 -12
  95. data/js/foundation/view/viewdefaults/viewdefaults.js +1 -0
  96. data/js/{controls/lists → lists}/checkboxlist/checkboxlist.js +1 -0
  97. data/js/{controls/lists/listitems → lists/checkboxlist}/js.inc +0 -0
  98. data/js/{controls/lists/radiobuttonlist → lists/listitems}/js.inc +0 -0
  99. data/js/{controls/lists → lists}/listitems/listitems.js +22 -3
  100. data/js/lists/radiobuttonlist/js.inc +0 -0
  101. data/js/{controls/lists → lists}/radiobuttonlist/radiobuttonlist.js +2 -12
  102. data/js/util/reloadapp/js.inc +0 -0
  103. data/js/{comm → util}/reloadapp/reloadapp.js +10 -8
  104. data/js/{comm → util}/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
  105. data/js/{comm → util}/reloadapp/themes/default/reloadapp_warning.png +0 -0
  106. data/js/util/sha/js.inc +0 -0
  107. data/js/{comm → util}/sha/sha.js +27 -33
  108. data/js/views/centerview/centerview.js +33 -3
  109. data/js/views/inlineview/inlineview.js +1 -0
  110. data/js/views/scrollview/scrollview.js +1 -0
  111. data/lib/conf/argv.rb +34 -22
  112. data/lib/conf/default.rb +165 -173
  113. data/lib/daemon/daemon.rb +9 -9
  114. data/lib/daemon/sigcomm.rb +4 -4
  115. data/lib/http/broker.rb +30 -27
  116. data/lib/http/rackup.rb +2 -3
  117. data/lib/http/request.rb +1 -2
  118. data/lib/http/response.rb +10 -10
  119. data/lib/plugins/dependencies.rb +2 -1
  120. data/lib/plugins/gui_plugin.rb +77 -50
  121. data/lib/plugins/guiparser.rb +26 -22
  122. data/lib/plugins/plugin.rb +207 -427
  123. data/lib/plugins/plugin_base.rb +162 -0
  124. data/lib/plugins/plugin_plugins.rb +21 -15
  125. data/lib/plugins/plugin_sqlite_db.rb +45 -20
  126. data/lib/plugins/pluginmanager.rb +10 -5
  127. data/lib/plugins/plugins.rb +65 -31
  128. data/lib/plugins/servlet.rb +74 -26
  129. data/lib/rsence.rb +32 -0
  130. data/lib/session/msg.rb +131 -96
  131. data/lib/session/sessionmanager.rb +5 -4
  132. data/lib/session/sessionstorage.rb +4 -3
  133. data/lib/transporter/transporter.rb +30 -21
  134. data/lib/util/gzstring.rb +4 -2
  135. data/lib/util/ruby19_fixes.rb +18 -0
  136. data/lib/values/hvalue.rb +139 -88
  137. data/lib/values/valuemanager.rb +60 -46
  138. data/plugins/client_pkg/client_pkg.rb +6 -5
  139. data/plugins/client_pkg/lib/client_pkg_build.rb +5 -5
  140. data/plugins/client_pkg/lib/client_pkg_serve.rb +8 -0
  141. data/plugins/index_html/index_html.rb +3 -1
  142. data/plugins/index_html/tmpl/index.html +2 -3
  143. data/plugins/main/js/main.js +84 -0
  144. data/plugins/main/main.rb +54 -27
  145. data/plugins/ticket/lib/common.rb +4 -2
  146. data/plugins/ticket/lib/favicon.rb +3 -2
  147. data/plugins/ticket/lib/file.rb +2 -2
  148. data/plugins/ticket/lib/img.rb +2 -2
  149. data/plugins/ticket/lib/objblob.rb +2 -2
  150. data/plugins/ticket/lib/rsrc.rb +2 -2
  151. data/plugins/ticket/lib/upload.rb +9 -8
  152. data/plugins/ticket/ticket.rb +141 -8
  153. data/setup/welcome/welcome.rb +1 -0
  154. metadata +76 -72
  155. data/lib/plugins/plugin_util.rb +0 -107
  156. data/plugins/index_html/tmpl/startup_index.html +0 -29
  157. data/plugins/main/js/riassence_ns.js +0 -87
  158. data/setup/legacy/info.yaml +0 -18
  159. data/setup/legacy/legacy.rb +0 -17
  160. data/setup/welcome/gui/welcome.yaml +0 -68
  161. data/setup/welcome/text/welcome.html +0 -8
@@ -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
@@ -1,46 +1,41 @@
1
- = Installation
1
+ = Install Guide
2
2
 
3
3
  If you already have a working ruby environment and know what to do, the easiest way is just:
4
4
 
5
- gem install rsence --pre
6
-
5
+ gem install rsence
7
6
 
8
7
  Otherwise, follow these instructions:
9
8
 
10
9
 
11
10
  == 1. System Dependencies
12
11
 
13
- This is a list of system level dependencies. You only need to do this step once.
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.
14
13
 
15
14
  === 1.1. Mac OS X
16
15
 
17
- This applies to all version of Mac OS X
16
+ ==== 1.1.1 Mac OS X 10.6
18
17
 
19
- * Install a recent version of *XCode* from http://developer.apple.com/mac/ to install the essential development tools.
20
- * Install the most recent version of *MacPorts* from http://www.macports.org/
21
- * Proceed with step 1.1.1. *or* 1.1.2. according to your version of Mac OS X
18
+ * Install *XCode*[http://developer.apple.com/mac/] to get the essential development tools, like compilers.
19
+ * Proceed to section 3.0
22
20
 
23
- ==== 1.1.1. Mac OS X 10.4 and 10.5
21
+ ==== 1.1.2. Mac OS X 10.4 and 10.5
24
22
 
25
- This step applies only to Mac OS X 10.4 Tiger and 10.5 Leopard. The bundled ruby build of these versions of Mac OS X is somewhat broken.
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.
26
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
27
  * Install the ruby and rb-rubygems packages using Terminal like this:
28
-
29
- sudo port install ruby
30
- sudo port install rb-rubygems
31
-
32
- ==== 1.1.2 Mac OS X 10.6
33
-
34
- RSence works out-of-the box in Mac OS X 10.6 Snow Leopard.
28
+ sudo port install ruby
29
+ sudo port install rb-rubygems
30
+ * Proceed to section 3.0
35
31
 
36
32
  === 1.2. Debian and Ubuntu Linux
37
33
 
38
34
  This step applies only to Debian, Ubuntu and similar Linux distributions.
39
35
 
40
36
  * Install these packages:
41
-
42
- sudo apt-get install build-essential ruby-full rubygems rake
43
-
37
+ sudo apt-get install build-essential ruby-full rubygems rake
38
+ * Proceed to section 3.0
44
39
 
45
40
  === 1.3. Microsoft Windows
46
41
 
@@ -55,19 +50,17 @@ Windows compatibility has been officially tested on Windows XP SP3 and Windows 7
55
50
  * Associate .rb and .rbw files with this Ruby installation
56
51
  * Download and Install the Development Kit from http://rubyinstaller.org/download.html
57
52
  * Extract the included directories into the directory where you installed ruby.
58
- * It's C:\ruby by default.
53
+ * It's +C:\ruby+ by default.
59
54
 
60
55
  ==== 1.3.2. Install RSence
61
56
  * In the command prompt, run:
62
57
  gem update --system
63
- gem install rsence --pre
58
+ gem install rsence
64
59
  rsence help
65
60
 
66
61
  ==== 1.3.3. Create RSence environment
67
62
 
68
- This assumes you have \my_projects directory.
69
- Also, the 'my_project' project directory is just for illustration purposes.
70
- Use something else instead of those.
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.
71
64
 
72
65
  * In the command prompt, run:
73
66
  cd \my_projects
@@ -76,20 +69,21 @@ Use something else instead of those.
76
69
  * In the command prompt, run:
77
70
  rsence run my_project
78
71
  * Open your web browser in the address as configured.
79
- * If the address is 0.0.0.0, ether 127.0.0.1 instead.
80
- * Using just defaults, the following url should work: http://127.0.0.1:8001/
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
81
74
 
82
75
  ==== 1.3.4. Windows limitations
83
76
  If you install the sqlite dll and the sqlite3-ruby gem, you'll gain persistent sessions and this warning message will disappear:
84
- Warning: Session database is not available. Can't use persistent sessions
85
- It's not, however, depended on 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.
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.
86
80
 
87
- Backgrounding is not yet implemented, because POSIX signals are not fully implemented in windows and backgrounding requires some windows service hooks.
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.
88
82
 
89
- However, if you run RSence under Cygwin, everything should work like on a unix machines.
83
+ However, if you run RSence under Cygwin, everything should work like on a UNIX machines.
90
84
 
91
85
 
92
- === 1.99. Other UNIX / Linux systems:
86
+ === 1.4. Other UNIX / Linux systems:
93
87
 
94
88
  This step applies to systems not listed above.
95
89
 
@@ -97,72 +91,44 @@ You'll have to figure out how to install the dependencies on your own, but gener
97
91
 
98
92
  * Ruby
99
93
  * Version 1.8.7 or newer
100
- * http://ruby-lang.org/
94
+ * http://ruby-lang.org
101
95
  * RubyGems
102
96
  * Ruby package manager
103
97
  * A standard set of compilers and build tools to build the gems with C extensions.
104
98
  * gcc, make etc.
105
99
 
106
100
 
107
- == 2. Ruby Dependencies
101
+ == 2. Ruby Library Dependencies
108
102
 
109
- The 'rsence' gem depends on the dummy 'rsence-deps' gem, which depends on all essential dependencies of RSence.
110
- Optionally, you probably want at a database and a database adapter supported by Sequel: http://sequel.rubyforge.org/
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]
111
105
  This not only enables SessionStorage (persistent sessions between RSence restarts), but some plugins written for RSence depend on at least Sqlite.
112
106
 
113
- === 2.1 Detailed list of ruby dependencies
107
+ === 2.1 Detailed list of ruby libraries used
114
108
 
115
- * *rake*
109
+ * *rake*[http://rake.rubyforge.org]
116
110
  * Ruby build tool
117
111
  * Not necessarily required via ruby gems, if installed via a system-level package
118
- * http://rake.rubyforge.org/
119
- * *rack*
112
+ * *rack*[http://rack.rubyforge.org]
120
113
  * Abstract ruby web server interface
121
- * http://rack.rubyforge.org/
122
- * Additionally, you need a rack handler, one of the following is suggested:
123
- * *unicorn*
124
- * Suggested for production deployment
125
- * Use Apache, Nginx or similar front-ends for virtual hosts, SSL and such.
126
- * http://unicorn.bogomips.org/
127
- * *mongrel*
128
- * Suggested for development use.
129
- * Solid
130
- * Pretty fast
131
- * Reliable
132
- * http://github.com/fauna/mongrel
133
- * *thin*
134
- * Quick
135
- * Not as stable or reliable as mongrel (not at least yet)
136
- * http://code.macournoyer.com/thin/
137
- * *webrick*
138
- * No installation needed, part of the standard library
139
- * Very slow
140
- * Use as last resort
141
- * *json*
142
- * Library for JSON - Ruby - JSON object conversion.
143
- * http://flori.github.com/json/
144
- * http://json.org/
145
- * *yaml*
146
- * Library for handling YAML files
147
- * Part of the standard library of Ruby 1.9 and newer
148
- * http://yaml4r.sourceforge.net/doc/
149
- * http://www.yaml.org/
150
- * *jsmin_c*
151
- * Javascript whitespace removal library
152
- * *jscompress*
153
- * Javascript compression and obfuscation library
154
- * *html_min*
155
- * HTML whitespace removal library
156
- * *cssmin*
157
- * CSS whitespace removal library
158
- * *sequel*
159
- * http://www.sequel.org/
160
- * Additionally, you need a sequel driver for your database
161
- * *sqlite3-ruby*
162
- * Lightweight SQL library
163
- * Other database adapters compatible with sequel are fine. Just configure your setup accordingly.
164
- * *highline*
165
- * Used by the initenv command.
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.
166
132
  * rmagick
167
133
  * Optional, but suggested, because RSence has RMagick -savvy features, like serving RMagick objects using tickets that are rendered only when requested.
168
134
  * Some plugins depend on it directly.
@@ -181,7 +147,7 @@ Even if RubyGems is up-to-date, ensure your installed gems are up-to-date, some
181
147
  === 3.1. Install RSence
182
148
 
183
149
  This will install RSence via RubyGems, the preferred method. All dependencies are installed too, except for the ones you already might have installed.
184
- gem install rsence --pre
150
+ gem install rsence
185
151
 
186
152
  Optionally, you might want to contribute to RSence development, just clone or fork the GIT repository on Github:
187
153
  * http://github.com/rsence/rsence
File without changes
@@ -1,73 +1,76 @@
1
1
 
2
- = RSence 2.0.0.x.pre 2010-??-??
3
-
4
- http://rsence.org/
2
+ = RSence-2.0.0[http://rsence.org/]
5
3
 
6
4
  == Introduction
7
5
 
8
- RSence is a RIA framework designed for responsive GUI applications on the web.
9
-
10
- RSence is a flexible and high-performance RIA framework aimed on building responsive, scalable and over-all as high-performance GUI Applications as possible with the chosen technologies.
11
-
12
- RSence includes a server for backend tasks and client suppert as well as a Javascript GUI framework to provide responsive user interfaces.
6
+ RSence is a RIA framework designed for responsive GUI applications on the web; it's implemented as a hybrid Ruby - Javascript system. The server is written in Ruby and C. Applications are installed as plugin bundles. The GUI framework is written in Javascript; it doesn't strictly require the server, but has extensive transport support with automatic data synchronization with the server. User interfaces are usually described in structured view trees represented by YAML data structures, which are automatically converted for rendering in the client.
13
7
 
14
- The purpose of the server is to provide a highly optimized yet easy to use Ruby framework for writing applications containing all their assets needed as self-contained plugins bundles. The bundles enable easy distribution and maintenance of RSence projects.
8
+ Javascript knowledge is required only when creating custom client-driven functionality; basic understanding of the YAML GUITree structures is enough in most cases. Likewise, no Ruby knowledge is needed if you want to create stand-alone Javascript applitations. Javascript component themes are easily created with just basic web designer skills. Data API's are easy to link no matter what language is used to create them. Skills in your organization are easily combined for various parts of larger applications.
15
9
 
16
- RSence is not primarily targeted as an engine for plain old html web sites, there are plenty of other tools for that purpose and some of them are easily integrated into RSence.
10
+ RSence is not primarily targeted as an engine for plain old html web sites, there are plenty of other tools for that purpose and RSence is easily integrated with them in various ways.
17
11
 
18
12
 
19
- == Installation (pre-release):
13
+ == Installing
14
+ Just run this command in the shell, if you have ruby installed. Otherwise, read the {file:INSTALL Install Guide} for full installation instructions.
15
+ gem install rsence
20
16
 
21
- gem install rsence --pre
22
17
 
23
- == Setting up a project
18
+ == Initializing a new project
24
19
 
25
- rsence initenv /path/of/project
20
+ The +initenv+ command will cretate a directory called `env_dir` in this example. It asks a few questions about the environment. Use a path and project name that matches your purposes.
21
+ rsence initenv /home/me/rsence_projects/env_dir
26
22
 
27
- == Project anatomy:
28
23
 
29
- The expected structure of a project environment (where 'project_directory'
30
- is the directory of your project) is:
24
+ == Project environment structure
31
25
 
32
- [dir] project_directory :: The directory of your project.
33
- [dir] conf :: The directory of config files.
34
- [file] config.yaml :: The config file to load by default.
35
- [dir] var :: Directory containing various runtime files.
36
- [dir] run :: Directory containing PID files.
37
- [dir] log :: Directory containing log files.
38
- [dir] db :: Directory containing database files.
39
- [dir] plugins :: Directory containing installed plugins.
26
+ ==== The basic structure of a project environment (where `env_dir` is the directory of your project) is:
40
27
 
41
- The 'config.yaml' file contains patches specific to your project.
28
+ *dir* :: +env_dir/+ :: The environment directory of your project.
29
+ *file* :: +env_dir/conf/config.yaml+ :: The configuration file to load by default. It extends the {file:default_conf default configuration}.
30
+ *dir* :: +env_dir/run/+ :: This default directory for runtime files, like the PID file of the running rsence instance.
31
+ *dir* :: +env_dir/log/+ :: The default directory for log files. +rsence.stderr+ contains error output of the RSence server daemon and installed plugins, including warnings. +rsence.stdout+ contains the standard output of the RSence server daemon and installed plugins.
32
+ *dir* :: +env_dir/db/+ :: The default directory for database files. +ses.db+ is the standard SQLite session database, if enabled.
33
+ *dir* :: +env_dir/plugins/+ :: The default directory for installed plugin bundles. A newly initialized environment includes the +welcome+ plugin. Feel free to remove it.
34
+ *file* :: +env_dir/VERSION+ :: The version of RSence used to initialize the environment. Reserved for future upgrade usage.
35
+ *file* :: +env_dir/README+ :: A README file template. Describes what the `env_dir` is about. Edit it to match your project.
42
36
 
37
+ === Configuration file loading order
43
38
  The configuration files are loaded and applied in this order:
44
- 1: [rsence_install_path]/conf/default_conf.yaml
45
- 2: [rsence_install_path]/conf/local_conf.yaml
46
- 3: /etc/rsence/config.yaml
47
- 4: ~/.rsence/config.yaml
48
- 5: [project_directory]/conf/config.yaml
49
- 6: Any files given using --conf parameters, in order of occurrence.
50
-
51
- The plugins directory contains the plugins installed in the project.
39
+ 1. *rsence_gem_path*/conf/default_conf.yaml
40
+ 2. *rsence_gem_path*/conf/local_conf.yaml
41
+ 3. /etc/rsence/config.yaml
42
+ 4. ~/.rsence/config.yaml
43
+ 5. *env_dir*/conf/config.yaml
44
+ 6. Any files given using +--conf+ arguments, in order of occurrence.
45
+
46
+ Use the additional configuration files to match system- or user-specific configurations that are common for all projects.
52
47
 
53
48
  == Running a project
54
49
 
55
- Each command-line tool command takes a number of options, the path defaults to the current working directory.
50
+ Each command-line tool command takes a number of options, the +env_dir+ argument defaults to the current working directory, otherwise specify the relative or full path to your project environment.
51
+
52
+ ==== Some common options are:
53
+ +-a+:: Automatic updates. RSence reloads automatically changed plugin bundles and client libraries.
54
+ +-f+:: Doesn't redirect the standard output into a log file. Useful for development when combined with the +run+ command.
55
+ +-d+:: Debug mode. Like +-a+ but much more verbose and doesn't obfuscate client data.
56
56
 
57
- === Starting RSence in foreground
58
- rsence run /path/of/project
57
+ === Running RSence in foreground
58
+ rsence run [options] [env_dir]
59
59
 
60
60
  === Starting the RSence daemon
61
- rsence start /path/of/project
61
+ rsence start [options] [env_dir]
62
62
 
63
63
  === Stopping the RSence daemon
64
- rsence stop /path/of/project
64
+ rsence stop [options] [env_dir]
65
65
 
66
66
  === Restarting the RSence daemon
67
- rsence restart /path/of/project
67
+ rsence restart [options] [env_dir]
68
68
 
69
69
  === Checking if project is running
70
- rsence status /path/of/project
70
+ rsence status [options] [env_dir]
71
+
72
+ === Example:
73
+ rsence run -af /home/me/projects/hello_world
71
74
 
72
75
  == RSence command-line tool help
73
76
 
@@ -77,19 +80,19 @@ Each command-line tool command takes a number of options, the path defaults to t
77
80
  === Getting detailed help of a command
78
81
  rsence help <command>
79
82
 
80
- Example:
83
+ === Example:
81
84
 
82
85
  rsence help run
83
86
 
84
87
 
85
- For more detailed installation and usage instructions, read the INSTALL.rdoc document.
88
+ For more detailed installation and usage instructions, read the {file:INSTALL Install Guide} document.
86
89
 
87
- === Licensing:
88
- * Free: *GPL*
89
- * Alternative licensing queries for commercial interests are available via http://riassence.com/ and sales@riassence.com
90
+ === Licensing and commercial support options
91
+ * {file:LICENSE.txt *GPL*} version 3 by default.
92
+ * Riassence[http://riassence.com/] Inc. provides commercial support, custom licensing arrangements and various other services.
90
93
 
91
- === Community support:
92
- * Web: http://rsence.org/
93
- * IRC chat: #rsence on the IRCNet and FreeNode networks
94
+ === Community support
95
+ * http://rsence.org
96
+ * IRC channel +#rsence+ on the IRCNet and FreeNode networks
94
97
 
95
98
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0.10.pre
1
+ 2.0.0.11
data/bin/rsence CHANGED
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- #--
3
2
  ## RSence
4
3
  # Copyright 2010 Riassence Inc.
5
4
  # http://riassence.com/
@@ -7,19 +6,18 @@
7
6
  # You should have received a copy of the GNU General Public License along
8
7
  # with this software package. If not, contact licensing@riassence.com
9
8
  ##
10
- #++
9
+
11
10
 
12
11
  require 'profile' if ARGV.include?('--profile')
13
12
 
14
- ## Auto-construct paths using this file as the waypoint
13
+ # @private Auto-construct paths using this file as the waypoint
15
14
  SERVER_PATH = File.split( File.expand_path(File.dirname(__FILE__)) )[0]
16
15
 
17
- ## Include server & lib in the search path
16
+ # Include server & lib in the search path
18
17
  $LOAD_PATH << SERVER_PATH
19
18
  $LOAD_PATH << File.join( SERVER_PATH, 'lib' )
20
19
 
21
- # Requires the ARGVParser that functions as the command-line user interface.
22
- require 'conf/argv'
20
+ require 'rsence'
23
21
 
24
22
  # Start RSence, if the command supplied was one of the ones
25
23
  # triggering a start and the environment is ok.
@@ -1,336 +1,345 @@
1
-
2
- #### Server configuration
3
- #
4
- # The :base_url specifies the prefix for all default http responders.
5
- :base_url: '/'
6
- #
7
- # This setting defines if requests should be gzip-compressed or not.
8
- # This is a trade-off between cpu cycles used and network bandwidth used.
9
- # It's generally a good idea to leave it as false (gzipping enabled).
10
- :no_gzip: false
11
- #
12
- # Enabling this appends all msg.reply call output to stdout
13
- :trace: false
14
- #
15
- # The settings for the index_html plugin
16
- :index_html:
17
- #
18
- # HTML template file path relative to the plugin dir
19
- :index_tmpl: 'tmpl/index.html'
20
- #
21
- # The index.html page <title>
22
- :title: 'RSence'
23
- #
24
- :noscript: '<h1>Sorry!</h1><p>This site requires a Javascript -capable web browser.</p><p>Please enable Javascript or upgrade your browser.</p>'
25
- #
26
- :instance: null
1
+ #### Server configuration
27
2
  #
28
- # A list of javascript dependencies to include in the html
29
- :deps: [ ]
30
- #
31
- # The settings for the main plugin
32
- :main_plugin:
3
+ # The :base_url specifies the prefix for all default http responders.
4
+ :base_url: '/'
33
5
  #
34
- # The background color of the web page when loading is done
35
- :bg_color: '#ffffff'
36
- #
37
- # how many milliseconds to wait before doing an idle poll
38
- :server_poll_interval: 2000 # 2 seconds
39
- #
40
- # Switches on debug-mode:
41
- # - Generates more output
42
- # - Each time /hello is post-requested:
43
- # - Plugins are reloaded from source
44
- # - GZFiles are reloaded (if more recent than in memory)
45
- :debug_mode: false
46
- #
47
- # Web server-related settings:
48
- :http_server:
6
+ # This setting defines if requests should be gzip-compressed or not.
7
+ # This is a trade-off between cpu cycles used and network bandwidth used.
8
+ # It's generally a good idea to leave it as false (gzipping enabled).
9
+ :no_gzip: false
49
10
  #
50
- # Simulate network latency. Good for testing how your
51
- # app behaves with laggy connections.
52
- :latency: 0
11
+ # Enabling this appends all msg.reply call output to stdout
12
+ :trace: false
53
13
  #
54
- # HTTP Port number to listen to.
55
- :port: 8001
14
+ # The settings for the index_html plugin
15
+ :index_html:
16
+ #
17
+ # HTML template file path relative to the plugin dir
18
+ :index_tmpl: 'tmpl/index.html'
19
+ #
20
+ # The index.html page <title>
21
+ :title: 'RSence'
22
+ #
23
+ :noscript: '<h1>Sorry!</h1><p>This site requires a Javascript -capable web browser.</p><p>Please enable Javascript or upgrade your browser.</p>'
24
+ #
25
+ :instance: null
26
+ #
27
+ # A list of javascript dependencies to include in the html
28
+ :deps: [ ]
56
29
  #
57
- # Bind this ip address ('0.0.0.0' means all)
58
- :bind_address: '0.0.0.0'
30
+ # The settings for the main plugin
31
+ :main_plugin:
32
+ #
33
+ # The background color of the web page when loading is done
34
+ :bg_color: '#ffffff'
35
+ #
36
+ # how many milliseconds to wait before doing an idle poll
37
+ :server_poll_interval: 2000 # 2 seconds
59
38
  #
60
- # Rack handler to use, defaults to thin
61
- :rack_require: mongrel
62
- #
63
- # When enabled, sets http cache headers
64
- # to cache content as long as possible.
65
- :cache_maximize: true
66
- #
67
- # When :cache_maximize is enabled,
68
- # this is the time (in seconds) the cached
69
- # content will expire in
70
- :cache_expire: 14515200 # 6 months
71
- #
72
- # Paths to scan for available plugins
73
- :plugin_paths: [ ]
74
- #
75
- # List of files that include strings
76
- :string_files: [
77
- "conf/default_strings.yaml"
78
- ]
79
- #
80
- # Transporter settings:
81
- :transporter_conf:
39
+ # Switches on debug-mode:
40
+ # - Generates more output
41
+ # - Each time /hello is post-requested:
42
+ # - Plugins are reloaded from source
43
+ # - GZFiles are reloaded (if more recent than in memory)
44
+ :debug_mode: false
82
45
  #
83
- # The HApplication priority of the client, when actively polling.
84
- :client_poll_priority: 60
85
- #
86
- #
87
- # Session-related settings
88
- :session_conf:
46
+ # Web server-related settings:
47
+ :http_server:
48
+ #
49
+ # Simulate network latency. Good for testing how your
50
+ # app behaves with laggy connections.
51
+ :latency: 0
52
+ #
53
+ # HTTP Port number to listen to.
54
+ :port: 8001
55
+ #
56
+ # Bind this ip address ('0.0.0.0' means all)
57
+ :bind_address: '0.0.0.0'
58
+ #
59
+ # Rack handler to use, defaults to thin
60
+ :rack_require: mongrel
89
61
  #
90
- # Enable cookie-based sessions
91
- :session_cookies: true
62
+ # When enabled, sets http cache headers
63
+ # to cache content as long as possible.
64
+ :cache_maximize: true
92
65
  #
93
- # Trusting the cookies means ignoring the client protocol session key exchange.
94
- # Enabled by default, because in most cases, extreme security measures aren't necessary
95
- # and the drawback of having an invalid session because a tcp packet got lost isn't
96
- # tolerable as a default setting.
97
- :trust_cookies: true
66
+ # When :cache_maximize is enabled,
67
+ # this is the time (in seconds) the cached
68
+ # content will expire in
69
+ :cache_expire: 14515200 # 6 months
98
70
  #
99
- # The comment string in the session cookie
100
- :ses_cookie_comment: "RSence Session Key"
71
+ # Paths to scan for available plugins
72
+ :plugin_paths: [ ]
101
73
  #
102
- # Disposable keys. When enabled, runs in a more secure way and changes the session key on each xhr.
103
- :disposable_keys: true
74
+ # List of files that include strings
75
+ :string_files: [
76
+ "conf/default_strings.yaml"
77
+ ]
104
78
  #
105
- # Timeout controls how long a session is valid
106
- :timeout_secs: 900 # 15 minutes
79
+ # Transporter settings:
80
+ :transporter_conf:
81
+ #
82
+ # The HApplication priority of the client, when actively polling.
83
+ :client_poll_priority: 60
107
84
  #
108
- # Key length controls the length of the random-part of the key.
109
- :key_length: 12
110
85
  #
111
- # Cookie keys are this many times longer than xhr keys
112
- :cookie_key_multiplier: 2
86
+ # Session-related settings
87
+ :session_conf:
88
+ #
89
+ # Enable cookie-based sessions
90
+ :session_cookies: true
91
+ #
92
+ # Trusting the cookies means ignoring the client protocol session key exchange.
93
+ # Enabled by default, because in most cases, extreme security measures aren't necessary
94
+ # and the drawback of having an invalid session because a tcp packet got lost isn't
95
+ # tolerable as a default setting.
96
+ :trust_cookies: true
97
+ #
98
+ # The comment string in the session cookie
99
+ :ses_cookie_comment: "RSence Session Key"
100
+ #
101
+ # Disposable keys. When enabled, runs in a more secure way and changes the session key on each xhr.
102
+ :disposable_keys: true
103
+ #
104
+ # Timeout controls how long a session is valid
105
+ :timeout_secs: 900 # 15 minutes
106
+ #
107
+ # Key length controls the length of the random-part of the key.
108
+ :key_length: 12
109
+ #
110
+ # Cookie keys are this many times longer than xhr keys
111
+ :cookie_key_multiplier: 2
112
+ #
113
+ #
114
+ # When enabled, deletes all old sessions upon server startup.
115
+ # If the --reset-sessions command-line switch is provided,
116
+ # switches this one to true.
117
+ :reset_sessions: false
118
+ #
119
+ # When this is enabled, multiple sessions are allowed for each client
120
+ # When it's enabled, the old session is left intact and a new one is
121
+ # created by making a clone of the last session.
122
+ # If enabled, also check the maximum number of clones allowed in
123
+ # :session_cookie_max_clones
124
+ # Defaults to false, will be the default in a future version.
125
+ :clone_cookie_sessions: true
126
+ #
127
+ # This limits the amount of cloned targets of a source session.
128
+ # NOTE: This has no effect yet, the code is not implemented.
129
+ :max_cloned_sessions: 10
130
+ #
131
+ # This option overrides the default session timeout.
132
+ # Don't set this to less than the expected poll interval,
133
+ # otherwise the session might expire before the previous
134
+ # (cloned) session re-connects the next time.
135
+ # A safe value for a 60 second poll interval is 120 (default).
136
+ :cloned_session_expires_in: 120
137
+ #
138
+ # Message strings
139
+ :messages:
140
+ #
141
+ # if the session is invalid for one reason or another, display this:
142
+ :invalid_session:
143
+ :title: 'Invalid Session'
144
+ :descr: 'Your session is invalid. Please reload the page to continue.'
145
+ :uri: '/'
113
146
  #
147
+ # Database configuration
148
+ :database:
149
+ # Session database storage string. Leave empty here to enable the wizard for storage.
150
+ :ses_db: 'sqlite://db/ses.db'
151
+
114
152
  #
115
- # When enabled, deletes all old sessions upon server startup.
116
- # If the --reset-sessions command-line switch is provided,
117
- # switches this one to true.
118
- :reset_sessions: false
153
+ # ValueManager settings
154
+ :values_conf:
155
+ # Key length controls the length of the random-part of the key.
156
+ :key_length: 8
157
+ #
158
+ # Disposable keys, when enabled, changes the value id on each session restoration
159
+ :disposable_keys: true
119
160
  #
120
- # When this is enabled, multiple sessions are allowed for each client
121
- # When it's enabled, the old session is left intact and a new one is
122
- # created by making a clone of the last session.
123
- # If enabled, also check the maximum number of clones allowed in
124
- # :session_cookie_max_clones
125
- # Defaults to false, will be the default in a future version.
126
- :clone_cookie_sessions: true
161
+ # Daemon helper files, leave empty for defaults.
162
+ :daemon: {
163
+ #:pid_fn: /var/run/rsence.pid
164
+ #:log_fn: /var/log/rsence.log
165
+ }
127
166
  #
128
- # This limits the amount of cloned targets of a source session.
129
- # NOTE: This has no effect yet, the code is not implemented.
130
- :max_cloned_sessions: 10
167
+ # Entered by code, empty container
168
+ :broker_urls: { }
169
+
170
+
171
+ #### Client package build configuration
131
172
  #
132
- # This option overrides the default session timeout.
133
- # Don't set this to less than the expected poll interval,
134
- # otherwise the session might expire before the previous
135
- # (cloned) session re-connects the next time.
136
- # A safe value for a 60 second poll interval is 120 (default).
137
- :cloned_session_expires_in: 120
138
173
  #
139
- # Message strings
140
- :messages:
141
- #
142
- # if the session is invalid for one reason or another, display this:
143
- :invalid_session:
144
- :title: 'Invalid Session'
145
- :descr: 'Your session is invalid. Please reload the page to continue.'
146
- :uri: '/'
147
- #
148
- # Database configuration
149
- :database:
150
- # Session database storage string. Leave empty here to enable the wizard for storage.
151
- :ses_db: 'sqlite://db/ses.db'
174
+ :client_pkg:
152
175
 
153
- #
154
- # ValueManager settings
155
- :values_conf:
156
- # Key length controls the length of the random-part of the key.
157
- :key_length: 8
158
- #
159
- # Disposable keys, when enabled, changes the value id on each session restoration
160
- :disposable_keys: true
161
- #
162
- # Daemon helper files, leave empty for defaults.
163
- :daemon: {
164
- #:pid_fn: /var/run/rsence.pid
165
- #:log_fn: /var/log/rsence.log
166
- }
167
- #
168
- # Entered by code, empty container
169
- :broker_urls: { }
176
+ # Source directories to scan
177
+ :src_dirs: []
170
178
 
179
+ # RSence Client Framework
180
+ #- js
171
181
 
172
- #### Client package build configuration
173
- #
174
- #
175
- :client_pkg:
176
-
177
- # Source directories to scan
178
- :src_dirs: []
179
-
180
- # RSence Client Framework
181
- #- js
182
-
183
- # How to include your own custom js package directory:
184
- # - /home/me/code/extra_components
185
-
186
- # List of theme names to include and pack
187
- :theme_names:
188
- - default # Makes default_theme.js containing css and html templates
189
- - bright # Makes bright_theme.js containing css and html templates
190
-
191
- # List of packages to build
192
- :packages:
193
-
194
- # The core package, loaded by default using index_html
195
- core:
196
- - class # HClass
197
- - elem # ELEM
198
- - event # EVENT
199
- - sha # SHAClass
200
- - system # HSystem
201
- - valueresponder # HValueResponder
202
- - application # HApplication
203
- - comm # COMM
204
- - queue # COMM.Queue
205
- - session # COMM.Session
206
- - transporter # COMM.Transporter
207
- - sessionwatcher # COMM.SessionWatcher
208
- - urlresponder # COMM.URLResponder
209
- - autosync # ( automatic sync setup )
210
- - values # COMM.Values
211
- - value # HValue
212
- - jsloader # COMM.JSLoader
213
- - json_renderer # COMM.JSONRenderer
214
- - valuematrix # HValueMatrixInterface & HValueMatrix
215
- - point # HPoint
216
- - rect # HRect
217
- - thememanager # HThemeManager
218
- - markupview # HMarkupView
219
- - morphanimation # HMorphAnimation
220
- - viewdefaults # HViewDefaults
221
- - view # HView
222
- - eventresponder # HEventResponder
223
- - dummyvalue # HDummyValue
224
- - controldefaults # HControlDefaults
225
- - control # HControl
226
- - dyncontrol # HDynControl
227
- - centerview # HCenterView
228
- - scrollview # HScrollView
229
- - inlineview # HInlineView
230
-
231
- # The default collection of simple control widgets (components)
232
- controls:
233
- - button # HButton & HClickValueButton
234
- - checkbox # HCheckbox
235
- - radiobutton # HRadioButton
236
- - stringview # HStringView
237
- - textcontrol # HTextControl
238
- - passwordcontrol # HPasswordControl
239
- - textarea # HTextArea
240
- - uploader # HUploader
241
- - slider # HSlider
242
- - vslider # HVSlider
243
- - progressbar # HProgressBar
244
- - progressindicator # HProgressIndicator
245
- - imageview # HImageView
246
- - stepper # HStepper
247
- - validatorview # HValidatorView
248
- - window # HWindow
249
- - tab # HTab & HTabView & HTabItem
250
- - sheet # HSheet
251
- - alert_sheet # HAlertSheet
252
- - confirm_sheet # HConfirmSheet
253
-
254
- # Server error message application ( the Reload / Reset Session dialog )
255
- servermessage:
256
- - reloadapp # ReloadApp
257
-
258
- # Special package for Internet Explorer 6.0
259
- iefix:
260
- - iefix
261
-
262
- # Date and time -related control widgets (components)
263
- # These are not complete; they are still under development
264
- # and will be included in the controls package when finalized.
265
- datetime:
266
- - datetimevalue # HDateTime
267
- - calendar # HCalendar
268
- - timesheet # HTimeSheet
269
- - timesheet_item # HTimeSheetItem
270
- - timesheet_item_edit # HTimeSheetItemEditor
271
-
272
- # List related control widgets (components)
273
- # These are not complete; they are still under development
274
- # and will be included in the controls package when finalized.
275
- lists:
276
- - listitems # HListItems
277
- - checkboxlist # HCheckboxList
278
- - radiobuttonlist # HRadiobuttonList
279
-
280
- # Special packages that include other packages (not used currently)
281
- :compound_packages:
282
- allinone:
283
- - core
284
- - iefix
285
- - default_theme
286
- - bright_theme
287
- - controls
288
- - lists
289
- - datetime
290
-
291
- # List of variables and other names beginning
292
- # with a underscore that should not be obfuscated
293
- :reserved_names:
294
- - _ID
295
- - _WIDTH
296
- - _width
297
- - _HEIGHT
298
- - _height
299
- - _
300
-
301
- # List of file extensions considered graphics image types.
302
- # Used for theme graphics inclusion.
303
- :gfx_formats:
304
- - .jpg
305
- - .gif
306
- - .png
307
- - .swf
308
- - .svg
309
- - .pdf
310
-
311
- # The name of the include file
312
- :js_inc: js.inc
313
-
314
- # If disabled, makes packages out of single source bundles automatically
315
- :dont_pack_undefined: true
182
+ # How to include your own custom js package directory:
183
+ # - /home/me/code/extra_components
184
+
185
+ # List of theme names to include and pack
186
+ :theme_names:
187
+ - default # Makes default_theme.js containing css and html templates
188
+ - bright # Makes bright_theme.js containing css and html templates
189
+
190
+ # List of packages to build
191
+ :packages:
192
+
193
+ # The core package, loaded by default using a script tag in index_html
194
+ core:
316
195
 
317
- # Replacement prefix for obfuscated names
318
- :repl_prefix: _
196
+ # RSence.*
197
+ - rsence_ns
319
198
 
320
- # If enabled, doesn't obfuscate code (useful for debugging)
321
- :no_obfuscation: false
199
+ # RSence.Core
200
+ - class # HClass
201
+ - elem # ELEM
202
+ - event # Event
322
203
 
323
- # If enabled, doesn't remove whitespace (useful for debugging)
324
- :no_whitespace_removal: false
204
+ # RSence.Util
205
+ - sha # SHA
325
206
 
326
- # If enabled, doesn't make gzipped packages
327
- :no_gzip: false
207
+ # RSence.Foundation
208
+ - system # HSystem
209
+ - valueresponder # HValueResponder
210
+ - application # HApplication
328
211
 
329
- # The strategy for gzip, a number between 0 and 9
330
- # - 0 means largest size, but fast compression
331
- # - 9 means smallest size, but slow compression
332
- # - any number in between is a compromise
333
- :gz_strategy: 9
212
+ # COMM
213
+ - comm # COMM
214
+ - queue # COMM.Queue
215
+ - session # COMM.Session
216
+ - transporter # COMM.Transporter
217
+ - sessionwatcher # COMM.SessionWatcher
218
+ - urlresponder # COMM.URLResponder
219
+ - autosync # ( automatic sync setup )
220
+ - values # COMM.Values
221
+ - value # HValue
222
+ - jsloader # COMM.JSLoader
223
+ - json_renderer # COMM.JSONRenderer
224
+ - valuematrix # HValueMatrixInterface & HValueMatrix
225
+ - point # HPoint
226
+ - rect # HRect
227
+ - thememanager # HThemeManager
228
+ - markupview # HMarkupView
229
+ - morphanimation # HMorphAnimation
230
+ - viewdefaults # HViewDefaults
231
+ - view # HView
232
+ - eventresponder # HEventResponder
233
+ - dummyvalue # HDummyValue
234
+ - eventmanager # EVENT
235
+ - controldefaults # HControlDefaults
236
+ - control # HControl
237
+ - dyncontrol # HDynControl
238
+ - centerview # HCenterView
239
+ - scrollview # HScrollView
240
+ - inlineview # HInlineView
241
+
242
+ # The default collection of simple control widgets (components)
243
+ controls:
244
+ - button # HButton & HClickValueButton
245
+ - checkbox # HCheckbox
246
+ - radiobutton # HRadioButton
247
+ - stringview # HStringView
248
+ - textcontrol # HTextControl
249
+ - passwordcontrol # HPasswordControl
250
+ - textarea # HTextArea
251
+ - uploader # HUploader
252
+ - slider # HSlider
253
+ - vslider # HVSlider
254
+ - progressbar # HProgressBar
255
+ - progressindicator # HProgressIndicator
256
+ - imageview # HImageView
257
+ - stepper # HStepper
258
+ - validatorview # HValidatorView
259
+ - window # HWindow
260
+ - tab # HTab & HTabView & HTabItem
261
+ - sheet # HSheet
262
+ - alert_sheet # HAlertSheet
263
+ - confirm_sheet # HConfirmSheet
264
+
265
+ # Server error message application ( the Reload / Reset Session dialog )
266
+ servermessage:
267
+ - reloadapp # ReloadApp
268
+
269
+ # Special package for Internet Explorer 6.0
270
+ iefix:
271
+ - iefix
272
+
273
+ # Date and time -related control widgets (components)
274
+ # These are not complete; they are still under development
275
+ # and will be included in the controls package when finalized.
276
+ datetime:
277
+ - datetimevalue # HDateTime
278
+ - calendar # HCalendar
279
+ - timesheet # HTimeSheet
280
+ - timesheet_item # HTimeSheetItem
281
+ - timesheet_item_edit # HTimeSheetItemEditor
282
+
283
+ # List related control widgets (components)
284
+ # These are not complete; they are still under development
285
+ # and will be included in the controls package when finalized.
286
+ lists:
287
+ - listitems # HListItems
288
+ - checkboxlist # HCheckboxList
289
+ - radiobuttonlist # HRadiobuttonList
290
+
291
+ # Special packages that include other packages (not used currently)
292
+ :compound_packages:
293
+ allinone:
294
+ - core
295
+ - default_theme
296
+ - controls
297
+ - lists
298
+ - datetime
299
+
300
+ # List of variables and other names beginning
301
+ # with a underscore that should not be obfuscated
302
+ :reserved_names:
303
+ - _ID
304
+ - _WIDTH
305
+ - _width
306
+ - _HEIGHT
307
+ - _height
308
+ - _
309
+
310
+ # List of file extensions considered graphics image types.
311
+ # Used for theme graphics inclusion.
312
+ :gfx_formats:
313
+ - .jpg
314
+ - .gif
315
+ - .png
316
+ - .swf
317
+ - .svg
318
+ - .pdf
319
+
320
+ # The name of the include file
321
+ :js_inc: js.inc
322
+
323
+ # If disabled, makes packages out of single source bundles automatically
324
+ :dont_pack_undefined: true
325
+
326
+ # Replacement prefix for obfuscated names
327
+ :repl_prefix: _
328
+
329
+ # If enabled, doesn't obfuscate code (useful for debugging)
330
+ :no_obfuscation: false
331
+
332
+ # If enabled, doesn't remove whitespace (useful for debugging)
333
+ :no_whitespace_removal: false
334
+
335
+ # If enabled, doesn't make gzipped packages
336
+ :no_gzip: false
337
+
338
+ # The strategy for gzip, a number between 0 and 9
339
+ # - 0 means largest size, but fast compression
340
+ # - 9 means smallest size, but slow compression
341
+ # - any number in between is a compromise
342
+ :gz_strategy: 9
334
343
 
335
344
 
336
345