webroar 0.6.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (402) hide show
  1. data/CHANGELOG +7 -0
  2. data/README +1 -1
  3. data/doc/user-guide.html +125 -85
  4. data/doc/user-guide.txt +2 -2
  5. data/lib/constant.rb +23 -16
  6. data/lib/db_connect.rb +2 -3
  7. data/lib/installer.rb +17 -10
  8. data/lib/user_interaction.rb +21 -10
  9. data/lib/webroar_command.rb +21 -23
  10. data/src/admin_panel/Gemfile +8 -0
  11. data/src/admin_panel/Rakefile +2 -5
  12. data/src/admin_panel/app/controllers/application_controller.rb +1 -1
  13. data/src/admin_panel/app/controllers/exceptions_controller.rb +25 -26
  14. data/src/admin_panel/app/controllers/graph_controller.rb +2 -1
  15. data/src/admin_panel/app/helpers/admin_helper.rb +1 -1
  16. data/src/admin_panel/app/{models → mailers}/mailer.rb +5 -8
  17. data/src/admin_panel/app/models/app.rb +1 -1
  18. data/src/admin_panel/app/models/app_exception.rb +15 -11
  19. data/src/admin_panel/app/models/app_time_sample.rb +40 -10
  20. data/src/admin_panel/app/models/application_specification.rb +71 -41
  21. data/src/admin_panel/app/models/resource_usage.rb +76 -55
  22. data/src/admin_panel/app/models/url_breakup_time_sample.rb +6 -11
  23. data/src/admin_panel/app/models/url_time_sample.rb +57 -13
  24. data/src/admin_panel/app/views/admin/_application_table.html.erb +5 -5
  25. data/src/admin_panel/app/views/admin/_feedback_partial.html.erb +4 -4
  26. data/src/admin_panel/app/views/admin/_report_bug_partial.html.erb +5 -5
  27. data/src/admin_panel/app/views/admin/change_password_form.html.erb +3 -3
  28. data/src/admin_panel/app/views/admin/configuration.html.erb +6 -6
  29. data/src/admin_panel/app/views/admin/home.html.erb +4 -4
  30. data/src/admin_panel/app/views/admin/index.html.erb +5 -5
  31. data/src/admin_panel/app/views/application_specification/_application_specification_form.html.erb +15 -6
  32. data/src/admin_panel/app/views/exceptions/_add_and_list_exception_classes.html.erb +7 -6
  33. data/src/admin_panel/app/views/exceptions/_exception_backtrace_partial.html.erb +1 -1
  34. data/src/admin_panel/app/views/exceptions/_exception_environment_partial.html.erb +30 -30
  35. data/src/admin_panel/app/views/exceptions/_exception_list_partial.html.erb +11 -11
  36. data/src/admin_panel/app/views/exceptions/_show.html.erb +8 -8
  37. data/src/admin_panel/app/views/exceptions/index.html.erb +0 -1
  38. data/src/admin_panel/app/views/graph/_get_database_data.html.erb +1 -1
  39. data/src/admin_panel/app/views/graph/_get_resource_usage_data_app.html.erb +2 -2
  40. data/src/admin_panel/app/views/graph/_get_resource_usage_data_server.html.erb +2 -2
  41. data/src/admin_panel/app/views/graph/_get_throughput_data.html.erb +2 -2
  42. data/src/admin_panel/app/views/graph/_get_url_data.html.erb +4 -4
  43. data/src/admin_panel/app/views/graph/_pie.html.erb +2 -2
  44. data/src/admin_panel/app/views/graph/_query_date.html.erb +1 -1
  45. data/src/admin_panel/app/views/graph/_query_period.html.erb +1 -1
  46. data/src/admin_panel/app/views/graph/_slider_partial.html.erb +5 -4
  47. data/src/admin_panel/app/views/graph/index.html.erb +0 -1
  48. data/src/admin_panel/app/views/headers/_add_expires_text_box.html.erb +5 -5
  49. data/src/admin_panel/app/views/headers/_expires_by_type_form.html.erb +1 -1
  50. data/src/admin_panel/app/views/headers/_headers_table.html.erb +12 -12
  51. data/src/admin_panel/app/views/layouts/application.html.erb +71 -51
  52. data/src/admin_panel/app/views/mail_specification/_current_spec.html.erb +4 -4
  53. data/src/admin_panel/app/views/mail_specification/_sendmail_form.html.erb +3 -3
  54. data/src/admin_panel/app/views/mail_specification/_smtp_form.html.erb +3 -3
  55. data/src/admin_panel/app/views/server_specification/_add_div.html.erb +4 -4
  56. data/src/admin_panel/app/views/server_specification/_ssl_support_form.html.erb +3 -2
  57. data/src/admin_panel/config.ru +4 -0
  58. data/src/admin_panel/config/application.rb +46 -0
  59. data/src/admin_panel/config/boot.rb +4 -112
  60. data/src/admin_panel/config/environment.rb +4 -85
  61. data/src/admin_panel/config/environments/development.rb +20 -13
  62. data/src/admin_panel/config/environments/production.rb +44 -17
  63. data/src/admin_panel/config/environments/test.rb +31 -18
  64. data/src/admin_panel/config/initializers/application_constants.rb +13 -11
  65. data/src/admin_panel/config/initializers/secret_token.rb +7 -0
  66. data/src/admin_panel/config/initializers/session_store.rb +8 -0
  67. data/src/admin_panel/config/initializers/ssl.rb +6 -2
  68. data/src/admin_panel/config/routes.rb +15 -57
  69. data/src/admin_panel/doc/README_FOR_APP +1 -1
  70. data/src/admin_panel/doc/app/ActionView.html +229 -0
  71. data/src/admin_panel/doc/app/ActionView/Helpers.html +229 -0
  72. data/src/admin_panel/doc/app/ActionView/Helpers/AssetTagHelper.html +277 -0
  73. data/src/admin_panel/doc/app/AdminController.html +814 -0
  74. data/src/admin_panel/doc/app/AdminHelper.html +495 -0
  75. data/src/admin_panel/doc/app/Analytics.html +272 -0
  76. data/src/admin_panel/doc/app/Analytics/Database.html +401 -0
  77. data/src/admin_panel/doc/app/Analytics/ResourceUsage.html +683 -0
  78. data/src/admin_panel/doc/app/Analytics/Throughput.html +488 -0
  79. data/src/admin_panel/doc/app/Analytics/Url.html +484 -0
  80. data/src/admin_panel/doc/app/Analytics/UrlBreakup.html +537 -0
  81. data/src/admin_panel/doc/app/App.html +489 -0
  82. data/src/admin_panel/doc/app/AppException.html +710 -0
  83. data/src/admin_panel/doc/app/AppTimeSample.html +620 -0
  84. data/src/admin_panel/doc/app/ApplicationController.html +239 -0
  85. data/src/admin_panel/doc/app/ApplicationHelper.html +296 -0
  86. data/src/admin_panel/doc/app/ApplicationSpecification.html +876 -0
  87. data/src/admin_panel/doc/app/ApplicationSpecificationController.html +552 -0
  88. data/src/admin_panel/doc/app/ApplicationSpecificationHelper.html +219 -0
  89. data/src/admin_panel/doc/app/Control.html +431 -0
  90. data/src/admin_panel/doc/app/ExceptionDetail.html +227 -0
  91. data/src/admin_panel/doc/app/ExceptionsController.html +754 -0
  92. data/src/admin_panel/doc/app/ExceptionsHelper.html +219 -0
  93. data/src/admin_panel/doc/app/GraphController.html +1101 -0
  94. data/src/admin_panel/doc/app/GraphHelper.html +285 -0
  95. data/src/admin_panel/doc/app/Headers.html +549 -0
  96. data/src/admin_panel/doc/app/HeadersController.html +507 -0
  97. data/src/admin_panel/doc/app/HeadersHelper.html +219 -0
  98. data/src/admin_panel/doc/app/MailSpecification.html +685 -0
  99. data/src/admin_panel/doc/app/MailSpecificationController.html +541 -0
  100. data/src/admin_panel/doc/app/MailSpecificationHelper.html +219 -0
  101. data/src/admin_panel/doc/app/Mailer.html +589 -0
  102. data/src/admin_panel/doc/app/Object.html +240 -0
  103. data/src/admin_panel/doc/app/PseudoModel.html +354 -0
  104. data/src/admin_panel/doc/app/ResourceUsage.html +656 -0
  105. data/src/admin_panel/doc/app/SCGI.html +674 -0
  106. data/src/admin_panel/doc/app/ServerSpecification.html +479 -0
  107. data/src/admin_panel/doc/app/ServerSpecificationController.html +500 -0
  108. data/src/admin_panel/doc/app/ServerSpecificationHelper.html +219 -0
  109. data/src/admin_panel/doc/app/SignalHelper.html +287 -0
  110. data/src/admin_panel/doc/app/UrlBreakupTimeSample.html +287 -0
  111. data/src/admin_panel/doc/app/UrlTimeSample.html +986 -0
  112. data/src/admin_panel/doc/app/User.html +290 -0
  113. data/src/admin_panel/doc/app/YAMLConfig.html +247 -0
  114. data/src/admin_panel/doc/app/YAMLWriter.html +284 -0
  115. data/src/admin_panel/doc/app/app/controllers/admin_controller_rb.html +52 -0
  116. data/src/admin_panel/doc/app/app/controllers/application_controller_rb.html +54 -0
  117. data/src/admin_panel/doc/app/app/controllers/application_specification_controller_rb.html +52 -0
  118. data/src/admin_panel/doc/app/app/controllers/exceptions_controller_rb.html +52 -0
  119. data/src/admin_panel/doc/app/app/controllers/graph_controller_rb.html +52 -0
  120. data/src/admin_panel/doc/app/app/controllers/headers_controller_rb.html +52 -0
  121. data/src/admin_panel/doc/app/app/controllers/mail_specification_controller_rb.html +52 -0
  122. data/src/admin_panel/doc/app/app/controllers/server_specification_controller_rb.html +52 -0
  123. data/src/admin_panel/doc/app/app/helpers/admin_helper_rb.html +52 -0
  124. data/src/admin_panel/doc/app/app/helpers/application_helper_rb.html +52 -0
  125. data/src/admin_panel/doc/app/app/helpers/application_specification_helper_rb.html +52 -0
  126. data/src/admin_panel/doc/app/app/helpers/exceptions_helper_rb.html +52 -0
  127. data/src/admin_panel/doc/app/app/helpers/graph_helper_rb.html +52 -0
  128. data/src/admin_panel/doc/app/app/helpers/headers_helper_rb.html +52 -0
  129. data/src/admin_panel/doc/app/app/helpers/mail_specification_helper_rb.html +52 -0
  130. data/src/admin_panel/doc/app/app/helpers/server_specification_helper_rb.html +52 -0
  131. data/src/admin_panel/doc/app/app/mailers/mailer_rb.html +56 -0
  132. data/src/admin_panel/doc/app/app/models/app_exception_rb.html +52 -0
  133. data/src/admin_panel/doc/app/app/models/app_rb.html +54 -0
  134. data/src/admin_panel/doc/app/app/models/app_time_sample_rb.html +52 -0
  135. data/src/admin_panel/doc/app/app/models/application_specification_rb.html +52 -0
  136. data/src/admin_panel/doc/app/app/models/exception_detail_rb.html +52 -0
  137. data/src/admin_panel/doc/app/app/models/headers_rb.html +52 -0
  138. data/src/admin_panel/doc/app/app/models/mail_specification_rb.html +52 -0
  139. data/src/admin_panel/doc/app/app/models/pseudo_model_rb.html +52 -0
  140. data/src/admin_panel/doc/app/app/models/resource_usage_rb.html +52 -0
  141. data/src/admin_panel/doc/app/app/models/server_specification_rb.html +52 -0
  142. data/src/admin_panel/doc/app/app/models/url_breakup_time_sample_rb.html +52 -0
  143. data/src/admin_panel/doc/app/app/models/url_time_sample_rb.html +52 -0
  144. data/src/admin_panel/doc/app/app/models/user_rb.html +52 -0
  145. data/src/admin_panel/doc/app/created.rid +42 -1
  146. data/src/admin_panel/doc/app/doc/README_FOR_APP.html +172 -0
  147. data/src/admin_panel/doc/app/images/brick.png +0 -0
  148. data/src/admin_panel/doc/app/images/brick_link.png +0 -0
  149. data/src/admin_panel/doc/app/images/bug.png +0 -0
  150. data/src/admin_panel/doc/app/images/bullet_black.png +0 -0
  151. data/src/admin_panel/doc/app/images/bullet_toggle_minus.png +0 -0
  152. data/src/admin_panel/doc/app/images/bullet_toggle_plus.png +0 -0
  153. data/src/admin_panel/doc/app/images/date.png +0 -0
  154. data/src/admin_panel/doc/app/images/find.png +0 -0
  155. data/src/admin_panel/doc/app/images/loadingAnimation.gif +0 -0
  156. data/src/admin_panel/doc/app/images/macFFBgHack.png +0 -0
  157. data/src/admin_panel/doc/app/images/package.png +0 -0
  158. data/src/admin_panel/doc/app/images/page_green.png +0 -0
  159. data/src/admin_panel/doc/app/images/page_white_text.png +0 -0
  160. data/src/admin_panel/doc/app/images/page_white_width.png +0 -0
  161. data/src/admin_panel/doc/app/images/plugin.png +0 -0
  162. data/src/admin_panel/doc/app/images/ruby.png +0 -0
  163. data/src/admin_panel/doc/app/images/tag_green.png +0 -0
  164. data/src/admin_panel/doc/app/images/wrench.png +0 -0
  165. data/src/admin_panel/doc/app/images/wrench_orange.png +0 -0
  166. data/src/admin_panel/doc/app/images/zoom.png +0 -0
  167. data/src/admin_panel/doc/app/index.html +564 -20
  168. data/src/admin_panel/doc/app/js/darkfish.js +116 -0
  169. data/src/admin_panel/doc/app/js/jquery.js +32 -0
  170. data/src/admin_panel/doc/app/js/quicksearch.js +114 -0
  171. data/src/admin_panel/doc/app/js/thickbox-compressed.js +10 -0
  172. data/src/admin_panel/doc/app/lib/asset_tag_helper_ext_rb.html +52 -0
  173. data/src/admin_panel/doc/app/lib/control_rb.html +58 -0
  174. data/src/admin_panel/doc/app/lib/graph_controller_extensions/database_analytics_rb.html +52 -0
  175. data/src/admin_panel/doc/app/lib/graph_controller_extensions/resource_usage_analytics_rb.html +52 -0
  176. data/src/admin_panel/doc/app/lib/graph_controller_extensions/throughput_analytics_rb.html +52 -0
  177. data/src/admin_panel/doc/app/lib/graph_controller_extensions/url_analytics_rb.html +52 -0
  178. data/src/admin_panel/doc/app/lib/graph_controller_extensions/url_breakup_analytics_rb.html +52 -0
  179. data/src/admin_panel/doc/app/lib/helper_rb.html +52 -0
  180. data/src/admin_panel/doc/app/lib/scgi_rb.html +54 -0
  181. data/src/admin_panel/doc/app/lib/yaml_writer_rb.html +52 -0
  182. data/src/admin_panel/doc/app/rdoc.css +763 -0
  183. data/src/admin_panel/lib/helper.rb +6 -2
  184. data/src/admin_panel/public/stylesheets/other/login.css +8 -4
  185. data/src/admin_panel/public/stylesheets/other/style.css +21 -17
  186. data/src/admin_panel/script/rails +6 -0
  187. data/src/admin_panel/test/test_helper.rb +2 -2
  188. data/src/admin_panel/vendor/plugins/calendar_date_select/History.txt +281 -0
  189. data/src/admin_panel/vendor/plugins/calendar_date_select/MIT-LICENSE +20 -0
  190. data/src/admin_panel/vendor/plugins/calendar_date_select/Manifest.txt +42 -0
  191. data/src/admin_panel/vendor/plugins/calendar_date_select/README.txt +17 -0
  192. data/src/admin_panel/vendor/plugins/calendar_date_select/Rakefile +37 -0
  193. data/src/admin_panel/vendor/plugins/calendar_date_select/VERSION +1 -0
  194. data/src/admin_panel/vendor/plugins/calendar_date_select/calendar_date_select.gemspec +95 -0
  195. data/src/admin_panel/vendor/plugins/calendar_date_select/init.rb +1 -0
  196. data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/functional/cds_test.html +376 -0
  197. data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/functional/format_iso_date_test.html +52 -0
  198. data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/prototype.js +4184 -0
  199. data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/test.css +40 -0
  200. data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/unit/cds_helper_methods.html +46 -0
  201. data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/unittest.js +564 -0
  202. data/src/admin_panel/vendor/plugins/calendar_date_select/lib/calendar_date_select.rb +33 -0
  203. data/src/admin_panel/vendor/plugins/calendar_date_select/lib/calendar_date_select/calendar_date_select.rb +122 -0
  204. data/src/admin_panel/vendor/plugins/calendar_date_select/lib/calendar_date_select/form_helpers.rb +237 -0
  205. data/src/admin_panel/vendor/plugins/calendar_date_select/lib/calendar_date_select/includes_helper.rb +29 -0
  206. data/src/admin_panel/vendor/plugins/calendar_date_select/public/blank_iframe.html +2 -0
  207. data/src/admin_panel/vendor/plugins/calendar_date_select/public/images/calendar_date_select/calendar.gif +0 -0
  208. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/calendar_date_select.js +459 -0
  209. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_american.js +35 -0
  210. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_danish.js +31 -0
  211. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_db.js +27 -0
  212. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_euro_24hr.js +7 -0
  213. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_euro_24hr_ymd.js +7 -0
  214. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_finnish.js +32 -0
  215. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_hyphen_ampm.js +37 -0
  216. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_iso_date.js +29 -0
  217. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_italian.js +24 -0
  218. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/ar.js +10 -0
  219. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/cs.js +11 -0
  220. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/da.js +11 -0
  221. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/de.js +11 -0
  222. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/es.js +11 -0
  223. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/fi.js +10 -0
  224. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/fr.js +11 -0
  225. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/hu.js +11 -0
  226. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/it.js +9 -0
  227. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/ja.js +11 -0
  228. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/nl.js +11 -0
  229. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/pl.js +11 -0
  230. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/pt.js +11 -0
  231. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/ru.js +10 -0
  232. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/sl.js +11 -0
  233. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/sv.js +9 -0
  234. data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/blue.css +130 -0
  235. data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/default.css +135 -0
  236. data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/green.css +142 -0
  237. data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/plain.css +128 -0
  238. data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/red.css +135 -0
  239. data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/silver.css +133 -0
  240. data/src/admin_panel/vendor/plugins/calendar_date_select/spec/calendar_date_select/calendar_date_select_spec.rb +14 -0
  241. data/src/admin_panel/vendor/plugins/calendar_date_select/spec/calendar_date_select/form_helpers_spec.rb +189 -0
  242. data/src/admin_panel/vendor/plugins/calendar_date_select/spec/calendar_date_select/includes_helper_spec.rb +46 -0
  243. data/src/admin_panel/vendor/plugins/calendar_date_select/spec/spec_helper.rb +26 -0
  244. data/src/admin_panel/vendor/plugins/open_flash_chart_2_plugin/install.rb +2 -2
  245. data/src/admin_panel/vendor/plugins/open_flash_chart_2_plugin/uninstall.rb +2 -2
  246. data/src/admin_panel/vendor/plugins/prototype_legacy_helper/README.markdown +13 -0
  247. data/src/admin_panel/vendor/plugins/prototype_legacy_helper/init.rb +1 -0
  248. data/src/admin_panel/vendor/plugins/prototype_legacy_helper/lib/prototype_legacy_helper.rb +432 -0
  249. data/src/admin_panel/vendor/plugins/prototype_legacy_helper/test/test_prototype_helper.rb +297 -0
  250. data/src/helper/wr_config.c +1 -1
  251. data/src/ruby_lib/analyzer/message_analyzer.rb +1 -0
  252. data/src/ruby_lib/analyzer/webroar_analyzer.rb +2 -2
  253. data/src/ruby_lib/profiler/message_dispatcher.rb +1 -1
  254. data/src/ruby_lib/ruby_interface/version.rb +2 -2
  255. data/src/ruby_lib/webroar_app_loader.rb +1 -1
  256. data/tasks/gem.rake +5 -7
  257. data/tasks/test.rake +1 -0
  258. data/test/spec/analytics_spec.rb +25 -24
  259. data/test/spec/test_app/README +142 -129
  260. data/test/spec/test_app/Rakefile +2 -5
  261. data/test/spec/test_app/app/controllers/application_controller.rb +3 -8
  262. data/test/spec/test_app/app/controllers/test_controller.rb +3 -3
  263. data/test/spec/test_app/app/controllers/users_controller.rb +8 -8
  264. data/test/spec/test_app/app/helpers/application_helper.rb +2 -1
  265. data/test/spec/test_app/app/helpers/test_helper.rb +2 -0
  266. data/test/spec/test_app/app/helpers/users_helper.rb +2 -0
  267. data/test/spec/test_app/app/models/user.rb +2 -0
  268. data/test/spec/test_app/app/views/layouts/{users.html.erb → application.html.erb} +6 -9
  269. data/test/spec/test_app/app/views/test/post_data.html.erb +2 -2
  270. data/test/spec/test_app/app/views/test/upload_file.html.erb +1 -1
  271. data/test/spec/test_app/{db/migrate/20090602102438_create_users.rb → app/views/users/_form.html.erb} +22 -11
  272. data/test/spec/test_app/app/views/users/edit.html.erb +19 -28
  273. data/test/spec/test_app/app/views/users/index.html.erb +23 -19
  274. data/test/spec/test_app/app/views/users/new.html.erb +19 -28
  275. data/test/spec/test_app/app/views/users/show.html.erb +21 -18
  276. data/test/spec/test_app/config/application.rb +45 -0
  277. data/test/spec/test_app/config/boot.rb +4 -112
  278. data/test/spec/test_app/config/database.yml +1 -1
  279. data/test/spec/test_app/config/environment.rb +4 -41
  280. data/test/spec/test_app/config/environments/development.rb +22 -13
  281. data/test/spec/test_app/config/environments/production.rb +41 -20
  282. data/test/spec/test_app/config/environments/test.rb +35 -28
  283. data/test/spec/test_app/config/initializers/backtrace_silencers.rb +2 -2
  284. data/test/spec/test_app/config/initializers/inflections.rb +1 -1
  285. data/test/spec/test_app/config/initializers/secret_token.rb +7 -0
  286. data/test/spec/test_app/config/initializers/session_store.rb +3 -10
  287. data/test/spec/test_app/config/locales/en.yml +5 -0
  288. data/test/spec/test_app/config/routes.rb +37 -22
  289. data/test/spec/test_app/db/migrate/20110906113329_create_users.rb +13 -0
  290. data/test/spec/test_app/db/seeds.rb +7 -0
  291. data/test/spec/test_app/public/404.html +15 -19
  292. data/test/spec/test_app/public/422.html +15 -19
  293. data/test/spec/test_app/public/500.html +14 -18
  294. data/test/spec/test_app/public/index.html +41 -77
  295. data/test/spec/test_app/public/javascripts/controls.js +5 -3
  296. data/test/spec/test_app/public/javascripts/dragdrop.js +7 -6
  297. data/test/spec/test_app/public/javascripts/effects.js +8 -13
  298. data/test/spec/test_app/public/javascripts/prototype.js +3381 -1700
  299. data/test/spec/test_app/public/javascripts/rails.js +191 -0
  300. data/test/spec/test_app/public/stylesheets/scaffold.css +15 -13
  301. data/test/spec/test_app/script/rails +6 -0
  302. metadata +340 -163
  303. data/src/admin_panel/Gemfile.lock +0 -79
  304. data/src/admin_panel/doc/app/classes/ActionView.html +0 -111
  305. data/src/admin_panel/doc/app/classes/ActionView/Helpers.html +0 -111
  306. data/src/admin_panel/doc/app/classes/ActionView/Helpers/AssetTagHelper.html +0 -149
  307. data/src/admin_panel/doc/app/classes/AdminController.html +0 -628
  308. data/src/admin_panel/doc/app/classes/AdminHelper.html +0 -482
  309. data/src/admin_panel/doc/app/classes/Analytics.html +0 -138
  310. data/src/admin_panel/doc/app/classes/Analytics/Database.html +0 -245
  311. data/src/admin_panel/doc/app/classes/Analytics/ResourceUsage.html +0 -478
  312. data/src/admin_panel/doc/app/classes/Analytics/Throughput.html +0 -316
  313. data/src/admin_panel/doc/app/classes/Analytics/Url.html +0 -314
  314. data/src/admin_panel/doc/app/classes/Analytics/UrlBreakup.html +0 -372
  315. data/src/admin_panel/doc/app/classes/App.html +0 -298
  316. data/src/admin_panel/doc/app/classes/AppException.html +0 -330
  317. data/src/admin_panel/doc/app/classes/AppTimeSample.html +0 -427
  318. data/src/admin_panel/doc/app/classes/ApplicationController.html +0 -118
  319. data/src/admin_panel/doc/app/classes/ApplicationHelper.html +0 -172
  320. data/src/admin_panel/doc/app/classes/ApplicationSpecification.html +0 -641
  321. data/src/admin_panel/doc/app/classes/ApplicationSpecificationController.html +0 -354
  322. data/src/admin_panel/doc/app/classes/Control.html +0 -273
  323. data/src/admin_panel/doc/app/classes/ExceptionsController.html +0 -612
  324. data/src/admin_panel/doc/app/classes/ExceptionsHelper.html +0 -105
  325. data/src/admin_panel/doc/app/classes/GraphController.html +0 -804
  326. data/src/admin_panel/doc/app/classes/GraphHelper.html +0 -164
  327. data/src/admin_panel/doc/app/classes/MailSpecification.html +0 -357
  328. data/src/admin_panel/doc/app/classes/MailSpecificationController.html +0 -304
  329. data/src/admin_panel/doc/app/classes/PseudoModel.html +0 -206
  330. data/src/admin_panel/doc/app/classes/ResourceUsage.html +0 -425
  331. data/src/admin_panel/doc/app/classes/SCGI.html +0 -406
  332. data/src/admin_panel/doc/app/classes/ServerSpecification.html +0 -325
  333. data/src/admin_panel/doc/app/classes/ServerSpecificationController.html +0 -273
  334. data/src/admin_panel/doc/app/classes/UrlBreakupTimeSample.html +0 -169
  335. data/src/admin_panel/doc/app/classes/UrlTimeSample.html +0 -708
  336. data/src/admin_panel/doc/app/classes/User.html +0 -165
  337. data/src/admin_panel/doc/app/classes/YAMLWriter.html +0 -159
  338. data/src/admin_panel/doc/app/files/app/controllers/admin_controller_rb.html +0 -101
  339. data/src/admin_panel/doc/app/files/app/controllers/application_controller_rb.html +0 -108
  340. data/src/admin_panel/doc/app/files/app/controllers/application_specification_controller_rb.html +0 -101
  341. data/src/admin_panel/doc/app/files/app/controllers/exceptions_controller_rb.html +0 -101
  342. data/src/admin_panel/doc/app/files/app/controllers/graph_controller_rb.html +0 -101
  343. data/src/admin_panel/doc/app/files/app/controllers/mail_specification_controller_rb.html +0 -101
  344. data/src/admin_panel/doc/app/files/app/controllers/server_specification_controller_rb.html +0 -101
  345. data/src/admin_panel/doc/app/files/app/helpers/admin_helper_rb.html +0 -101
  346. data/src/admin_panel/doc/app/files/app/helpers/application_helper_rb.html +0 -101
  347. data/src/admin_panel/doc/app/files/app/helpers/exceptions_helper_rb.html +0 -101
  348. data/src/admin_panel/doc/app/files/app/helpers/graph_helper_rb.html +0 -101
  349. data/src/admin_panel/doc/app/files/app/models/app_exception_rb.html +0 -101
  350. data/src/admin_panel/doc/app/files/app/models/app_rb.html +0 -108
  351. data/src/admin_panel/doc/app/files/app/models/app_time_sample_rb.html +0 -101
  352. data/src/admin_panel/doc/app/files/app/models/application_specification_rb.html +0 -101
  353. data/src/admin_panel/doc/app/files/app/models/mail_specification_rb.html +0 -101
  354. data/src/admin_panel/doc/app/files/app/models/pseudo_model_rb.html +0 -101
  355. data/src/admin_panel/doc/app/files/app/models/resource_usage_rb.html +0 -101
  356. data/src/admin_panel/doc/app/files/app/models/server_specification_rb.html +0 -101
  357. data/src/admin_panel/doc/app/files/app/models/url_breakup_time_sample_rb.html +0 -101
  358. data/src/admin_panel/doc/app/files/app/models/url_time_sample_rb.html +0 -101
  359. data/src/admin_panel/doc/app/files/app/models/user_rb.html +0 -101
  360. data/src/admin_panel/doc/app/files/doc/README_FOR_APP.html +0 -109
  361. data/src/admin_panel/doc/app/files/lib/asset_tag_helper_ext_rb.html +0 -101
  362. data/src/admin_panel/doc/app/files/lib/control_rb.html +0 -110
  363. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/database_analytics_rb.html +0 -101
  364. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/resource_usage_analytics_rb.html +0 -101
  365. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/throughput_analytics_rb.html +0 -101
  366. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/url_analytics_rb.html +0 -101
  367. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/url_breakup_analytics_rb.html +0 -101
  368. data/src/admin_panel/doc/app/files/lib/scgi_rb.html +0 -101
  369. data/src/admin_panel/doc/app/files/lib/yaml_writer_rb.html +0 -101
  370. data/src/admin_panel/doc/app/fr_class_index.html +0 -60
  371. data/src/admin_panel/doc/app/fr_file_index.html +0 -58
  372. data/src/admin_panel/doc/app/fr_method_index.html +0 -206
  373. data/src/admin_panel/doc/app/rdoc-style.css +0 -208
  374. data/src/admin_panel/public/dispatch.cgi +0 -10
  375. data/src/admin_panel/public/dispatch.fcgi +0 -24
  376. data/src/admin_panel/public/dispatch.rb +0 -10
  377. data/src/admin_panel/script/about +0 -4
  378. data/src/admin_panel/script/console +0 -3
  379. data/src/admin_panel/script/dbconsole +0 -3
  380. data/src/admin_panel/script/destroy +0 -3
  381. data/src/admin_panel/script/generate +0 -3
  382. data/src/admin_panel/script/performance/benchmarker +0 -3
  383. data/src/admin_panel/script/performance/profiler +0 -3
  384. data/src/admin_panel/script/performance/request +0 -3
  385. data/src/admin_panel/script/plugin +0 -3
  386. data/src/admin_panel/script/process/inspector +0 -3
  387. data/src/admin_panel/script/process/reaper +0 -3
  388. data/src/admin_panel/script/process/spawner +0 -3
  389. data/src/admin_panel/script/runner +0 -3
  390. data/src/admin_panel/script/server +0 -3
  391. data/test/spec/test_app/config/initializers/new_rails_defaults.rb +0 -19
  392. data/test/spec/test_app/script/about +0 -4
  393. data/test/spec/test_app/script/console +0 -3
  394. data/test/spec/test_app/script/dbconsole +0 -3
  395. data/test/spec/test_app/script/destroy +0 -3
  396. data/test/spec/test_app/script/generate +0 -3
  397. data/test/spec/test_app/script/performance/benchmarker +0 -3
  398. data/test/spec/test_app/script/performance/profiler +0 -3
  399. data/test/spec/test_app/script/plugin +0 -3
  400. data/test/spec/test_app/script/runner +0 -3
  401. data/test/spec/test_app/script/server +0 -3
  402. data/test/spec/test_app/vendor/.placeholder +0 -0
