cyberweb 0.4.174

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.

Potentially problematic release.


This version of cyberweb might be problematic. Click here for more details.

Files changed (573) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +3259 -0
  3. data/bin/cyberweb +27 -0
  4. data/cyberweb.gemspec +119 -0
  5. data/doc/AUTHORS.md +12 -0
  6. data/doc/CONVENTIONS.md +7 -0
  7. data/doc/CYBERWEB_TUTORIAL.cgi +43 -0
  8. data/doc/DOCUMENTATION_FOR_CYBERSPRAWL.md +50 -0
  9. data/doc/FUTURE_DESIGN_GOAL_CONSIDERATIONS.md +13 -0
  10. data/doc/JQUERY.md +122 -0
  11. data/doc/MOUSE.md +80 -0
  12. data/doc/README.gen +3231 -0
  13. data/doc/RENDER_WEB_BASE.md +46 -0
  14. data/doc/USAGE.md +246 -0
  15. data/doc/configuration/configuration.md +23 -0
  16. data/doc/deprecations.md +32 -0
  17. data/doc/html_characters.md +15 -0
  18. data/doc/todo/TODO_FOR_THE_CYBERWEB_PROJECT.md +1089 -0
  19. data/examples/README.md +4 -0
  20. data/examples/advanced/delayed_update_of_the_body_via_javascript.cgi +38 -0
  21. data/examples/advanced/hybrid_experiment.cgi +108 -0
  22. data/examples/advanced/larger_image_on_mouse_over_example.cgi +35 -0
  23. data/examples/advanced/no_right_click.cgi +26 -0
  24. data/examples/advanced/objectified_html_tags.cgi +35 -0
  25. data/examples/advanced/simple_calculator.cgi +42 -0
  26. data/examples/advanced/simple_form_example.cgi +38 -0
  27. data/examples/css/blue_border.html +28 -0
  28. data/examples/css/caret_colour_example.html +22 -0
  29. data/examples/css/css_border_spacing_example.html +69 -0
  30. data/examples/css/css_bubbles.html +43 -0
  31. data/examples/css/css_clock.html +344 -0
  32. data/examples/css/css_drag_and_drop.html +89 -0
  33. data/examples/css/css_neon_glow_effects.html +317 -0
  34. data/examples/css/css_text_decoration_example.html +70 -0
  35. data/examples/css/css_tooltip.html +44 -0
  36. data/examples/css/fade_in_and_fade_out_effect.html +66 -0
  37. data/examples/css/font_size_examples.html +40 -0
  38. data/examples/css/letter_spacing_example.cgi +36 -0
  39. data/examples/css/meter_example.html +31 -0
  40. data/examples/css/on_mouse_button_pressed.html +41 -0
  41. data/examples/css/planets.html +187 -0
  42. data/examples/css/scale_example.html +25 -0
  43. data/examples/css/shadow_example_in_CSS.cgi +30 -0
  44. data/examples/css/sticky_div_example.html +56 -0
  45. data/examples/css/stitched_div.html +36 -0
  46. data/examples/csv/README.md +1 -0
  47. data/examples/csv/sample.csv +10 -0
  48. data/examples/example1.rb +7 -0
  49. data/examples/flip_card_example/flip_card_example.html +72 -0
  50. data/examples/frames/frame_left.html +1 -0
  51. data/examples/frames/frame_right.html +1 -0
  52. data/examples/html/README.md +1 -0
  53. data/examples/html/abbr_example.html +25 -0
  54. data/examples/html/base64_image_example.html +26 -0
  55. data/examples/html/colour_wheel.html +1389 -0
  56. data/examples/html/column_width_example.html +34 -0
  57. data/examples/html/custom_cursor.html +103 -0
  58. data/examples/html/draggable_paragraph.html +12 -0
  59. data/examples/html/fieldset_example.html +25 -0
  60. data/examples/html/frames_example.html +7 -0
  61. data/examples/html/glyph_example.html +43 -0
  62. data/examples/html/hbox_and_vbox_example.html +65 -0
  63. data/examples/html/href_examples.html +27 -0
  64. data/examples/html/input_autofocus_example.html +16 -0
  65. data/examples/html/larger_image_on_mouse_over_example.html +30 -0
  66. data/examples/html/ordered_and_unordered_bulletsin.html +33 -0
  67. data/examples/html/play_video_example.html +13 -0
  68. data/examples/html/readonly_textarea_example.html +23 -0
  69. data/examples/html/remote_image_example.html +10 -0
  70. data/examples/html/simple_unordered_list.html +16 -0
  71. data/examples/html/table_with_header_example.html +27 -0
  72. data/examples/html/two_columns_flex_example.html +39 -0
  73. data/examples/javascript/README.md +2 -0
  74. data/examples/javascript/arrays/arrays_example_in_javascript.html +16 -0
  75. data/examples/javascript/delay_example/delay_example.html +46 -0
  76. data/examples/javascript/drag_support/drag_support.html +37 -0
  77. data/examples/javascript/jquery_drag_and_drop/drag_and_drop_image_example.html +33 -0
  78. data/examples/javascript/on_click_event_hello_world/on_click_event_hello_world.html +21 -0
  79. data/examples/javascript/rgb_to_hex/rgb_to_hex.html +15 -0
  80. data/examples/javascript/screen_resolution/screen_resolution.html +20 -0
  81. data/examples/javascript/select_everything/select_everything.html +14 -0
  82. data/examples/javascript/write_into_a_file/write_into_a_file.html +39 -0
  83. data/examples/rack/README.md +4 -0
  84. data/examples/rack/example_with_html_template.rb +123 -0
  85. data/examples/rack/example_with_rack_and_cyberweb_showing_how_to_use_images.rb +56 -0
  86. data/examples/rack/hello_world_example_with_rack.rb +45 -0
  87. data/examples/rack/lobster.rb +79 -0
  88. data/examples/rack/rack_env.rb +10 -0
  89. data/examples/rack/standalone_example.rb +26 -0
  90. data/examples/show_greek_letters.rb +3 -0
  91. data/examples/simple/on_click_event_hello_world.cgi +34 -0
  92. data/examples/sinatra/001_your_ip_address_is.rb +8 -0
  93. data/examples/sinatra/002_the_request_object.rb +16 -0
  94. data/examples/sinatra/003_hello_world_example.rb +82 -0
  95. data/examples/sinatra/004_splat_example.rb +10 -0
  96. data/examples/sinatra/005_attachment_example.rb +11 -0
  97. data/examples/sinatra/006_outer_self_example.rb +8 -0
  98. data/examples/sinatra/007_mime_type_example.rb +17 -0
  99. data/examples/sinatra/008_post_example.rb +55 -0
  100. data/examples/table_example.rb +37 -0
  101. data/images/cyberweb_favicon.png +0 -0
  102. data/images/cyberweb_logo.png +0 -0
  103. data/images/cyberweb_theme.png +0 -0
  104. data/lib/cyberweb/and_sinatra_base.rb +9 -0
  105. data/lib/cyberweb/autoinclude.rb +20 -0
  106. data/lib/cyberweb/autoinclude_webobject.rb +14 -0
  107. data/lib/cyberweb/base/base.rb +41 -0
  108. data/lib/cyberweb/base/colours.rb +69 -0
  109. data/lib/cyberweb/base/constants.rb +18 -0
  110. data/lib/cyberweb/base/encoding.rb +19 -0
  111. data/lib/cyberweb/base/misc.rb +239 -0
  112. data/lib/cyberweb/base/reset.rb +23 -0
  113. data/lib/cyberweb/base/save_file.rb +22 -0
  114. data/lib/cyberweb/cascading_style_sheets/README.md +4 -0
  115. data/lib/cyberweb/cascading_style_sheets/admonition.css +33 -0
  116. data/lib/cyberweb/cascading_style_sheets/balloon.css +344 -0
  117. data/lib/cyberweb/cascading_style_sheets/border.css +202 -0
  118. data/lib/cyberweb/cascading_style_sheets/code.css +58 -0
  119. data/lib/cyberweb/cascading_style_sheets/colours.css +476 -0
  120. data/lib/cyberweb/cascading_style_sheets/default.css +1836 -0
  121. data/lib/cyberweb/cascading_style_sheets/div.css +26 -0
  122. data/lib/cyberweb/cascading_style_sheets/fonts.css +365 -0
  123. data/lib/cyberweb/cascading_style_sheets/links.css +207 -0
  124. data/lib/cyberweb/cascading_style_sheets/margin.css +677 -0
  125. data/lib/cyberweb/cascading_style_sheets/menu.css +37 -0
  126. data/lib/cyberweb/cascading_style_sheets/message_boxes.css +48 -0
  127. data/lib/cyberweb/cascading_style_sheets/misc.css +162 -0
  128. data/lib/cyberweb/cascading_style_sheets/popup.css +63 -0
  129. data/lib/cyberweb/cascading_style_sheets/rpg.css +51 -0
  130. data/lib/cyberweb/cascading_style_sheets/ruby_regexes.css +33 -0
  131. data/lib/cyberweb/cascading_style_sheets/template2.css +18 -0
  132. data/lib/cyberweb/cascading_style_sheets/text_shadow.css +19 -0
  133. data/lib/cyberweb/cascading_style_sheets/tooltip.css +36 -0
  134. data/lib/cyberweb/cgi/README.md +6 -0
  135. data/lib/cyberweb/cgi/cgi.rb +340 -0
  136. data/lib/cyberweb/cgi/constants.rb +121 -0
  137. data/lib/cyberweb/cgi/cookie.rb +218 -0
  138. data/lib/cyberweb/cgi/core.rb +638 -0
  139. data/lib/cyberweb/cgi/exceptions.rb +223 -0
  140. data/lib/cyberweb/cgi/html.rb +1025 -0
  141. data/lib/cyberweb/cgi/mod_ruby_exception_printer.rb +40 -0
  142. data/lib/cyberweb/cgi/query_extension.rb +431 -0
  143. data/lib/cyberweb/cgi/session/file_store.rb +131 -0
  144. data/lib/cyberweb/cgi/session/memory_store.rb +90 -0
  145. data/lib/cyberweb/cgi/session/pstore.rb +127 -0
  146. data/lib/cyberweb/cgi/session.rb +444 -0
  147. data/lib/cyberweb/cgi/tag_maker.rb +94 -0
  148. data/lib/cyberweb/cgi/util.rb +239 -0
  149. data/lib/cyberweb/charts/README.md +2 -0
  150. data/lib/cyberweb/charts/google_charts.rb +51 -0
  151. data/lib/cyberweb/classes/simple_form.rb +55 -0
  152. data/lib/cyberweb/classes/tooltips.rb +169 -0
  153. data/lib/cyberweb/coloured_tags/coloured_tags.rb +3099 -0
  154. data/lib/cyberweb/colours/colour_chart.rb +117 -0
  155. data/lib/cyberweb/colours/colours.rb +50 -0
  156. data/lib/cyberweb/colours/random_colour.rb +28 -0
  157. data/lib/cyberweb/colours/sanitize_for_colours.rb +95 -0
  158. data/lib/cyberweb/commandline/commandline_interface.rb +49 -0
  159. data/lib/cyberweb/configuration/configuration.rb +66 -0
  160. data/lib/cyberweb/configuration/load_the_configuration_file.rb +73 -0
  161. data/lib/cyberweb/constants/array_images.rb +21 -0
  162. data/lib/cyberweb/constants/array_local_css_files.rb +35 -0
  163. data/lib/cyberweb/constants/array_predefined_constants.rb +23 -0
  164. data/lib/cyberweb/constants/configuration_file.rb +33 -0
  165. data/lib/cyberweb/constants/constants.rb +9 -0
  166. data/lib/cyberweb/constants/file_constants.rb +16 -0
  167. data/lib/cyberweb/constants/http_status_codes.rb +42 -0
  168. data/lib/cyberweb/constants/nl.rb +22 -0
  169. data/lib/cyberweb/constants/project_constants.rb +99 -0
  170. data/lib/cyberweb/constants/roebe.rb +28 -0
  171. data/lib/cyberweb/constants/standalone_constants.rb +309 -0
  172. data/lib/cyberweb/controller/README.md +4 -0
  173. data/lib/cyberweb/controller/webobject_controller.rb +50 -0
  174. data/lib/cyberweb/csv/README.md +2 -0
  175. data/lib/cyberweb/csv/csv.rb +58 -0
  176. data/lib/cyberweb/cybersprawl +1 -0
  177. data/lib/cyberweb/debug/debug.rb +69 -0
  178. data/lib/cyberweb/encoding/encoding.rb +84 -0
  179. data/lib/cyberweb/erb/test.rhtml +81 -0
  180. data/lib/cyberweb/erb/test_template.erb +9 -0
  181. data/lib/cyberweb/evaluate_from_the_same_named_file_then_serve.rb +9 -0
  182. data/lib/cyberweb/favicon/favicon.rb +196 -0
  183. data/lib/cyberweb/generator/README.md +2 -0
  184. data/lib/cyberweb/generator/cgi.rb +201 -0
  185. data/lib/cyberweb/generator/class.rb +25 -0
  186. data/lib/cyberweb/generator/static_webpage.rb +162 -0
  187. data/lib/cyberweb/generator/webpage_for_images.rb +553 -0
  188. data/lib/cyberweb/help/help.rb +29 -0
  189. data/lib/cyberweb/html_codes/README.md +15 -0
  190. data/lib/cyberweb/html_codes/greek_letters.rb +204 -0
  191. data/lib/cyberweb/html_tags/README.md +3 -0
  192. data/lib/cyberweb/html_tags/a.rb +65 -0
  193. data/lib/cyberweb/html_tags/accesskey.rb +25 -0
  194. data/lib/cyberweb/html_tags/blockquote.rb +56 -0
  195. data/lib/cyberweb/html_tags/body.rb +14 -0
  196. data/lib/cyberweb/html_tags/br.rb +19 -0
  197. data/lib/cyberweb/html_tags/button.rb +110 -0
  198. data/lib/cyberweb/html_tags/canvas.rb +59 -0
  199. data/lib/cyberweb/html_tags/chtml.rb +14 -0
  200. data/lib/cyberweb/html_tags/div.rb +163 -0
  201. data/lib/cyberweb/html_tags/fieldset.rb +67 -0
  202. data/lib/cyberweb/html_tags/figure.rb +72 -0
  203. data/lib/cyberweb/html_tags/form.rb +203 -0
  204. data/lib/cyberweb/html_tags/h1.rb +75 -0
  205. data/lib/cyberweb/html_tags/h2.rb +73 -0
  206. data/lib/cyberweb/html_tags/h3.rb +58 -0
  207. data/lib/cyberweb/html_tags/h4.rb +60 -0
  208. data/lib/cyberweb/html_tags/h5.rb +54 -0
  209. data/lib/cyberweb/html_tags/h6.rb +54 -0
  210. data/lib/cyberweb/html_tags/hr.rb +22 -0
  211. data/lib/cyberweb/html_tags/html_tags.rb +240 -0
  212. data/lib/cyberweb/html_tags/i.rb +50 -0
  213. data/lib/cyberweb/html_tags/img.rb +294 -0
  214. data/lib/cyberweb/html_tags/input.rb +345 -0
  215. data/lib/cyberweb/html_tags/label.rb +63 -0
  216. data/lib/cyberweb/html_tags/legend.rb +56 -0
  217. data/lib/cyberweb/html_tags/li.rb +67 -0
  218. data/lib/cyberweb/html_tags/map.rb +31 -0
  219. data/lib/cyberweb/html_tags/nav.rb +63 -0
  220. data/lib/cyberweb/html_tags/object.rb +56 -0
  221. data/lib/cyberweb/html_tags/ol.rb +56 -0
  222. data/lib/cyberweb/html_tags/option.rb +61 -0
  223. data/lib/cyberweb/html_tags/p.rb +90 -0
  224. data/lib/cyberweb/html_tags/pre.rb +164 -0
  225. data/lib/cyberweb/html_tags/section.rb +33 -0
  226. data/lib/cyberweb/html_tags/select.rb +100 -0
  227. data/lib/cyberweb/html_tags/span.rb +338 -0
  228. data/lib/cyberweb/html_tags/strong.rb +39 -0
  229. data/lib/cyberweb/html_tags/table.rb +273 -0
  230. data/lib/cyberweb/html_tags/tbody.rb +24 -0
  231. data/lib/cyberweb/html_tags/td.rb +214 -0
  232. data/lib/cyberweb/html_tags/textarea.rb +138 -0
  233. data/lib/cyberweb/html_tags/th.rb +68 -0
  234. data/lib/cyberweb/html_tags/thead.rb +36 -0
  235. data/lib/cyberweb/html_tags/tr.rb +97 -0
  236. data/lib/cyberweb/html_tags/ul.rb +51 -0
  237. data/lib/cyberweb/html_template/html_template.rb +352 -0
  238. data/lib/cyberweb/images/embed_this_image.rb +37 -0
  239. data/lib/cyberweb/images/images.rb +58 -0
  240. data/lib/cyberweb/images/is_image.rb +22 -0
  241. data/lib/cyberweb/images/path_to_images.rb +60 -0
  242. data/lib/cyberweb/images/real/README.md +6 -0
  243. data/lib/cyberweb/images/remove_this_substring_from_all_images.rb +44 -0
  244. data/lib/cyberweb/images/standalone_drag_and_drop_this_image.rb +64 -0
  245. data/lib/cyberweb/images/string_image.rb +399 -0
  246. data/lib/cyberweb/images_base64_encoded/AUSRUFUNGSZEICHEN.png.md +1 -0
  247. data/lib/cyberweb/images_base64_encoded/BLUEARROW.png.md +1 -0
  248. data/lib/cyberweb/images_base64_encoded/BUBBLE.png.md +1 -0
  249. data/lib/cyberweb/images_base64_encoded/CAT.png.md +1 -0
  250. data/lib/cyberweb/images_base64_encoded/CAUTION.png.md +1 -0
  251. data/lib/cyberweb/images_base64_encoded/CHEERING_PERSON.png.md +1 -0
  252. data/lib/cyberweb/images_base64_encoded/CURSOR.png.md +1 -0
  253. data/lib/cyberweb/images_base64_encoded/DOT_01.png.md +5 -0
  254. data/lib/cyberweb/images_base64_encoded/DUCKY.png.md +1 -0
  255. data/lib/cyberweb/images_base64_encoded/ELEPHANT.png.md +1 -0
  256. data/lib/cyberweb/images_base64_encoded/HALLOWEEN.png.md +1 -0
  257. data/lib/cyberweb/images_base64_encoded/HANGING_MONKEY.png.md +1 -0
  258. data/lib/cyberweb/images_base64_encoded/LENS.png.md +1 -0
  259. data/lib/cyberweb/images_base64_encoded/README.md +2 -0
  260. data/lib/cyberweb/images_base64_encoded/TU_WIEN_LOGO.png.md +1 -0
  261. data/lib/cyberweb/images_base64_encoded/VOGEL.png.md +1 -0
  262. data/lib/cyberweb/io/README.md +1 -0
  263. data/lib/cyberweb/io/io.rb +19 -0
  264. data/lib/cyberweb/javascript/drag_and_drop.rb +105 -0
  265. data/lib/cyberweb/javascript/dragula_collection.rb +54 -0
  266. data/lib/cyberweb/javascript/javascript.rb +211 -0
  267. data/lib/cyberweb/javascript/javascript_bundle.rb +223 -0
  268. data/lib/cyberweb/javascript/javascript_clock.rb +69 -0
  269. data/lib/cyberweb/javascript/javascript_last_modified.rb +27 -0
  270. data/lib/cyberweb/javascript/javascript_magic.rb +150 -0
  271. data/lib/cyberweb/javascript/javascript_selectable.rb +24 -0
  272. data/lib/cyberweb/javascript/jquery.rb +30 -0
  273. data/lib/cyberweb/javascript/on_click_change_opacity.rb +97 -0
  274. data/lib/cyberweb/javascript/on_click_hide.rb +63 -0
  275. data/lib/cyberweb/javascript/popup.rb +80 -0
  276. data/lib/cyberweb/javascript/print_javascript.rb +33 -0
  277. data/lib/cyberweb/javascript/registered_javascript_methods.rb +30 -0
  278. data/lib/cyberweb/javascript/resize.rb +28 -0
  279. data/lib/cyberweb/javascript/return_javascript.rb +48 -0
  280. data/lib/cyberweb/javascript/scroll.rb +17 -0
  281. data/lib/cyberweb/javascript/snoweffect.rb +122 -0
  282. data/lib/cyberweb/javascript_code/README.md +6 -0
  283. data/lib/cyberweb/javascript_code/chmod_displayer.js +74 -0
  284. data/lib/cyberweb/javascript_code/custom_functions.js +267 -0
  285. data/lib/cyberweb/javascript_code/jquery/jquery-3.6.0.js +10881 -0
  286. data/lib/cyberweb/javascript_code/jquery/jquery-ui-1.12.1.js +18706 -0
  287. data/lib/cyberweb/javascript_code/rgb_to_hex.js +14 -0
  288. data/lib/cyberweb/javascript_code/select_even_numbers.js +7 -0
  289. data/lib/cyberweb/javascript_code/select_everything.js +22 -0
  290. data/lib/cyberweb/javascript_code/simple_calculator.js +15 -0
  291. data/lib/cyberweb/javascript_code/sleep.js +3 -0
  292. data/lib/cyberweb/javascript_code/to_celsius.js +8 -0
  293. data/lib/cyberweb/mouse/README.md +3 -0
  294. data/lib/cyberweb/mouse/libxdo.rb +321 -0
  295. data/lib/cyberweb/mouse/mouse.rb +264 -0
  296. data/lib/cyberweb/objectified_html_tags/README.md +8 -0
  297. data/lib/cyberweb/objectified_html_tags/a.rb +129 -0
  298. data/lib/cyberweb/objectified_html_tags/abbr.rb +84 -0
  299. data/lib/cyberweb/objectified_html_tags/base.rb +376 -0
  300. data/lib/cyberweb/objectified_html_tags/button.rb +135 -0
  301. data/lib/cyberweb/objectified_html_tags/combobox.rb +165 -0
  302. data/lib/cyberweb/objectified_html_tags/div.rb +129 -0
  303. data/lib/cyberweb/objectified_html_tags/embed.rb +161 -0
  304. data/lib/cyberweb/objectified_html_tags/form.rb +129 -0
  305. data/lib/cyberweb/objectified_html_tags/h1.rb +129 -0
  306. data/lib/cyberweb/objectified_html_tags/h2.rb +129 -0
  307. data/lib/cyberweb/objectified_html_tags/h3.rb +129 -0
  308. data/lib/cyberweb/objectified_html_tags/h4.rb +129 -0
  309. data/lib/cyberweb/objectified_html_tags/h5.rb +129 -0
  310. data/lib/cyberweb/objectified_html_tags/h6.rb +129 -0
  311. data/lib/cyberweb/objectified_html_tags/hbox.rb +71 -0
  312. data/lib/cyberweb/objectified_html_tags/img.rb +202 -0
  313. data/lib/cyberweb/objectified_html_tags/input.rb +185 -0
  314. data/lib/cyberweb/objectified_html_tags/p.rb +129 -0
  315. data/lib/cyberweb/objectified_html_tags/pre.rb +129 -0
  316. data/lib/cyberweb/objectified_html_tags/span.rb +92 -0
  317. data/lib/cyberweb/objectified_html_tags/table.rb +174 -0
  318. data/lib/cyberweb/objectified_html_tags/textarea.rb +173 -0
  319. data/lib/cyberweb/objectified_html_tags/title.rb +82 -0
  320. data/lib/cyberweb/objectified_html_tags/window.rb +79 -0
  321. data/lib/cyberweb/predefined_and_freeform_methods/README.md +1 -0
  322. data/lib/cyberweb/predefined_and_freeform_methods/frage.rb +45 -0
  323. data/lib/cyberweb/predefined_and_freeform_methods/freeform_methods.rb +93 -0
  324. data/lib/cyberweb/predefined_and_freeform_methods/hash_css_class_to_use.rb +55 -0
  325. data/lib/cyberweb/predefined_and_freeform_methods/hash_registered_extra_tags.rb +29 -0
  326. data/lib/cyberweb/predefined_and_freeform_methods/header.rb +81 -0
  327. data/lib/cyberweb/predefined_and_freeform_methods/predefined_methods.rb +413 -0
  328. data/lib/cyberweb/project/project.rb +85 -0
  329. data/lib/cyberweb/rack/README.md +1 -0
  330. data/lib/cyberweb/rack/request.rb +31 -0
  331. data/lib/cyberweb/requires/README.md +4 -0
  332. data/lib/cyberweb/requires/do_require_web_object_files.rb +9 -0
  333. data/lib/cyberweb/requires/remove_html.rb +9 -0
  334. data/lib/cyberweb/requires/require_cgi.rb +16 -0
  335. data/lib/cyberweb/requires/require_charts.rb +20 -0
  336. data/lib/cyberweb/requires/require_generators.rb +23 -0
  337. data/lib/cyberweb/requires/require_html_tags_files.rb +23 -0
  338. data/lib/cyberweb/requires/require_javascript_files.rb +23 -0
  339. data/lib/cyberweb/requires/require_kimurai.rb +13 -0
  340. data/lib/cyberweb/requires/require_objectified_html_tags_files.rb +23 -0
  341. data/lib/cyberweb/requires/require_sinatra.rb +7 -0
  342. data/lib/cyberweb/requires/require_the_constants.rb +26 -0
  343. data/lib/cyberweb/requires/require_the_cyberweb_project.rb +172 -0
  344. data/lib/cyberweb/requires/require_the_html_template.rb +7 -0
  345. data/lib/cyberweb/requires/require_the_toplevel_methods_files.rb +24 -0
  346. data/lib/cyberweb/requires/require_web_images.rb +7 -0
  347. data/lib/cyberweb/requires/require_web_object_files.rb +25 -0
  348. data/lib/cyberweb/requires/require_yaml.rb +11 -0
  349. data/lib/cyberweb/sinatra/README.md +11 -0
  350. data/lib/cyberweb/sinatra/base.rb +145 -0
  351. data/lib/cyberweb/sinatra/custom_extensions.rb +131 -0
  352. data/lib/cyberweb/standalone_classes/all_css_classes.rb +255 -0
  353. data/lib/cyberweb/standalone_classes/calculator.rb +127 -0
  354. data/lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb +207 -0
  355. data/lib/cyberweb/standalone_classes/input_focus.rb +97 -0
  356. data/lib/cyberweb/standalone_classes/tag_prototype.rb +43 -0
  357. data/lib/cyberweb/standalone_classes/turn_html_into_cyberweb.rb +174 -0
  358. data/lib/cyberweb/svg/blue_rect.svg +12 -0
  359. data/lib/cyberweb/svg/butterfly.svg +15 -0
  360. data/lib/cyberweb/svg/chemical_molecule.svg +192 -0
  361. data/lib/cyberweb/svg/circles_on_background.svg +29 -0
  362. data/lib/cyberweb/svg/ellipse.svg +12 -0
  363. data/lib/cyberweb/svg/five_circles.svg +26 -0
  364. data/lib/cyberweb/svg/flag_germany.svg +10 -0
  365. data/lib/cyberweb/svg/gaussian_blur.svg +20 -0
  366. data/lib/cyberweb/svg/gradient_circle.svg +18 -0
  367. data/lib/cyberweb/svg/green_butterfly.svg +18 -0
  368. data/lib/cyberweb/svg/green_tilted_lines.svg +25 -0
  369. data/lib/cyberweb/svg/lion.svg +161 -0
  370. data/lib/cyberweb/svg/one_circle.svg +12 -0
  371. data/lib/cyberweb/svg/pie_chart.svg +130 -0
  372. data/lib/cyberweb/svg/svg.cgi +61 -0
  373. data/lib/cyberweb/svg/tetris.svg +487 -0
  374. data/lib/cyberweb/svg/three_circles.svg +18 -0
  375. data/lib/cyberweb/svg/tiger.svg +732 -0
  376. data/lib/cyberweb/svg/tilted_arcs.svg +74 -0
  377. data/lib/cyberweb/svg/transparent_rect.svg +12 -0
  378. data/lib/cyberweb/svg/yellow_fe_blending.svg +42 -0
  379. data/lib/cyberweb/toplevel_methods/a.rb +131 -0
  380. data/lib/cyberweb/toplevel_methods/anmerkung.rb +67 -0
  381. data/lib/cyberweb/toplevel_methods/audio.rb +59 -0
  382. data/lib/cyberweb/toplevel_methods/bold.rb +65 -0
  383. data/lib/cyberweb/toplevel_methods/cgi.rb +65 -0
  384. data/lib/cyberweb/toplevel_methods/charsets.rb +52 -0
  385. data/lib/cyberweb/toplevel_methods/clear.rb +30 -0
  386. data/lib/cyberweb/toplevel_methods/close.rb +62 -0
  387. data/lib/cyberweb/toplevel_methods/consider_serving_the_web_object.rb +41 -0
  388. data/lib/cyberweb/toplevel_methods/css.rb +732 -0
  389. data/lib/cyberweb/toplevel_methods/date.rb +71 -0
  390. data/lib/cyberweb/toplevel_methods/dictionary.rb +48 -0
  391. data/lib/cyberweb/toplevel_methods/disable.rb +49 -0
  392. data/lib/cyberweb/toplevel_methods/document.rb +56 -0
  393. data/lib/cyberweb/toplevel_methods/dot.rb +182 -0
  394. data/lib/cyberweb/toplevel_methods/download_webpage.rb +18 -0
  395. data/lib/cyberweb/toplevel_methods/edit_configuration_file.rb +26 -0
  396. data/lib/cyberweb/toplevel_methods/ee.rb +44 -0
  397. data/lib/cyberweb/toplevel_methods/env.rb +44 -0
  398. data/lib/cyberweb/toplevel_methods/escape_html.rb +54 -0
  399. data/lib/cyberweb/toplevel_methods/fields.rb +46 -0
  400. data/lib/cyberweb/toplevel_methods/filename.rb +33 -0
  401. data/lib/cyberweb/toplevel_methods/frames.rb +131 -0
  402. data/lib/cyberweb/toplevel_methods/glob.rb +30 -0
  403. data/lib/cyberweb/toplevel_methods/google.rb +35 -0
  404. data/lib/cyberweb/toplevel_methods/hardware_information.rb +90 -0
  405. data/lib/cyberweb/toplevel_methods/hfin.rb +56 -0
  406. data/lib/cyberweb/toplevel_methods/html_comment.rb +48 -0
  407. data/lib/cyberweb/toplevel_methods/html_mode.rb +39 -0
  408. data/lib/cyberweb/toplevel_methods/html_tables.rb +818 -0
  409. data/lib/cyberweb/toplevel_methods/input.rb +54 -0
  410. data/lib/cyberweb/toplevel_methods/jquery.rb +82 -0
  411. data/lib/cyberweb/toplevel_methods/last_modified.rb +39 -0
  412. data/lib/cyberweb/toplevel_methods/links.rb +426 -0
  413. data/lib/cyberweb/toplevel_methods/listing.rb +96 -0
  414. data/lib/cyberweb/toplevel_methods/localhost.rb +18 -0
  415. data/lib/cyberweb/toplevel_methods/log_directory.rb +84 -0
  416. data/lib/cyberweb/toplevel_methods/logging.rb +42 -0
  417. data/lib/cyberweb/toplevel_methods/logo.rb +30 -0
  418. data/lib/cyberweb/toplevel_methods/markdown.rb +112 -0
  419. data/lib/cyberweb/toplevel_methods/mathml.rb +130 -0
  420. data/lib/cyberweb/toplevel_methods/message_boxes.rb +140 -0
  421. data/lib/cyberweb/toplevel_methods/misc.rb +1398 -0
  422. data/lib/cyberweb/toplevel_methods/name_of_img_dir.rb +51 -0
  423. data/lib/cyberweb/toplevel_methods/padlem_and_marlem.rb +107 -0
  424. data/lib/cyberweb/toplevel_methods/params.rb +57 -0
  425. data/lib/cyberweb/toplevel_methods/path.rb +69 -0
  426. data/lib/cyberweb/toplevel_methods/pdf.rb +103 -0
  427. data/lib/cyberweb/toplevel_methods/process_content.rb +102 -0
  428. data/lib/cyberweb/toplevel_methods/progress.rb +42 -0
  429. data/lib/cyberweb/toplevel_methods/quote.rb +44 -0
  430. data/lib/cyberweb/toplevel_methods/random.rb +70 -0
  431. data/lib/cyberweb/toplevel_methods/rds.rb +35 -0
  432. data/lib/cyberweb/toplevel_methods/read_and_display.rb +284 -0
  433. data/lib/cyberweb/toplevel_methods/readlines.rb +31 -0
  434. data/lib/cyberweb/toplevel_methods/redirect.rb +29 -0
  435. data/lib/cyberweb/toplevel_methods/registered_ids.rb +178 -0
  436. data/lib/cyberweb/toplevel_methods/remove_html.rb +32 -0
  437. data/lib/cyberweb/toplevel_methods/remove_newlines.rb +28 -0
  438. data/lib/cyberweb/toplevel_methods/return_head_start.rb +33 -0
  439. data/lib/cyberweb/toplevel_methods/return_html_fin.rb +34 -0
  440. data/lib/cyberweb/toplevel_methods/return_html_header.rb +35 -0
  441. data/lib/cyberweb/toplevel_methods/return_html_start.rb +24 -0
  442. data/lib/cyberweb/toplevel_methods/return_html_to_head_start.rb +42 -0
  443. data/lib/cyberweb/toplevel_methods/return_meta_collection.rb +54 -0
  444. data/lib/cyberweb/toplevel_methods/return_pwd.rb +23 -0
  445. data/lib/cyberweb/toplevel_methods/return_strict_doctype.rb +51 -0
  446. data/lib/cyberweb/toplevel_methods/roebe.rb +43 -0
  447. data/lib/cyberweb/toplevel_methods/s2.rb +30 -0
  448. data/lib/cyberweb/toplevel_methods/sanitize_url.rb +57 -0
  449. data/lib/cyberweb/toplevel_methods/sbr.rb +170 -0
  450. data/lib/cyberweb/toplevel_methods/server_base_directory.rb +148 -0
  451. data/lib/cyberweb/toplevel_methods/show_and_display.rb +215 -0
  452. data/lib/cyberweb/toplevel_methods/show_configuration.rb +83 -0
  453. data/lib/cyberweb/toplevel_methods/sitemap.rb +111 -0
  454. data/lib/cyberweb/toplevel_methods/spacer.rb +119 -0
  455. data/lib/cyberweb/toplevel_methods/string_body_start.rb +65 -0
  456. data/lib/cyberweb/toplevel_methods/string_content.rb +35 -0
  457. data/lib/cyberweb/toplevel_methods/svg.rb +66 -0
  458. data/lib/cyberweb/toplevel_methods/tag.rb +237 -0
  459. data/lib/cyberweb/toplevel_methods/temp_directory.rb +73 -0
  460. data/lib/cyberweb/toplevel_methods/test_css.rb +24 -0
  461. data/lib/cyberweb/toplevel_methods/textile.rb +45 -0
  462. data/lib/cyberweb/toplevel_methods/title.rb +125 -0
  463. data/lib/cyberweb/toplevel_methods/umlaute.rb +90 -0
  464. data/lib/cyberweb/toplevel_methods/video.rb +352 -0
  465. data/lib/cyberweb/toplevel_methods/view_source.rb +50 -0
  466. data/lib/cyberweb/toplevel_methods/web_object.rb +42 -0
  467. data/lib/cyberweb/toplevel_methods/write_what_into.rb +27 -0
  468. data/lib/cyberweb/utility_scripts/README.md +4 -0
  469. data/lib/cyberweb/utility_scripts/create_coloured_tags.rb +172 -0
  470. data/lib/cyberweb/utility_scripts/download_balloon_css.rb +160 -0
  471. data/lib/cyberweb/utility_scripts/hyperlink_all_images_from.rb +148 -0
  472. data/lib/cyberweb/version/version.rb +25 -0
  473. data/lib/cyberweb/web_base/web_base.rb +28 -0
  474. data/lib/cyberweb/web_images/array_listing_all_project_images.rb +52 -0
  475. data/lib/cyberweb/web_images/map_symbol_to_image_location.rb +1661 -0
  476. data/lib/cyberweb/web_images/web_images.rb +270 -0
  477. data/lib/cyberweb/web_object/css.rb +627 -0
  478. data/lib/cyberweb/web_object/evaluate.rb +126 -0
  479. data/lib/cyberweb/web_object/favicon.rb +160 -0
  480. data/lib/cyberweb/web_object/html_related_tags.rb +320 -0
  481. data/lib/cyberweb/web_object/images.rb +693 -0
  482. data/lib/cyberweb/web_object/initialize.rb +51 -0
  483. data/lib/cyberweb/web_object/input_related_functionality.rb +414 -0
  484. data/lib/cyberweb/web_object/javascript.rb +427 -0
  485. data/lib/cyberweb/web_object/languages.rb +172 -0
  486. data/lib/cyberweb/web_object/links.rb +228 -0
  487. data/lib/cyberweb/web_object/misc.rb +5159 -0
  488. data/lib/cyberweb/web_object/params.rb +289 -0
  489. data/lib/cyberweb/web_object/reset.rb +192 -0
  490. data/lib/cyberweb/web_object/run.rb +44 -0
  491. data/lib/cyberweb/web_object/sinatra_related_functionality.rb +30 -0
  492. data/lib/cyberweb/web_object/sitemap.rb +176 -0
  493. data/lib/cyberweb/web_object/table.rb +378 -0
  494. data/lib/cyberweb/web_object/web_object.rb +126 -0
  495. data/lib/cyberweb/web_scraper/README.md +8 -0
  496. data/lib/cyberweb/web_scraper/scrape_this_url.rb +183 -0
  497. data/lib/cyberweb/webmin/biology_server.cgi +256 -0
  498. data/lib/cyberweb/webmin/calculator.cgi +52 -0
  499. data/lib/cyberweb/webmin/colour_chart.cgi +33 -0
  500. data/lib/cyberweb/webmin/comments.cgi +137 -0
  501. data/lib/cyberweb/webmin/comments_data +18 -0
  502. data/lib/cyberweb/webmin/constants.rb +46 -0
  503. data/lib/cyberweb/webmin/dictionary.cgi +39 -0
  504. data/lib/cyberweb/webmin/sys_info.cgi +26 -0
  505. data/lib/cyberweb/webmin/webforum.cgi +58 -0
  506. data/lib/cyberweb/webmin/webmin.cgi +679 -0
  507. data/lib/cyberweb/yaml/autogenerated_system_settings.yml +14 -0
  508. data/lib/cyberweb/yaml/custom_tags.yml +7 -0
  509. data/lib/cyberweb/yaml/debug.yml +1 -0
  510. data/lib/cyberweb/yaml/html5_global_attributes.yml +12 -0
  511. data/lib/cyberweb/yaml/html5_new_elements.yml +108 -0
  512. data/lib/cyberweb/yaml/html_tag_legend.yml +12 -0
  513. data/lib/cyberweb/yaml/http_status_codes.yml +38 -0
  514. data/lib/cyberweb/yaml/js_files_to_load.yml +28 -0
  515. data/lib/cyberweb/yaml/project_configuration.yml +229 -0
  516. data/lib/cyberweb/yaml/video_attributes.yml +35 -0
  517. data/lib/cyberweb/yaml/web_images.yml +306 -0
  518. data/lib/cyberweb.rb +5 -0
  519. data/test/README.md +5 -0
  520. data/test/complex_tests/all_tests_in_one_page.cgi +666 -0
  521. data/test/complex_tests/simple_sinatra_example_using_cyberweb/simple.rb +60 -0
  522. data/test/complex_tests/sinatra_or_cyberweb/sinatra_or_cyberweb.cgi +7 -0
  523. data/test/complex_tests/sinatra_or_cyberweb/sinatra_or_cyberweb.rb +23 -0
  524. data/test/complex_tests/sinatra_or_cyberweb/sinatra_or_cyberweb.sinatra +65 -0
  525. data/test/complex_tests/testing_frames.cgi +42 -0
  526. data/test/complex_tests/testing_objectified_html_tags.rb +82 -0
  527. data/test/complex_tests/testing_style_variants/README.md +2 -0
  528. data/test/complex_tests/testing_style_variants/show_coloured_boxes.cgi +58 -0
  529. data/test/complex_tests/testing_tables.cgi +67 -0
  530. data/test/complex_tests/testing_the_cyberweb_shell.rb +188 -0
  531. data/test/complex_tests/testing_web_object.rb +94 -0
  532. data/test/css/README.md +5 -0
  533. data/test/css/return_the_content_of_these_css_classes.rb +7 -0
  534. data/test/css/testing_css_effects.cgi +159 -0
  535. data/test/css/testing_css_masking.cgi +36 -0
  536. data/test/dummy.pdf +0 -0
  537. data/test/hello_world/hello_world.cgi +25 -0
  538. data/test/javascript/README.md +2 -0
  539. data/test/javascript/testing_cheerleader_javascript.cgi +0 -0
  540. data/test/javascript/testing_drag_and_drop_support.cgi +33 -0
  541. data/test/javascript/testing_on_click_change_opacity.cgi +26 -0
  542. data/test/javascript/testing_snowflakes.cgi +20 -0
  543. data/test/simple_tests/README.md +3 -0
  544. data/test/simple_tests/ad-hoc-test.cgi +55 -0
  545. data/test/simple_tests/commandline_tests.rb +70 -0
  546. data/test/simple_tests/display_this_file.cgi +11 -0
  547. data/test/simple_tests/simple_html_example.cgi +29 -0
  548. data/test/simple_tests/simple_status_page.cgi +52 -0
  549. data/test/simple_tests/string_s2_test.rb +11 -0
  550. data/test/simple_tests/test_simple_string_as_input.rb +12 -0
  551. data/test/simple_tests/testing_base64_images.cgi +26 -0
  552. data/test/simple_tests/testing_dragging_an_image.cgi +23 -0
  553. data/test/simple_tests/testing_editable_text.cgi +16 -0
  554. data/test/simple_tests/testing_email.cgi +31 -0
  555. data/test/simple_tests/testing_embedding_a_pdf_file.cgi +32 -0
  556. data/test/simple_tests/testing_google_charts.cgi +24 -0
  557. data/test/simple_tests/testing_html_forms.cgi +31 -0
  558. data/test/simple_tests/testing_html_template.rb +13 -0
  559. data/test/simple_tests/testing_popup_div.cgi +22 -0
  560. data/test/simple_tests/testing_return_dataset_without_any_comments.rb +11 -0
  561. data/test/simple_tests/testing_the_cap_box.cgi +20 -0
  562. data/test/simple_tests/testing_the_div_tag.cgi +21 -0
  563. data/test/simple_tests/testing_the_headers_tag.cgi +36 -0
  564. data/test/simple_tests/testing_the_html_colours.cgi +19 -0
  565. data/test/simple_tests/testing_the_info_box.cgi +19 -0
  566. data/test/simple_tests/testing_the_li_tag.cgi +24 -0
  567. data/test/simple_tests/testing_the_s2_method.rb +7 -0
  568. data/test/simple_tests/testing_the_select_tag.cgi +23 -0
  569. data/test/simple_tests/testing_the_span_tag.cgi +36 -0
  570. data/test/simple_tests/testing_web_images.rb +12 -0
  571. data/test/testing_html_tags/README.md +7 -0
  572. data/test/testing_html_tags/button_example.cgi +42 -0
  573. metadata +759 -0
@@ -0,0 +1,666 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # http://localhost/programming/ruby/src/cyberweb/test/complex_tests/all_tests_in_one_page.cgi
6
+ #
7
+ # or
8
+ #
9
+ # http://localhost/programming/ruby/src/cyberweb/test/complex_tests/all_tests_in_one_page.cgi?debug
10
+ # =========================================================================== #
11
+ # This file will extensively test some abilities of the web_object-framework.
12
+ #
13
+ # See the URL above to test it.
14
+ # =========================================================================== #
15
+ require 'cyberweb/autoinclude'
16
+ require 'verbose_truth/autoinclude'
17
+
18
+ english('Testing all tests in one page') {
19
+ css_style '
20
+
21
+ li {
22
+ color: black;
23
+ background-color: white;
24
+ }
25
+
26
+ ul {
27
+ color: black;
28
+ background-color: white;
29
+ }# frozen_string_literal: true
30
+
31
+ #resize_id_goes_here {
32
+ width: 150px; height: 150px;
33
+ padding: 0.5em;
34
+ }
35
+
36
+ #resize_id_goes_here h3 { text-align: center; color: green; margin: 0; }
37
+
38
+ '
39
+ # .focus_with_yellow_background:focus {
40
+ # background-color: yellow;
41
+ # color: black;
42
+ # }
43
+ # ^^^ no longer in use.
44
+ remote_css 'https://rawgit.com/bevacqua/dragula/master/dist/dragula.css'
45
+ set_favicon 'PC/HOW2DO_FAVICON.png' # Or: set_favicon :wings
46
+ # add_css_file '/sprockets.css' # Does not seem to exist.
47
+ body_css_class 'BG_Black White pad1px'
48
+ font_size :larger
49
+ # background_image :random # Not good if someone else can look at the laptop.
50
+ # background :scroll # Enable scrolling background.
51
+ # enable_scrolling # Enable background scrolling
52
+ # scrolling '+' # Enable background scrolling.
53
+ use 'jquery,utf,exceptions,squares,scrolling' # Scrolling is enabled here.
54
+ do_drag_all_images
55
+ predefine_squares
56
+
57
+ # =========================================================================== #
58
+ # The following constants require the earlier call to predefined_squares().
59
+ # =========================================================================== #
60
+ CSS_IMG = IMG_CSS = SQUARE_DARKGOLDENROD
61
+ IMG_JS = SQUARE_GREY
62
+ IMG_HTML = SQUARE_GREEN
63
+ IMG_XML = SQUARE_RED
64
+ DOT109 = dot(109)
65
+
66
+ doc('BG_White black mar0px pad0px') {
67
+ h1 'This website will try to test different aspects of the Cyberweb '\
68
+ 'project, in particular when it is related to javascript and '\
69
+ 'css as well.',
70
+ 'martb1px'
71
+ # h1 'Showing an info box next:'
72
+ # add_info_box
73
+ e 'Hi there','mart1px'
74
+ div { h3 'Test1 - should appear normal' }
75
+ Div.set_css_class 'red' # Now all divs are red.
76
+ # Test2 - should be red, due to Div.set_css_class 'red'
77
+ div { h3 "Test2 - should be red, due to a prior call to Div.set_css_class 'red'" }
78
+ Div.clear
79
+ # Test3 - should be normal again, thanks to <b>Div.clear</b> above.
80
+ div { h3 'Test3 - should be normal again, thanks to <b>Div.clear</b>' }
81
+ div('marl1em') { h3 'Test4 (with marl1em)' }
82
+ Div.set_css_class 'blue'
83
+ div('marl3em') { h3 "Test5 - with marl3em and blue colour, "\
84
+ "specified via: Div.set_css_class 'blue'" }
85
+ Div.clear # And clear it again.
86
+ # ========================================================================= #
87
+ # A draggable Table
88
+ # ========================================================================= #
89
+ table2('BG_White s2em mar2px bblack3 marl5em',
90
+ 'drag_TableRubyVariables','',
91
+ '$','global variable',
92
+ '@','instance variable',
93
+ '[a-z]','local variable',
94
+ '[A-Z]','constant'
95
+ )
96
+ # ========================================================================= #
97
+ # === A table with an Array as dataset
98
+ # ========================================================================= #
99
+ div('mar1em pad1em wid90 bblack3','','margin-top: 1.5em;'){
100
+ h3 'A table with an Array as dataset (passed via block)',
101
+ 'darkblue mart5px'
102
+ table('mars1em','test_table1','border:1px solid rand') { %w(
103
+ this is a test table1 with every individual
104
+ entry becoming populated into the table
105
+ )}
106
+ spacer
107
+ h3 'A table with an Array as dataset but with 4 entries per row',
108
+ 'darkblue mart5px'
109
+ table4('mars1em','test_table1','border:1px solid rand') { %w(
110
+ this is a test
111
+ table1 with every individual
112
+ entry becoming populated into
113
+ the fat table here
114
+ )}
115
+ }
116
+ spacer
117
+ br
118
+ # ========================================================================= #
119
+ # Table with a pink border. This currently (May 2021) does not work
120
+ # correctly.
121
+ # ========================================================================= #
122
+ e 'Next, the css-class will be set to <b>a pink border</b> (and 3 elements) -
123
+ this element can also be <b>dragged</b>.'
124
+ Table.set_css_class 'bblack5 pink_border3 marl2em mart1em'
125
+ table(Table.to_s, 'drag_test_table2','') { %w(
126
+ cat dog hamster
127
+ )}
128
+ br
129
+ # ========================================================================= #
130
+ # A table with 3 members and a random-coloured border.
131
+ # ========================================================================= #
132
+ e 'Next a table with <b>3 members</b> (<i>car</i>, <i>bus</i>, <i>plane</i>) and a
133
+ <b>8px random-colour border</b> - which can also be <b>dragged</b>.'
134
+ table('mars2em pad0_5em','drag_test_table3','border: 8px solid RANDOM_COLOUR') { %w(
135
+ car bus plane train ship boat
136
+ )}
137
+ br
138
+ Table.clear
139
+ # ========================================================================= #
140
+ # Simple table usage.
141
+ # ========================================================================= #
142
+ dataset = %w(
143
+ yo there how do you do this is another simple table without any fancy markup
144
+ )
145
+ e 'Next, a simple table usage with '+dataset.size.to_s+' elements:'
146
+ br
147
+ table { dataset }
148
+ br
149
+ Cyberweb.clear :div # Need to clear the <div> tag again.
150
+ div('mart1em') {
151
+ h2 'read_file_into_array()'
152
+ use_this_file = '../../doc/MOUSE.md'
153
+ e 'Next, as we are in the directory '+Dir.pwd+' we will also
154
+ demonstrate the method <b>read_file_into_array()</b>
155
+ on the file <b>'+use_this_file+'</b> - and we will also use a
156
+ <b>10px solid paleturquoise</b> border.'
157
+ target = File.expand_path(Dir.pwd+'/'+use_this_file)
158
+ array = File.readlines(target)
159
+ table('mars1em martb1em padt1em','test_table4','border: 10px solid paleturquoise') {
160
+ array
161
+ }
162
+ e 'Or alternatively with a <b>caption</b> on top:'
163
+ br
164
+ h3 target
165
+ table_with_caption(use_this_file,'mars1em mart1em padt1em','test_table4','border: 10px solid paleturquoise') {
166
+ array
167
+ }
168
+ }
169
+ br
170
+ # ========================================================================= #
171
+ # TD-padding to the left. We will hescape() the String.
172
+ # ========================================================================= #
173
+ result = hescape('Next, all <td> elements are ')+
174
+ "<b>padded to the left side</b>
175
+ via <b>Td.set_css_class 'padl3em'</b>."
176
+ br
177
+ e result.delete("\n")
178
+ Td.set_css_class 'padl3em'
179
+ table { %w(
180
+ yo there this time with modified td
181
+ )}
182
+ br
183
+ # ========================================================================= #
184
+ # Black border around each <td> element.
185
+ # ========================================================================= #
186
+ e hescape('The next table will show a black border around each
187
+ <td> element, by using the CSS class <b>bblack1</b>,')+'via <b>Td.set_css_class()</b>:'
188
+ br
189
+ Td.set_css_class 'bblack1'
190
+ table('mars2em') { %w(
191
+ yo there this time with modified td
192
+ )}
193
+ Td.clear
194
+ br
195
+ e htmlescape('Now we have reset <td> and we will use some border-spacing (10 pt):')
196
+ br
197
+ table('mars2em bspace10','','border:1px solid black') { %w( border-spacing def ghi jkl ) }
198
+ br
199
+ e htmlescape('To compare with, this is border-spacing with 1pt:')
200
+ br
201
+ table('mars2em bspace1','','border:1px solid black') { %w( border-spacing def ghi jkl ) }
202
+ hr
203
+ # ========================================================================= #
204
+ # Which CSS classes have been found:
205
+ # ========================================================================= #
206
+ h3 'Which <b>CSS classes</b> have we found in this file
207
+ `<b class="orange">'+__FILE__.to_s+'</b>`?'
208
+ spacer
209
+ report_which_css_classes_were_found
210
+ spacer
211
+ div { view_source 'bblack1' }
212
+ br
213
+ hr
214
+ div {
215
+ h3 'Now testing video stuff, from Project MultimediaParadise.'
216
+ youtube_embedder 'https://www.youtube.com/watch?v=7L6uEstbd9Y',
217
+ 275 # This is the embedding part - as above but more width.
218
+ }
219
+ webobject_params? # Show the params.
220
+ br
221
+ br
222
+ e 'Next, we test JQuery - click on it:'
223
+ ejavascript '
224
+ $(\'html, body\').animate({
225
+ scrollTop: $(".middle").offset().top
226
+ }, 2000);'
227
+ div(:onhover){
228
+ h3 'Test onhover here'
229
+ }
230
+ e 'Now we will test some links.'
231
+ link 'Testing'
232
+ A.set_css_class 'bold red larger' # Style them red.
233
+ link 'Testing'
234
+ br
235
+ hr
236
+ br
237
+ e htmlescape('Ok testing pink colour for all <span> tags
238
+ next via Span.set_css_class().')
239
+ Span.set_css_class 'marl1em pink bold larger'
240
+ span 'yo there'
241
+ br
242
+ spacer # Dot tag
243
+ h3 'Next testing the various in-built dot() methods'
244
+ div('marl3em') {
245
+ (1..12).each {|number|
246
+ ee number
247
+ sg(('dot'+number.to_s).to_sym,'marr5px')
248
+ ee N
249
+ }
250
+ }
251
+ spacer
252
+ br
253
+ h2 'Testing MathML next'
254
+ e 'a to the power of 5 (via the method <b>power_to()</b>'
255
+ ee power_to('a', 5)
256
+ spacer
257
+ div {
258
+ h3 'Next testing the creation of fancy CSS boxes (this may require
259
+ Firefox, though):'
260
+ ee generate_coloured_box
261
+ ee generate_coloured_box '','','Welcome Roebe!'
262
+ ee generate_coloured_box '','','Roebe!','200px'
263
+ ee generate_coloured_box 'darkgreen','','Roebe!!!'
264
+ ee generate_coloured_box 'orange','','Roebe!!!','400px'
265
+ }
266
+ h3 'Testing customized tags next:'
267
+ ee process_content('<ud>What is going on?</ud> (← This should appear underlined.)')
268
+ br
269
+ h3 'Play a local audio file (Conan_RidersOfDoom.ogg):'
270
+ audio '/Conan_RidersOfDoom.ogg'
271
+ br
272
+ # ========================================================================= #
273
+ # Display a colour table next
274
+ # ========================================================================= #
275
+ h3 'Displaying a colour-table next (only 10 colours though)','pad5px','',
276
+ 'border-left: 5px solid orange'
277
+ h5 'colour_table() is currently disabled, as of May 2021. It may be '\
278
+ 're-enabled at a later time.'
279
+ # colour_table(
280
+ # { show: 10, css_style: 'width:40%; background-color: black; padding:1em; margin-left:3em' }
281
+ # )
282
+ br
283
+ spacer
284
+ e 'We will now test the various input tags.'
285
+ div('marl5em','input'){
286
+ h5 'input: <b>image</b>'
287
+ input :image
288
+ h5 'input: <b>button</b>'
289
+ input :button
290
+ h5 'input: <b>hidden</b>'
291
+ input :hidden
292
+ h5 'input: <b>submit</b>'
293
+ input :submit
294
+ h5 'input: <b>reset</b>'
295
+ input :reset
296
+ h5 'input: <b>text</b>'
297
+ input :text
298
+ h5 'input: <b>file_dialogue</b>'
299
+ input :file_dialogue
300
+ h5 'input: <b>file</b>'
301
+ e '<input type="file">'
302
+ }
303
+ br
304
+ h2 'Now testing embedded Javascript in an input field:'
305
+ #button 'Go Back From Whence You Came', on_click: 'go back in history'
306
+ h3 'This has been disabled for now (May 2021) - we need to re-enable it.'
307
+ # button 'Go Back From Whence You Came', on_click: 'go back in history'
308
+ # <input type="button" value="Go Back From Whence You Came!" onclick="history.back(-1)" />
309
+ br
310
+ # ========================================================================= #
311
+ # Testing the <input> tag next:
312
+ #
313
+ # .focus_with_yellow_background:focus is a CSS directive in this file
314
+ # here.
315
+ # ========================================================================= #
316
+ e html_ready('Next testing the <input> tag, first normal, then select-all
317
+ and then the same thing again but with input:focus and once more with
318
+ colour: deepskyblue and then with colour: salmon.')
319
+ Input.set_css_class "FS2em"
320
+ div('mars2em mart1em ind0px','input_testing'){ # rf cybertest input_testing
321
+ input :text, 'Hello world!'
322
+ input :text, 'Hello World! - select on click', :select_on_click
323
+ br
324
+ input :text, 'Hello world! - focus on yellow background', :focus_with_yellow_background
325
+ input :text, 'Hello World! - focus on yellow background and select on click', :focus_with_yellow_background, :select_on_click
326
+ br
327
+ input :text, 'Hello world! - focus with deepskyblue background', :focus_with_deepskyblue_background
328
+ input :text, 'Hello World! - focus with deepskyblue background and select on click', :focus_with_deepskyblue_background, :select_on_click
329
+ br
330
+ input :text, 'Hello world! - salmon background', :focus_with_salmon_background
331
+ input :text, 'Hello World!', :focus_with_salmon_background, :select_on_click
332
+ Input.clear # And clear it again.
333
+ # input(:text, 'Hello World!') { :select_on_click }
334
+ }
335
+ br
336
+ last_modified?
337
+ br
338
+ h2 'Next testing <b>RANDOM_BORDER_12PX</b>, in the div:'
339
+ div('mart1em pad1em','','RANDOM_BORDER_12PX') {
340
+ h3 hescape(
341
+ 'This <div> here should have a random border, with a width of 12 pixel.'
342
+ )
343
+ }
344
+ div {
345
+ h2 'We will report which tag was last in use:'
346
+ report_which_tag_was_used_last 'marl2em'
347
+ h3 'We will report which tag was last in use:','','test_tag'
348
+ report_which_tag_was_used_last 'marl3em'
349
+ }
350
+ br
351
+ # ========================================================================= #
352
+ # The warning boxes will appear next.
353
+ # ========================================================================= #
354
+ spacer
355
+ h2 'Several warning boxes will appear next - they can be dragged:'
356
+ info_box 'Hi there how do you do','__drag__','','width:30%'
357
+ success_box 'Hi there how do you do','__drag__','','width:30%'
358
+ error_box 'Hi there how do you do','__drag__','','width:30%'
359
+ warning_box 'Hi there how do you do','__drag__','','width:30%'
360
+ spacer
361
+ br
362
+ spacer
363
+ div('bblack1 pad1em wid50','drag_one','background-color: white') { h2 'hello world!'}
364
+ br
365
+ p {
366
+ ee 'Hover here<span class="tooltip">Text</span>'
367
+ }
368
+ br
369
+ # ========================================================================= #
370
+ # === Testing xrandr
371
+ # ========================================================================= #
372
+ div {
373
+ e 'Testing xrandr:','larger'
374
+ spacer
375
+ result = `xrandr 2>&1`.to_s.chomp
376
+ pre(result)
377
+ spacer
378
+ }
379
+ field_with_legend 'Password','','field_with_legend' # http://localhost/PROGRAMMING_LANGUAGES/RUBY/src/web_object/test/tests.cgi#field_with_legend
380
+ e AUSRUFUNG+'Zum Einloggen benutzt man root/root'
381
+ cfieldset; drag :field_with_legend
382
+ # ========================================================================= #
383
+ # Show an embedded frame next:
384
+ # ========================================================================= #
385
+ embedded_frame :linux_cmd, width: '90%'
386
+ error_box 'Hi there how do you do ERROR', :drag,'','width:30%'
387
+ spacer
388
+ h2 'Will we use exceptions?'
389
+ lem verbose_truth(Cyberweb.use_exceptions?.to_s)
390
+ spacer
391
+ div {
392
+ e rating :one
393
+ e rating :two
394
+ e rating :three
395
+ e rating :four
396
+ e rating :five
397
+ }
398
+ e 'Some more tests:'
399
+ e Cyberweb.instance_variables
400
+ e Cyberweb.convert_umlaute
401
+ e Cyberweb.do_convert_umlaute
402
+ e Cyberweb.convert_umlaute
403
+ e Cyberweb.stag 'hi'
404
+ br
405
+ # ========================================================================= #
406
+ # Testing the popups (popup tag, popups tag). Disabled for now.
407
+ # popup 'Testing ...','1'
408
+ # popup 'Testing ...','2'
409
+ # popup 'Testing ...'
410
+ # ========================================================================= #
411
+ e 'There used to be some popups here, but they are disabled as of now. ^^^'
412
+ br
413
+ div('mar1em') {
414
+ e 'Now showing the environmental variables.'
415
+ spacer
416
+ e '(Disabled as of May 2021 - has to be re-enabled at a later time.)'
417
+ # display_environmental_variables
418
+ spacer
419
+ # ======================================================================= #
420
+ # Next we will show the configuration that we will use.
421
+ # ======================================================================= #
422
+ e 'Next we will show the <b>current configuration</b> in use for '+
423
+ 'the Cyberweb project:'
424
+ br
425
+ # div('mars3em') { w.show_config }
426
+ spacer
427
+ }
428
+ br
429
+ e Cyberweb.escape_html('Next testing <quote> tag:')
430
+ quote 'Hello world!'
431
+ e 'Next testing dropdown()'
432
+ dropdown
433
+ br
434
+ h2 'Embedding a .pdf file next (disabled for now - it takes too long)','marb4px'
435
+ div('mars1_5em wid80') {
436
+ embed_pdf '../../../../../STUDIUM/EXAMS_RESULT/AAA_EXAM_RESULTS.pdf'
437
+ } if false
438
+ anm ' Also note that if you invoke any .cgi page via a
439
+ <b>?pdf</b> parameter, then it will be stored in a .pdf
440
+ file.'
441
+ br
442
+ abr 'SELF?pdf', content: 'SELF', css_class: 'darkblue BOLD mars2em'
443
+ spacer
444
+ e 'The logfile is stored at:'
445
+ lem2 '<b>'+Cyberweb.logfile?.to_s+'</b>'
446
+ spacer
447
+ # h2 'Now showing all the IDs that were found so far:'
448
+ # show_all_ids?
449
+ # spacer
450
+ # ========================================================================= #
451
+ # Dragula tag
452
+ # ========================================================================= #
453
+ h2 'Next testing Dragula'
454
+ div('BG_Black pad1em mars2em White'){
455
+ ee '
456
+ <ul>
457
+ <li>item 1</li>
458
+ <li>item 2</li>
459
+ <li>item 3</li>
460
+ <li>item 4</li>
461
+ <li>item 5</li>
462
+ <li>item 6</li>
463
+ <li>item 7</li>'
464
+ cul
465
+ }
466
+ ee "<div class='parent'>
467
+ <label for='hy'>Drag handles float your cruise?</label>
468
+ <div class='wrapper'>
469
+ <div id='left-lovehandles' class='container'>
470
+ <div><span class='handle'>+</span>Move me, but you can use the plus sign to drag me around.</div>
471
+ <div><span class='handle'>+</span>Note that <code>handle</code> element in the <code>moves</code> handler is just the original event target.</div>
472
+ </div>
473
+ <div id='right-lovehandles' class='container'>
474
+ <div><span class='handle'>+</span>This might also be useful if you want multiple children of an element to be able to trigger a drag event.</div>
475
+ <div><span class='handle'>+</span>You can also use the <code>moves</code> option to determine whether an element can be dragged at all from a container, <em>drag handle or not</em>.</div>
476
+ </div>
477
+ </div>
478
+ <code>
479
+ dragula([document.getElementById(left), document.getElementById(right)], {
480
+ moves: function (el, container, handle) {
481
+ return handle.className === 'handle';
482
+ }
483
+ });
484
+ </code>"
485
+ spacer
486
+ div {
487
+ h2 'Hide p tags, on click'
488
+ on_click_hide 'p'
489
+ ee '
490
+ <p>If you click on me, I will disappear.</p>
491
+ <p>Click me away!</p>
492
+ <p>Click me too!</p>'
493
+ }
494
+ div {
495
+ h2 'The Web Object'
496
+ pp Cyberweb.html_escape(web_object?)
497
+ spacer
498
+ pp web_object?.drag_all_images?
499
+ spacer
500
+ } if false # This can be re-enabled at a later time again.
501
+ e 'Testing some constants:'
502
+ e RUBY
503
+ e SQUARE_VIOLET if defined? SQUARE_VIOLET
504
+ br
505
+ snoweffect
506
+ br
507
+ # ========================================================================= #
508
+ # === Will we debug
509
+ # ========================================================================= #
510
+ div {
511
+ e 'Will we debug?'
512
+ e debug?.to_s
513
+ }
514
+ spacer
515
+ # ========================================================================= #
516
+ # === Show all greek letters
517
+ # ========================================================================= #
518
+ Cyberweb.show_greek_letters
519
+ spacer
520
+ # ========================================================================= #
521
+ # === Testing the SVG Addons (svg tag)
522
+ # ========================================================================= #
523
+ if Object.const_defined? :SvgParadise
524
+ h3 'Next we will test the SVG Paradise add-ons:'
525
+ ee Cyberweb.circle
526
+ ee Cyberweb.circle(colour: :blue)
527
+ ee Cyberweb.circle(colour: :teal)
528
+ ee Cyberweb.circle(colour: :teal, radius: 3)
529
+ ee Cyberweb.circle(colour: :yellow, radius: 3, stroke_width: 8)
530
+ br
531
+ spacer
532
+ h5 'The next SVG "image" should be draggable'
533
+ ee '<svg id="a_random_svg_image" height="125" width="125"> <circle fill="darkseagreen" /> </svg>'
534
+ drag :a_random_svg_image
535
+ end
536
+ # ========================================================================= #
537
+ # === Resizable
538
+ # ========================================================================= #
539
+ div('ui-widget-content','resize_id_goes_here') {
540
+ h3 'Testing a resizable widget','ui-widget-header s1em'
541
+ }
542
+ ee '
543
+ <b class="round_border1"></b>
544
+ <b class="round_border2"></b>
545
+ <b class="round_border3"></b>
546
+ <b class="round_border4"></b>
547
+ <div class="round_border_content">
548
+ <div>Round Border</div>
549
+ </div>
550
+ <b class="round_border4"></b>
551
+ <b class="round_border3"></b>
552
+ <b class="round_border2"></b>
553
+ <b class="round_border1"></b>
554
+ <br/>'
555
+ # ========================================================================= #
556
+ # === Test Table.alternate_backgrounds
557
+ # ========================================================================= #
558
+ e 'Next we try <b>Table.alternate_backgrounds</b>'
559
+ br
560
+ Table.alternate_backgrounds(%w( one two three four ), 'bblack1 pad0_5em')
561
+ Table.alternate_backgrounds(%w( one two three four ), 'bblack1')
562
+ Table.alternate_backgrounds(%w( one two three four ))
563
+ spacer
564
+ e sg(:sword)
565
+ spacer
566
+ div('mart1em') {
567
+ e 'Undurchsichtig:'
568
+ br
569
+ e ' opacity: 1.0;','css'
570
+ br
571
+ e 'Sehr durchsichtig:'
572
+ br
573
+ e ' opacity: 0.2;','css'
574
+ br
575
+ e 'Das kann man so anwenden:'
576
+ br
577
+ marl1em 'div { opacity: 1.0;}','css'
578
+ marl1em 'div:hover { opacity: 0.9;}','css'
579
+ br
580
+ e 'Beispiele hierzu:'
581
+ br
582
+ p('marl2em hover_test1') {
583
+ e 'With hover'
584
+ }
585
+ p('marl2em') {
586
+ e 'Without hover'
587
+ }
588
+ p('marl2em opa5_hover') {
589
+ e 'With hover again'
590
+ }
591
+ p('marl2em') {
592
+ e 'With javascript-hover this time',
593
+ javascript_code: 'onmouseover="this.style.background=\'lightblue\';"'
594
+ }
595
+ }
596
+ spacer
597
+ div {
598
+ e 'A background image can be modified like this, by
599
+ stating the path via <b>url()</b>:'
600
+ e IMG_CSS+'background-image:url("bilder\sonnenblume_blass.jpg");','css'
601
+ e IMG_CSS+'background-image: url("marble.gif") }','css'
602
+ e IMG_CSS+'background-image: url("../images/PC/MATRIX/MATRIX.png") ','css'
603
+ css_code 'background-repeat:no-repeat;'
604
+ css_code 'background-attachment:fixed;'
605
+ div('','','background-image: url(\"../../../../../../images/PC/MATRIX/MATRIX.png\")') {
606
+ h3 'Test'
607
+ }
608
+ }
609
+ spacer
610
+ # ========================================================================= #
611
+ # === CSS und pseudo-links
612
+ # ========================================================================= #
613
+ div {
614
+ h3 'CSS und pseudo-links'
615
+ e 'Die pseudo-classes kann man in Verbindung mit Klassen verwenden.'
616
+ br
617
+ e 'Beispiel:'
618
+ br
619
+ css_code ' a.nameofclass:hover { color: red; }'
620
+ }
621
+ spacer
622
+ ee '
623
+ <table>
624
+ <tr>
625
+
626
+ <td class="dark_background">
627
+ one
628
+ </td>
629
+ </tr>
630
+
631
+ <tr>
632
+
633
+ <td class="light_background">
634
+ two
635
+ </td>
636
+ </tr>
637
+ <tr>
638
+
639
+ <td class="dark_background">
640
+ three
641
+ </td>
642
+ </tr>
643
+ <tr>
644
+
645
+ <td class="light_background">
646
+ four
647
+ </td>
648
+ </tr>'
649
+ ctable
650
+ spacer
651
+
652
+ # ========================================================================= #
653
+ # Some links
654
+ # ========================================================================= #
655
+ div('mars1em mart1em pad0_5em','link_collection','border:1px darkgreen dotted') {
656
+ h2 sg(:random,'marr0_5em','drag_random')+'Some Links:'
657
+ div('padl1em mars2em smaller') {
658
+ ee sg(:pfeil_rechts,'marr5px')
659
+ abr :local_webmin,
660
+ content: 'SELF_ONLY_NAME'
661
+ ee sg(:pfeil_rechts,'marr5px')
662
+ abr 'testing_email.cgi',
663
+ content: 'Test the email part of the Cyberweb Project'
664
+ }
665
+ }
666
+ }}