@@ -1,425 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: ResourceUsage</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">ResourceUsage</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../files/app/models/resource_usage_rb.html">
59
- app/models/resource_usage.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- ActiveRecord::Base
69
- </td>
70
- </tr>
71
- </table>
72
- </div>
73
- <!-- banner header -->
74
-
75
- <div id="bodyContent">
76
-
77
-
78
-
79
- <div id="contextContent">
80
-
81
- <div id="description">
82
- <p>
83
- This is the model class <a href="ResourceUsage.html">ResourceUsage</a>
84
- related to the resource_usages table in the database.
85
- </p>
86
-
87
- </div>
88
-
89
-
90
- </div>
91
-
92
- <div id="method-list">
93
- <h3 class="section-bar">Methods</h3>
94
-
95
- <div class="name-list">
96
- <a href="#M000036">fill_gaps!</a>&nbsp;&nbsp;
97
- <a href="#M000034">get_application_data</a>&nbsp;&nbsp;
98
- <a href="#M000032">get_latest_for_apps</a>&nbsp;&nbsp;
99
- <a href="#M000031">get_latest_for_server</a>&nbsp;&nbsp;
100
- <a href="#M000035">get_max_and_slab</a>&nbsp;&nbsp;
101
- <a href="#M000033">get_server_resource_usage</a>&nbsp;&nbsp;
102
- </div>
103
- </div>
104
-
105
- </div>
106
-
107
-
108
- <!-- if includes -->
109
-
110
- <div id="section">
111
-
112
-
113
-
114
-
115
-
116
-
117
-
118
-
119
- <!-- if method_list -->
120
- <div id="methods">
121
- <h3 class="section-bar">Public Class methods</h3>
122
-
123
- <div id="method-M000036" class="method-detail">
124
- <a name="M000036"></a>
125
-
126
- <div class="method-heading">
127
- <a href="#M000036" class="method-signature">
128
- <span class="method-name">fill_gaps!</span><span class="method-args">(array)</span>
129
- </a>
130
- </div>
131
-
132
- <div class="method-description">
133
- <p>
134
- Due to technical reasons, e.g. sleep(60) , thread can remain in sleep state
135
- for more than 60 seconds, in this case it may not get sample for that
136
- minute. With this method filling any such gaps(consecutive one gap at max)
137
- by predicting usage from around values. Parameters : array(Array) of
138
- integer or float Find out the elements having 0 or 0.0 as value, normalize
139
- it value according to previous/next values.
140
- </p>
141
- <p><a class="source-toggle" href="#"
142
- onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
143
- <div class="method-source-code" id="M000036-source">
144
- <pre>
145
- <span class="ruby-comment cmt"># File app/models/resource_usage.rb, line 156</span>
146
- 156: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fill_gaps!</span>(<span class="ruby-identifier">array</span>)
147
- 157: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">array</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-comment cmt"># proceed only if array is not empty</span>
148
- 158: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-comment cmt"># if first element is zero, predict value from next two values.</span>
149
- 159: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">array</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-operator">!</span><span class="ruby-identifier">array</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-operator">!</span><span class="ruby-identifier">array</span>[<span class="ruby-value">2</span>].<span class="ruby-identifier">nil?</span>
150
- 160: <span class="ruby-identifier">array</span>[<span class="ruby-value">0</span>] = (<span class="ruby-identifier">array</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">2</span>]) <span class="ruby-operator">/</span> <span class="ruby-value">2</span>
151
- 161: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># if array.length &gt; 2</span>
152
- 162: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># if array[0].to_i == 0</span>
153
- 163:
154
- 164: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-comment cmt">#if last element is zero, predict value from previous two values.</span>
155
- 165: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">array</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">-2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">-3</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-operator">!</span><span class="ruby-identifier">array</span>[<span class="ruby-value">-2</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-operator">!</span><span class="ruby-identifier">array</span>[<span class="ruby-value">-3</span>].<span class="ruby-identifier">nil?</span>
156
- 166: <span class="ruby-identifier">array</span>[<span class="ruby-value">-1</span>] = (<span class="ruby-identifier">array</span>[<span class="ruby-value">-2</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">-3</span>]) <span class="ruby-operator">/</span> <span class="ruby-value">2</span>
157
- 167: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># if array.length &gt; 2</span>
158
- 168: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># if array[-1].to_i == 0</span>
159
- 169:
160
- 170: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-identifier">array</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span> <span class="ruby-comment cmt"># checking for interminant values</span>
161
- 171: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-operator">!</span><span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-operator">!</span><span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>].<span class="ruby-identifier">nil?</span>
162
- 172: <span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span>] = (<span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>]) <span class="ruby-operator">/</span> <span class="ruby-value">2</span>
163
- 173: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># if</span>
164
- 174: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># for</span>
165
- 175: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># if array.length &gt; 0</span>
166
- 176: <span class="ruby-keyword kw">end</span>
167
- </pre>
168
- </div>
169
- </div>
170
- </div>
171
-
172
- <div id="method-M000034" class="method-detail">
173
- <a name="M000034"></a>
174
-
175
- <div class="method-heading">
176
- <a href="#M000034" class="method-signature">
177
- <span class="method-name">get_application_data</span><span class="method-args">(app_id, start_time, end_time, type)</span>
178
- </a>
179
- </div>
180
-
181
- <div class="method-description">
182
- <p>
183
- This method Returns the Resource Usage data for a particular application.
184
- This data is used to plot the graph for cpu usage and memory usage for that
185
- application. CPU usage is in percentage and the physical memory usage is
186
- MBs.
187
- </p>
188
- <p><a class="source-toggle" href="#"
189
- onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
190
- <div class="method-source-code" id="M000034-source">
191
- <pre>
192
- <span class="ruby-comment cmt"># File app/models/resource_usage.rb, line 101</span>
193
- 101: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_application_data</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>, <span class="ruby-identifier">type</span>)
194
- 102: <span class="ruby-identifier">max</span> = <span class="ruby-value">0</span>
195
- 103: <span class="ruby-identifier">interval</span> = <span class="ruby-value">0</span>
196
- 104: <span class="ruby-identifier">interval</span> = ((<span class="ruby-identifier">end_time</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">start_time</span>) <span class="ruby-operator">/</span> <span class="ruby-value">60</span>).<span class="ruby-identifier">to_i</span>
197
- 105: <span class="ruby-identifier">final_data</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">interval</span>)
198
- 106: <span class="ruby-identifier">wall_time</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">interval</span>)
199
- 107: <span class="ruby-identifier">resource_usages</span> = <span class="ruby-identifier">find</span>(<span class="ruby-identifier">:all</span>, <span class="ruby-identifier">:select</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'sum(cpu_usage) as cpu_usage, sum(memory_usage) as memory_usage, count(*) as count, wall_time'</span>, <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-value str">'app_id = ? and wall_time &gt;= ? and wall_time &lt; ?'</span>, <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>], <span class="ruby-identifier">:group</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'wall_time'</span>)
200
- 108: <span class="ruby-identifier">resource_usages</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource_usage</span><span class="ruby-operator">|</span>
201
- 109: <span class="ruby-identifier">current_time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(<span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">year</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">month</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">day</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">hour</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">min</span>, <span class="ruby-value str">'0'</span>)
202
- 110: <span class="ruby-identifier">index</span> = (<span class="ruby-identifier">current_time</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">start_time</span>) <span class="ruby-operator">/</span> <span class="ruby-value">60</span>
203
- 111: <span class="ruby-identifier">count</span> = <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">count</span>
204
- 112: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;cpu&quot;</span>
205
- 113: <span class="ruby-identifier">total_data</span> = <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">cpu_usage</span>
206
- 114: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;memory&quot;</span>
207
- 115: <span class="ruby-identifier">total_data</span> = <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">memory_usage</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-value">1024</span>
208
- 116: <span class="ruby-keyword kw">end</span>
209
- 117: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">total_data</span>
210
- 118: <span class="ruby-identifier">max</span> = <span class="ruby-identifier">total_data</span>.<span class="ruby-identifier">to_i</span>
211
- 119: <span class="ruby-keyword kw">end</span>
212
- 120: <span class="ruby-identifier">final_data</span>[<span class="ruby-identifier">index</span>] = <span class="ruby-identifier">total_data</span>
213
- 121: <span class="ruby-identifier">wall_time</span>[<span class="ruby-identifier">index</span>] = <span class="ruby-identifier">current_time</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%H:%M&quot;</span>)
214
- 122: <span class="ruby-keyword kw">end</span>
215
- 123:
216
- 124: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">interval</span>
217
- 125: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">final_data</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">nil?</span>
218
- 126: <span class="ruby-identifier">wall_time</span>[<span class="ruby-identifier">i</span>] = (<span class="ruby-identifier">start_time</span><span class="ruby-operator">+</span><span class="ruby-identifier">i</span><span class="ruby-operator">*</span><span class="ruby-value">60</span>).<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%H:%M&quot;</span>)
219
- 127: <span class="ruby-keyword kw">end</span>
220
- 128: <span class="ruby-keyword kw">end</span>
221
- 129:
222
- 130: <span class="ruby-identifier">max</span>,<span class="ruby-identifier">slab</span> = <span class="ruby-identifier">get_max_and_slab</span>(<span class="ruby-identifier">max</span>)
223
- 131: <span class="ruby-identifier">fill_gaps!</span>(<span class="ruby-identifier">final_data</span>)
224
- 132: <span class="ruby-identifier">step</span> = (<span class="ruby-identifier">interval</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>) <span class="ruby-operator">/</span> <span class="ruby-value">20</span>
225
- 133: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">wall_time</span>, <span class="ruby-identifier">final_data</span>, <span class="ruby-identifier">max</span>, <span class="ruby-identifier">slab</span>, <span class="ruby-identifier">step</span>
226
- 134: <span class="ruby-keyword kw">end</span>
227
- </pre>
228
- </div>
229
- </div>
230
- </div>
231
-
232
- <div id="method-M000032" class="method-detail">
233
- <a name="M000032"></a>
234
-
235
- <div class="method-heading">
236
- <a href="#M000032" class="method-signature">
237
- <span class="method-name">get_latest_for_apps</span><span class="method-args">()</span>
238
- </a>
239
- </div>
240
-
241
- <div class="method-description">
242
- <p>
243
- This method is used to get the latest state of the application i.e. its cpu
244
- usage and physical memory usage.
245
- </p>
246
- <pre>
247
- Returns hash with application name as key and 2 element array as value. In 2 element, first element is cpu usage, 2nd is memory usage in kb
248
- </pre>
249
- <p><a class="source-toggle" href="#"
250
- onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
251
- <div class="method-source-code" id="M000032-source">
252
- <pre>
253
- <span class="ruby-comment cmt"># File app/models/resource_usage.rb, line 41</span>
254
- 41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_latest_for_apps</span>
255
- 42: <span class="ruby-identifier">t1</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
256
- 43: <span class="ruby-identifier">interval</span> = <span class="ruby-value">60</span> <span class="ruby-comment cmt"># in seconds</span>
257
- 44: <span class="ruby-identifier">t2</span> = <span class="ruby-identifier">t1</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">interval</span>
258
- 45: <span class="ruby-identifier">result_set</span> = <span class="ruby-identifier">find</span>(<span class="ruby-identifier">:all</span>, <span class="ruby-identifier">:select</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;app_id, sum(cpu_usage) as tot_cpu, sum(memory_usage) as tot_memory&quot;</span>, <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-value str">&quot;wall_time &lt;= ? and wall_time &gt;= ?&quot;</span>,<span class="ruby-identifier">t1</span>,<span class="ruby-identifier">t2</span>], <span class="ruby-identifier">:group</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'app_id'</span>)
259
- 46:
260
- 47: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result_set</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
261
- 48: {}
262
- 49: <span class="ruby-keyword kw">else</span>
263
- 50: <span class="ruby-identifier">apps</span> = <span class="ruby-constant">App</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">:all</span>, <span class="ruby-identifier">:select</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;id, name&quot;</span>)
264
- 51: <span class="ruby-identifier">app_hash</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
265
- 52: <span class="ruby-identifier">apps</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">app</span><span class="ruby-operator">|</span>
266
- 53: <span class="ruby-identifier">app_hash</span>[<span class="ruby-identifier">app</span>.<span class="ruby-identifier">id</span>] = <span class="ruby-identifier">app</span>.<span class="ruby-identifier">name</span>
267
- 54: <span class="ruby-keyword kw">end</span>
268
- 55: <span class="ruby-identifier">result_hash</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
269
- 56: <span class="ruby-identifier">result_set</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">result</span><span class="ruby-operator">|</span>
270
- 57: <span class="ruby-identifier">result_hash</span>[<span class="ruby-identifier">app_hash</span>[<span class="ruby-identifier">result</span>.<span class="ruby-identifier">app_id</span>]] = [<span class="ruby-identifier">result</span>.<span class="ruby-identifier">tot_cpu</span>.<span class="ruby-identifier">to_f</span>, <span class="ruby-identifier">result</span>.<span class="ruby-identifier">tot_memory</span>.<span class="ruby-identifier">to_i</span>]
271
- 58: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># do |result|</span>
272
- 59: <span class="ruby-identifier">result_hash</span>
273
- 60: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># if</span>
274
- 61: <span class="ruby-keyword kw">end</span>
275
- </pre>
276
- </div>
277
- </div>
278
- </div>
279
-
280
- <div id="method-M000031" class="method-detail">
281
- <a name="M000031"></a>
282
-
283
- <div class="method-heading">
284
- <a href="#M000031" class="method-signature">
285
- <span class="method-name">get_latest_for_server</span><span class="method-args">()</span>
286
- </a>
287
- </div>
288
-
289
- <div class="method-description">
290
- <p>
291
- This method is used to get the latest state of the server i.e. its cpu
292
- usage and physical memory usage.
293
- </p>
294
- <pre>
295
- Returns array wtih 2 element, first element is cpu usage, 2nd is memory usage in kb
296
- </pre>
297
- <p><a class="source-toggle" href="#"
298
- onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
299
- <div class="method-source-code" id="M000031-source">
300
- <pre>
301
- <span class="ruby-comment cmt"># File app/models/resource_usage.rb, line 26</span>
302
- 26: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_latest_for_server</span>
303
- 27: <span class="ruby-identifier">t1</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
304
- 28: <span class="ruby-identifier">interval</span> = <span class="ruby-value">60</span> <span class="ruby-comment cmt"># in seconds</span>
305
- 29: <span class="ruby-identifier">t2</span> = <span class="ruby-identifier">t1</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">interval</span>
306
- 30: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">find</span>(<span class="ruby-identifier">:first</span>, <span class="ruby-identifier">:select</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;sum(cpu_usage) as tot_cpu, sum(memory_usage) as tot_memory&quot;</span>, <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-value str">&quot;wall_time &lt;= ? and wall_time &gt;= ?&quot;</span>,<span class="ruby-identifier">t1</span>,<span class="ruby-identifier">t2</span>])
307
- 31: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">result</span>
308
- 32: <span class="ruby-identifier">res</span> = [<span class="ruby-value">0</span><span class="ruby-value">.0</span>, <span class="ruby-value">0</span>]
309
- 33: <span class="ruby-keyword kw">else</span>
310
- 34: <span class="ruby-identifier">res</span> = [<span class="ruby-identifier">result</span>.<span class="ruby-identifier">tot_cpu</span>.<span class="ruby-identifier">to_f</span>, <span class="ruby-identifier">result</span>.<span class="ruby-identifier">tot_memory</span>.<span class="ruby-identifier">to_i</span>]
311
- 35: <span class="ruby-keyword kw">end</span>
312
- 36: <span class="ruby-identifier">res</span>
313
- 37: <span class="ruby-keyword kw">end</span>
314
- </pre>
315
- </div>
316
- </div>
317
- </div>
318
-
319
- <div id="method-M000035" class="method-detail">
320
- <a name="M000035"></a>
321
-
322
- <div class="method-heading">
323
- <a href="#M000035" class="method-signature">
324
- <span class="method-name">get_max_and_slab</span><span class="method-args">(max)</span>
325
- </a>
326
- </div>
327
-
328
- <div class="method-description">
329
- <p>
330
- This method gives the maximum value for y axis and the value by which the y
331
- axis is to be partitioned.
332
- </p>
333
- <p><a class="source-toggle" href="#"
334
- onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
335
- <div class="method-source-code" id="M000035-source">
336
- <pre>
337
- <span class="ruby-comment cmt"># File app/models/resource_usage.rb, line 137</span>
338
- 137: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_max_and_slab</span>(<span class="ruby-identifier">max</span>)
339
- 138: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
340
- 139: <span class="ruby-identifier">max</span> = <span class="ruby-value">1</span>
341
- 140: <span class="ruby-identifier">slab</span> = <span class="ruby-value">1</span>
342
- 141: <span class="ruby-keyword kw">else</span>
343
- 142: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">8</span>
344
- 143: <span class="ruby-identifier">slab</span> = <span class="ruby-identifier">max</span><span class="ruby-operator">/</span><span class="ruby-value">8</span>.<span class="ruby-identifier">to_i</span>
345
- 144: <span class="ruby-keyword kw">else</span>
346
- 145: <span class="ruby-identifier">slab</span> = <span class="ruby-value">1</span>
347
- 146: <span class="ruby-keyword kw">end</span>
348
- 147: <span class="ruby-keyword kw">end</span>
349
- 148: <span class="ruby-identifier">max</span> = <span class="ruby-identifier">max</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">slab</span>
350
- 149: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">max</span>, <span class="ruby-identifier">slab</span>
351
- 150: <span class="ruby-keyword kw">end</span>
352
- </pre>
353
- </div>
354
- </div>
355
- </div>
356
-
357
- <div id="method-M000033" class="method-detail">
358
- <a name="M000033"></a>
359
-
360
- <div class="method-heading">
361
- <a href="#M000033" class="method-signature">
362
- <span class="method-name">get_server_resource_usage</span><span class="method-args">(start_time, end_time, type)</span>
363
- </a>
364
- </div>
365
-
366
- <div class="method-description">
367
- <p>
368
- This method Returns the Resource Usage data for the server. This data is
369
- used to plot the graph for cpu usage and memory usage of the server. CPU
370
- usage is in percentage and the physical memory usage is MBs.
371
- </p>
372
- <p><a class="source-toggle" href="#"
373
- onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
374
- <div class="method-source-code" id="M000033-source">
375
- <pre>
376
- <span class="ruby-comment cmt"># File app/models/resource_usage.rb, line 65</span>
377
- 65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_server_resource_usage</span>(<span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>, <span class="ruby-identifier">type</span>)
378
- 66: <span class="ruby-identifier">max</span> = <span class="ruby-value">0</span>
379
- 67: <span class="ruby-identifier">interval</span> = <span class="ruby-value">0</span>
380
- 68: <span class="ruby-identifier">interval</span> = ((<span class="ruby-identifier">end_time</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">start_time</span>) <span class="ruby-operator">/</span> <span class="ruby-value">60</span>).<span class="ruby-identifier">to_i</span>
381
- 69: <span class="ruby-identifier">final_data</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">interval</span>)
382
- 70: <span class="ruby-identifier">wall_time</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">interval</span>)
383
- 71: <span class="ruby-identifier">resource_usages</span> = <span class="ruby-identifier">find</span>(<span class="ruby-identifier">:all</span>, <span class="ruby-identifier">:select=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'wall_time, sum(cpu_usage) as cpu_usage, sum(memory_usage) as memory_usage'</span>, <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-value str">&quot;wall_time &gt;= ? and wall_time &lt; ?&quot;</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>], <span class="ruby-identifier">:group</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'wall_time'</span>)
384
- 72: <span class="ruby-identifier">resource_usages</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource_usage</span><span class="ruby-operator">|</span>
385
- 73: <span class="ruby-identifier">current_time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(<span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">year</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">month</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">day</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">hour</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">min</span>, <span class="ruby-value str">'0'</span>)
386
- 74: <span class="ruby-identifier">index</span> = (<span class="ruby-identifier">current_time</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">start_time</span>) <span class="ruby-operator">/</span> <span class="ruby-value">60</span>
387
- 75: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;CPU&quot;</span>
388
- 76: <span class="ruby-identifier">total_data</span> = <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">cpu_usage</span>
389
- 77: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;Memory&quot;</span>
390
- 78: <span class="ruby-identifier">total_data</span> = <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">memory_usage</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-value">1024</span>
391
- 79: <span class="ruby-keyword kw">end</span>
392
- 80: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">total_data</span>
393
- 81: <span class="ruby-identifier">max</span> = <span class="ruby-identifier">total_data</span>.<span class="ruby-identifier">to_i</span>
394
- 82: <span class="ruby-keyword kw">end</span>
395
- 83: <span class="ruby-identifier">final_data</span>[<span class="ruby-identifier">index</span>] = <span class="ruby-identifier">total_data</span>
396
- 84: <span class="ruby-identifier">wall_time</span>[<span class="ruby-identifier">index</span>] = <span class="ruby-identifier">current_time</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%H:%M&quot;</span>)
397
- 85: <span class="ruby-keyword kw">end</span>
398
- 86: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">interval</span>
399
- 87: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">final_data</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">nil?</span>
400
- 88: <span class="ruby-identifier">wall_time</span>[<span class="ruby-identifier">i</span>] = (<span class="ruby-identifier">start_time</span><span class="ruby-operator">+</span><span class="ruby-identifier">i</span><span class="ruby-operator">*</span><span class="ruby-value">60</span>).<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%H:%M&quot;</span>)
401
- 89: <span class="ruby-keyword kw">end</span>
402
- 90: <span class="ruby-keyword kw">end</span>
403
- 91: <span class="ruby-identifier">max</span>, <span class="ruby-identifier">slab</span> = <span class="ruby-identifier">get_max_and_slab</span>(<span class="ruby-identifier">max</span>)
404
- 92: <span class="ruby-identifier">fill_gaps!</span>(<span class="ruby-identifier">final_data</span>)
405
- 93: <span class="ruby-identifier">step</span> = (<span class="ruby-identifier">interval</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>) <span class="ruby-operator">/</span> <span class="ruby-value">20</span>
406
- 94: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">wall_time</span>, <span class="ruby-identifier">final_data</span>, <span class="ruby-identifier">max</span>, <span class="ruby-identifier">slab</span>, <span class="ruby-identifier">step</span>
407
- 95: <span class="ruby-keyword kw">end</span>
408
- </pre>
409
- </div>
410
- </div>
411
- </div>
412
-
413
-
414
- </div>
415
-
416
-
417
- </div>
418
-
419
-
420
- <div id="validator-badges">
421
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
422
- </div>
423
-
424
- </body>
425
- </html>
@@ -1,406 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: SCGI</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">SCGI</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../files/lib/scgi_rb.html">
59
- lib/scgi.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- Object
69
- </td>
70
- </tr>
71
- </table>
72
- </div>
73
- <!-- banner header -->
74
-
75
- <div id="bodyContent">
76
-
77
-
78
-
79
- <div id="contextContent">
80
-
81
- <div id="description">
82
- <p>
83
- This class contructs and <a href="SCGI.html#M000100">parse</a> the <a
84
- href="SCGI.html">SCGI</a> <a href="SCGI.html#M000093">request</a>.
85
- </p>
86
-
87
- </div>
88
-
89
-
90
- </div>
91
-
92
- <div id="method-list">
93
- <h3 class="section-bar">Methods</h3>
94
-
95
- <div class="name-list">
96
- <a href="#M000094">body</a>&nbsp;&nbsp;
97
- <a href="#M000096">body_add</a>&nbsp;&nbsp;
98
- <a href="#M000098">build</a>&nbsp;&nbsp;
99
- <a href="#M000097">header</a>&nbsp;&nbsp;
100
- <a href="#M000095">header_add</a>&nbsp;&nbsp;
101
- <a href="#M000092">new</a>&nbsp;&nbsp;
102
- <a href="#M000100">parse</a>&nbsp;&nbsp;
103
- <a href="#M000099">print</a>&nbsp;&nbsp;
104
- <a href="#M000093">request</a>&nbsp;&nbsp;
105
- </div>
106
- </div>
107
-
108
- </div>
109
-
110
-
111
- <!-- if includes -->
112
-
113
- <div id="section">
114
-
115
-
116
-
117
-
118
-
119
-
120
-
121
-
122
- <!-- if method_list -->
123
- <div id="methods">
124
- <h3 class="section-bar">Public Class methods</h3>
125
-
126
- <div id="method-M000092" class="method-detail">
127
- <a name="M000092"></a>
128
-
129
- <div class="method-heading">
130
- <a href="#M000092" class="method-signature">
131
- <span class="method-name">new</span><span class="method-args">()</span>
132
- </a>
133
- </div>
134
-
135
- <div class="method-description">
136
- <p>
137
- This is the constructor function for <a href="SCGI.html">SCGI</a> class.
138
- </p>
139
- <p><a class="source-toggle" href="#"
140
- onclick="toggleCode('M000092-source');return false;">[Source]</a></p>
141
- <div class="method-source-code" id="M000092-source">
142
- <pre>
143
- <span class="ruby-comment cmt"># File lib/scgi.rb, line 28</span>
144
- 28: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
145
- 29: <span class="ruby-ivar">@hash</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
146
- 30: <span class="ruby-keyword kw">end</span>
147
- </pre>
148
- </div>
149
- </div>
150
- </div>
151
-
152
- <h3 class="section-bar">Public Instance methods</h3>
153
-
154
- <div id="method-M000094" class="method-detail">
155
- <a name="M000094"></a>
156
-
157
- <div class="method-heading">
158
- <a href="#M000094" class="method-signature">
159
- <span class="method-name">body</span><span class="method-args">()</span>
160
- </a>
161
- </div>
162
-
163
- <div class="method-description">
164
- <p>
165
- Getter setter for <a href="SCGI.html#M000094">body</a> in <a
166
- href="SCGI.html">SCGI</a> class.
167
- </p>
168
- <p><a class="source-toggle" href="#"
169
- onclick="toggleCode('M000094-source');return false;">[Source]</a></p>
170
- <div class="method-source-code" id="M000094-source">
171
- <pre>
172
- <span class="ruby-comment cmt"># File lib/scgi.rb, line 38</span>
173
- 38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">body</span>
174
- 39: <span class="ruby-ivar">@body</span>
175
- 40: <span class="ruby-keyword kw">end</span>
176
- </pre>
177
- </div>
178
- </div>
179
- </div>
180
-
181
- <div id="method-M000096" class="method-detail">
182
- <a name="M000096"></a>
183
-
184
- <div class="method-heading">
185
- <a href="#M000096" class="method-signature">
186
- <span class="method-name">body_add</span><span class="method-args">(body)</span>
187
- </a>
188
- </div>
189
-
190
- <div class="method-description">
191
- <p>
192
- Adds <a href="SCGI.html">SCGI</a> <a href="SCGI.html#M000093">request</a>
193
- <a href="SCGI.html#M000094">body</a>.
194
- </p>
195
- <p><a class="source-toggle" href="#"
196
- onclick="toggleCode('M000096-source');return false;">[Source]</a></p>
197
- <div class="method-source-code" id="M000096-source">
198
- <pre>
199
- <span class="ruby-comment cmt"># File lib/scgi.rb, line 48</span>
200
- 48: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">body_add</span>(<span class="ruby-identifier">body</span>)
201
- 49: <span class="ruby-ivar">@body</span> = <span class="ruby-identifier">body</span>
202
- 50: <span class="ruby-keyword kw">end</span>
203
- </pre>
204
- </div>
205
- </div>
206
- </div>
207
-
208
- <div id="method-M000098" class="method-detail">
209
- <a name="M000098"></a>
210
-
211
- <div class="method-heading">
212
- <a href="#M000098" class="method-signature">
213
- <span class="method-name">build</span><span class="method-args">()</span>
214
- </a>
215
- </div>
216
-
217
- <div class="method-description">
218
- <p>
219
- Construct <a href="SCGI.html">SCGI</a> <a
220
- href="SCGI.html#M000093">request</a>.
221
- </p>
222
- <p><a class="source-toggle" href="#"
223
- onclick="toggleCode('M000098-source');return false;">[Source]</a></p>
224
- <div class="method-source-code" id="M000098-source">
225
- <pre>
226
- <span class="ruby-comment cmt"># File lib/scgi.rb, line 58</span>
227
- 58: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">build</span>
228
- 59: <span class="ruby-keyword kw">if</span>(<span class="ruby-ivar">@body</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>)
229
- 60: <span class="ruby-ivar">@request</span> = <span class="ruby-value str">&quot;CONTENT_LENGTH\0&quot;</span><span class="ruby-operator">+</span><span class="ruby-value str">&quot;0&quot;</span><span class="ruby-operator">+</span><span class="ruby-value str">&quot;\0&quot;</span>
230
- 61: <span class="ruby-keyword kw">else</span>
231
- 62: <span class="ruby-ivar">@request</span> = <span class="ruby-node">&quot;CONTENT_LENGTH\0#{body.length}\0&quot;</span>
232
- 63: <span class="ruby-keyword kw">end</span>
233
- 64: <span class="ruby-ivar">@request</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;SCGI\0&quot;</span><span class="ruby-operator">+</span><span class="ruby-value str">&quot;0&quot;</span> <span class="ruby-operator">+</span><span class="ruby-value str">&quot;\0&quot;</span>
234
- 65: <span class="ruby-ivar">@hash</span>.<span class="ruby-identifier">each_key</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
235
- 66: <span class="ruby-ivar">@request</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;#{key}\0#{@hash[key]}\0&quot;</span>
236
- 67: }
237
- 68: <span class="ruby-ivar">@request</span> = <span class="ruby-node">&quot;#{@request.length}:#{@request}&quot;</span>
238
- 69: <span class="ruby-ivar">@request</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;,#{@body}&quot;</span>
239
- 70: <span class="ruby-keyword kw">end</span>
240
- </pre>
241
- </div>
242
- </div>
243
- </div>
244
-
245
- <div id="method-M000097" class="method-detail">
246
- <a name="M000097"></a>
247
-
248
- <div class="method-heading">
249
- <a href="#M000097" class="method-signature">
250
- <span class="method-name">header</span><span class="method-args">(key)</span>
251
- </a>
252
- </div>
253
-
254
- <div class="method-description">
255
- <p>
256
- Getter method for receiving <a href="SCGI.html">SCGI</a> headers.
257
- </p>
258
- <p><a class="source-toggle" href="#"
259
- onclick="toggleCode('M000097-source');return false;">[Source]</a></p>
260
- <div class="method-source-code" id="M000097-source">
261
- <pre>
262
- <span class="ruby-comment cmt"># File lib/scgi.rb, line 53</span>
263
- 53: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">header</span>(<span class="ruby-identifier">key</span>)
264
- 54: <span class="ruby-ivar">@hash</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">upcase</span>]
265
- 55: <span class="ruby-keyword kw">end</span>
266
- </pre>
267
- </div>
268
- </div>
269
- </div>
270
-
271
- <div id="method-M000095" class="method-detail">
272
- <a name="M000095"></a>
273
-
274
- <div class="method-heading">
275
- <a href="#M000095" class="method-signature">
276
- <span class="method-name">header_add</span><span class="method-args">(key, value)</span>
277
- </a>
278
- </div>
279
-
280
- <div class="method-description">
281
- <p>
282
- This method is used to add the headers.
283
- </p>
284
- <p><a class="source-toggle" href="#"
285
- onclick="toggleCode('M000095-source');return false;">[Source]</a></p>
286
- <div class="method-source-code" id="M000095-source">
287
- <pre>
288
- <span class="ruby-comment cmt"># File lib/scgi.rb, line 43</span>
289
- 43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">header_add</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)
290
- 44: <span class="ruby-ivar">@hash</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">upcase</span>] = <span class="ruby-identifier">value</span>
291
- 45: <span class="ruby-keyword kw">end</span>
292
- </pre>
293
- </div>
294
- </div>
295
- </div>
296
-
297
- <div id="method-M000100" class="method-detail">
298
- <a name="M000100"></a>
299
-
300
- <div class="method-heading">
301
- <a href="#M000100" class="method-signature">
302
- <span class="method-name">parse</span><span class="method-args">(req)</span>
303
- </a>
304
- </div>
305
-
306
- <div class="method-description">
307
- <p>
308
- Parse the string and <a href="SCGI.html#M000098">build</a> <a
309
- href="SCGI.html">SCGI</a> <a href="SCGI.html#M000093">request</a>.
310
- </p>
311
- <p><a class="source-toggle" href="#"
312
- onclick="toggleCode('M000100-source');return false;">[Source]</a></p>
313
- <div class="method-source-code" id="M000100-source">
314
- <pre>
315
- <span class="ruby-comment cmt"># File lib/scgi.rb, line 82</span>
316
- 82: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">req</span>)
317
- 83: <span class="ruby-identifier">arr</span> = <span class="ruby-identifier">req</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;:&quot;</span>)
318
- 84: <span class="ruby-identifier">key</span> = <span class="ruby-value str">&quot;&quot;</span>
319
- 85: <span class="ruby-identifier">len</span> = <span class="ruby-identifier">arr</span>[<span class="ruby-value">0</span>] <span class="ruby-comment cmt">#TODO if len.to_i == 0 then error</span>
320
- 86: <span class="ruby-identifier">arr</span> = <span class="ruby-identifier">arr</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;\0&quot;</span>, <span class="ruby-identifier">len</span>.<span class="ruby-identifier">to_i</span>)
321
- 87: <span class="ruby-identifier">arr</span>.<span class="ruby-identifier">each_index</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
322
- 88: <span class="ruby-keyword kw">if</span>(<span class="ruby-identifier">i</span> <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>)
323
- 89: <span class="ruby-identifier">key</span> = <span class="ruby-identifier">arr</span>[<span class="ruby-identifier">i</span>]
324
- 90: <span class="ruby-keyword kw">else</span>
325
- 91: <span class="ruby-identifier">header_add</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">arr</span>[<span class="ruby-identifier">i</span>])
326
- 92: <span class="ruby-keyword kw">end</span>
327
- 93: }
328
- 94: <span class="ruby-identifier">arr</span> = <span class="ruby-identifier">arr</span>[<span class="ruby-value">-1</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;,&quot;</span>)
329
- 95: <span class="ruby-identifier">body_add</span>(<span class="ruby-identifier">arr</span>[<span class="ruby-value">-1</span>])
330
- 96: <span class="ruby-keyword kw">end</span>
331
- </pre>
332
- </div>
333
- </div>
334
- </div>
335
-
336
- <div id="method-M000099" class="method-detail">
337
- <a name="M000099"></a>
338
-
339
- <div class="method-heading">
340
- <a href="#M000099" class="method-signature">
341
- <span class="method-name">print</span><span class="method-args">()</span>
342
- </a>
343
- </div>
344
-
345
- <div class="method-description">
346
- <p>
347
- Display <a href="SCGI.html">SCGI</a> <a
348
- href="SCGI.html#M000093">request</a>.
349
- </p>
350
- <p><a class="source-toggle" href="#"
351
- onclick="toggleCode('M000099-source');return false;">[Source]</a></p>
352
- <div class="method-source-code" id="M000099-source">
353
- <pre>
354
- <span class="ruby-comment cmt"># File lib/scgi.rb, line 73</span>
355
- 73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">print</span>
356
- 74: <span class="ruby-ivar">@hash</span>.<span class="ruby-identifier">each_key</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
357
- 75: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{key}:#{@hash[key]}&quot;</span>
358
- 76: }
359
- 77: <span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;,&quot;</span>
360
- 78: <span class="ruby-identifier">puts</span> <span class="ruby-ivar">@body</span>
361
- 79: <span class="ruby-keyword kw">end</span>
362
- </pre>
363
- </div>
364
- </div>
365
- </div>
366
-
367
- <div id="method-M000093" class="method-detail">
368
- <a name="M000093"></a>
369
-
370
- <div class="method-heading">
371
- <a href="#M000093" class="method-signature">
372
- <span class="method-name">request</span><span class="method-args">()</span>
373
- </a>
374
- </div>
375
-
376
- <div class="method-description">
377
- <p>
378
- Getter setter for <a href="SCGI.html#M000093">request</a> in <a
379
- href="SCGI.html">SCGI</a> class.
380
- </p>
381
- <p><a class="source-toggle" href="#"
382
- onclick="toggleCode('M000093-source');return false;">[Source]</a></p>
383
- <div class="method-source-code" id="M000093-source">
384
- <pre>
385
- <span class="ruby-comment cmt"># File lib/scgi.rb, line 33</span>
386
- 33: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request</span>
387
- 34: <span class="ruby-ivar">@request</span>
388
- 35: <span class="ruby-keyword kw">end</span>
389
- </pre>
390
- </div>
391
- </div>
392
- </div>
393
-
394
-
395
- </div>
396
-
397
-
398
- </div>
399
-
400
-
401
- <div id="validator-badges">
402
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
403
- </div>
404
-
405
- </body>
406
- </html>