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,176 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'cyberweb/web_object/sitemap.rb'
6
+ # =========================================================================== #
7
+ require 'cyberweb/base/base.rb'
8
+
9
+ module Cyberweb
10
+
11
+ class WebObject < Base # === Cyberweb::WebObject
12
+
13
+ require 'cyberweb/toplevel_methods/sitemap.rb'
14
+
15
+ # ========================================================================= #
16
+ # === autogenerated_sitemap
17
+ #
18
+ # This method will autogenerate a default Sitemap (an intralink).
19
+ #
20
+ # If the second argument for `optional_id` is :sort, then we will sort
21
+ # the result first before displaying it.
22
+ # ========================================================================= #
23
+ def autogenerated_sitemap(
24
+ css_class = '',
25
+ optional_id = '',
26
+ optional_css_style = 'top: 2px; right: 2px; background-color: #eee;',
27
+ append_css = true, # By default we will append more CSS rules.
28
+ &block
29
+ )
30
+ # ======================================================================= #
31
+ # Obtain the dataset first.
32
+ # ======================================================================= #
33
+ registered_sitemaps = ::Cyberweb.array_registered_sitemaps?
34
+ css_for_li_elements = 'marl1px darkblue'
35
+ default_css_class_to_use = 'pad5px bblack1 black posab'
36
+ if block_given?
37
+ yielded = yield
38
+ # ===================================================================== #
39
+ # === Handle Blocks next
40
+ # ===================================================================== #
41
+ if yielded.is_a? Hash
42
+ # =================================================================== #
43
+ # === :css_style
44
+ # =================================================================== #
45
+ if yielded.has_key? :css_style
46
+ _ = yielded.delete :css_style
47
+ default_css_class_to_use = ''
48
+ optional_css_style = _
49
+ end
50
+ end
51
+ end
52
+ case optional_id
53
+ # ======================================================================= #
54
+ # === :sort
55
+ # ======================================================================= #
56
+ when :sort
57
+ registered_sitemaps.sort!
58
+ optional_id = ''
59
+ end
60
+ if css_class.empty?
61
+ if append_css # This is the default.
62
+ css_class = css_class.dup if css_class.frozen?
63
+ css_class << " #{default_css_class_to_use}"
64
+ end
65
+ else # Else, user passed arguments here.
66
+ css_class = css_class.dup if css_class.frozen?
67
+ css_class << " #{default_css_class_to_use}"
68
+ end
69
+ # ======================================================================= #
70
+ # Next comes the <div> that will hold our sitemap. For now this
71
+ # will always be a <div> element.
72
+ # ======================================================================= #
73
+ div(css_class, optional_id, optional_css_style) {
74
+ ee html_comment('Sitemap tag')
75
+ h2 'Sitemap','black whi martb2px pad2px s4px yel mar1px',
76
+ 'SitemapHeader',
77
+ 'background-color:darkblue;'
78
+ # ===================================================================== #
79
+ # Build up the proper <ul> tag next.
80
+ # ===================================================================== #
81
+ ul(id: 'SitemapNavigation') {
82
+ registered_sitemaps.each { |sitemap_id|
83
+ li('',css_for_li_elements) {
84
+ a '#'+sanitize_id(sitemap_id),
85
+ content: sitemap_id,
86
+ css_class: 'darkblue'
87
+ }
88
+ }
89
+ }
90
+ }
91
+ end; alias show_sitemap autogenerated_sitemap # === show_sitemap
92
+ alias display_sitemap autogenerated_sitemap # === display_sitemap
93
+ alias asitemap autogenerated_sitemap # === asitemap
94
+ alias add_sitemap autogenerated_sitemap # === add_sitemap
95
+
96
+ # ========================================================================= #
97
+ # === header_for_sitemap
98
+ #
99
+ # This is a header that can be used to generate a sitemap.
100
+ #
101
+ # Note that if it is used it will also automatically generate
102
+ # a sitemap on the top right of the page. This was one major
103
+ # reason why this method was created - I wanted to automatically
104
+ # use a sitemap if I use such a header.
105
+ # ========================================================================= #
106
+ def header_for_sitemap(i)
107
+ id = i.tr(' ','_').tr('⁺','')
108
+ register_sitemap(i, id)
109
+ h2(i, '',id)
110
+ end
111
+
112
+ # ========================================================================= #
113
+ # === register_sitemap
114
+ #
115
+ # Use only this method to register an id to a sitemap. This is
116
+ # done automatically when we invoke the method sitemap().
117
+ #
118
+ # This method will delegate towards the toplevel-method, on the Cyberweb
119
+ # namespace.
120
+ #
121
+ # If the second argument `modify_input` is set to true, we will
122
+ # replace all occurrences of '_' with ' '. The reason for this
123
+ # is that HTML ids should not contain ' ' characters.
124
+ # ========================================================================= #
125
+ def register_sitemap(
126
+ i, modify_input = false
127
+ )
128
+ # ======================================================================= #
129
+ # Next simply delegate onto the toplevel method called
130
+ # Cyberweb.register_sitemap().
131
+ # ======================================================================= #
132
+ ::Cyberweb.register_sitemap(i, modify_input)
133
+ end; alias add_to_sitemap register_sitemap # === register_sitemap
134
+ alias sitemap register_sitemap # === sitemap
135
+
136
+ # ========================================================================= #
137
+ # === array_for_sitemap?
138
+ #
139
+ # Accessor-method towards the array-constant.
140
+ # ========================================================================= #
141
+ def array_for_sitemap?
142
+ ::Cyberweb.array_for_sitemap?
143
+ end; alias array_for_sitemap array_for_sitemap? # === array_for_sitemap
144
+
145
+ # ========================================================================= #
146
+ # === add_roebe_sitemap_link
147
+ #
148
+ # This method will add a link to my (local) sitemap. This is fairly
149
+ # useless for other people, so don't use this method really.
150
+ # ========================================================================= #
151
+ def add_roebe_sitemap_link(
152
+ optional_css_class = 'mars1em steelblue BOLD'
153
+ )
154
+ use_this_as_the_content = :self
155
+ if block_given?
156
+ yielded = yield
157
+ case yielded
158
+ # ===================================================================== #
159
+ # === :right_arrow
160
+ # ===================================================================== #
161
+ when :right_arrow
162
+ use_this_as_the_content = '→ Local Sitemap'
163
+ end
164
+ end
165
+ abr :local_sitemap,
166
+ content: use_this_as_the_content,
167
+ css_class: optional_css_class
168
+ end; alias roebe_sitemap add_roebe_sitemap_link # === roebe_sitemap
169
+ alias to_the_roebe_sitemap add_roebe_sitemap_link # === to_the_roebe_sitemap
170
+ alias to_roebe_sitemap add_roebe_sitemap_link # === to_roebe_sitemap
171
+ alias to_roebe add_roebe_sitemap_link # === to_roebe
172
+ alias back_to_sitemap add_roebe_sitemap_link # === back_to_sitemap
173
+ alias to_the_sitemap add_roebe_sitemap_link # === to_the_sitemap
174
+ alias link_to_the_local_sitemap add_roebe_sitemap_link # === link_to_the_local_sitemap
175
+
176
+ end; end
@@ -0,0 +1,378 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'cyberweb/web_object/table.rb'
6
+ # =========================================================================== #
7
+ require 'cyberweb/base/base.rb'
8
+
9
+ module Cyberweb
10
+
11
+ class WebObject < Base # === Cyberweb::WebObject
12
+
13
+ require 'cyberweb/toplevel_methods/html_tables.rb'
14
+ require 'cyberweb/html_tags/table.rb'
15
+
16
+ # ========================================================================= #
17
+ # === table4
18
+ # ========================================================================= #
19
+ def table4(
20
+ css_class = '',
21
+ the_id = '',
22
+ css_style = '',
23
+ *content,
24
+ &block
25
+ )
26
+ addn(
27
+ string_table4(
28
+ css_class,
29
+ the_id,
30
+ css_style,
31
+ content,
32
+ &block
33
+ )
34
+ )
35
+ end
36
+
37
+ # ========================================================================= #
38
+ # === string_table4
39
+ # ========================================================================= #
40
+ def string_table4(
41
+ css_class = '',
42
+ the_id = '',
43
+ css_style = '',
44
+ *content,
45
+ &block
46
+ )
47
+ # ======================================================================= #
48
+ # To test, try:
49
+ #
50
+ # puts ::Cyberweb.string_table4('','','',%w( ah asjhk avshvasjkh vajhksavjhk avsjhvashkjavs ))
51
+ #
52
+ # ======================================================================= #
53
+ ::Cyberweb.string_table4(
54
+ css_class,
55
+ the_id,
56
+ css_style,
57
+ content,
58
+ &block
59
+ )
60
+ end
61
+
62
+ # ========================================================================= #
63
+ # === string_table2
64
+ # ========================================================================= #
65
+ def string_table2(
66
+ css_class = '',
67
+ the_id = '',
68
+ css_style = '',
69
+ *content,
70
+ &block
71
+ )
72
+ ::Cyberweb.string_table2(
73
+ css_class,
74
+ the_id,
75
+ css_style,
76
+ content,
77
+ &block
78
+ )
79
+ end
80
+
81
+ # ========================================================================= #
82
+ # === table2
83
+ #
84
+ # This variant maks a two-elements-per-row HTML table.
85
+ #
86
+ # The last variable is the content; keep it even, if possible, e. g
87
+ # 2 elements or 4 or 6 and so forth.
88
+ # ========================================================================= #
89
+ def table2(
90
+ css_class = '',
91
+ id = '',
92
+ css_style = '',
93
+ *content,
94
+ &block
95
+ )
96
+ addn(
97
+ string_table2(
98
+ css_class,
99
+ id,
100
+ css_style,
101
+ content.flatten,
102
+ &block
103
+ )
104
+ )
105
+ end
106
+
107
+ # ========================================================================= #
108
+ # === table7
109
+ # ========================================================================= #
110
+ def table7(
111
+ css_class = '', id = '', css_style = '', *content
112
+ )
113
+ addn(
114
+ string_table7(
115
+ css_class, id, css_style, content
116
+ )
117
+ )
118
+ end
119
+
120
+ # ========================================================================= #
121
+ # === string_table7
122
+ # ========================================================================= #
123
+ def string_table7(
124
+ css_class = '', id = '', css_style = '', *content
125
+ )
126
+ # ======================================================================= #
127
+ # To test, try:
128
+ #
129
+ # puts ::Cyberweb.string_table5('','','',%w( ah asjhk avshvasjkh vajhksavjhk avsjhvashkjavs ))
130
+ #
131
+ # ======================================================================= #
132
+ ::Cyberweb.string_table7(
133
+ css_class, id, css_style, content
134
+ )
135
+ end
136
+
137
+ # ========================================================================= #
138
+ # === string_table5
139
+ # ========================================================================= #
140
+ def string_table5(
141
+ css_class = '', id = '', css_style = '', *content
142
+ )
143
+ # ======================================================================= #
144
+ # To test, try:
145
+ #
146
+ # puts ::Cyberweb.string_table5('','','',%w( ah asjhk avshvasjkh vajhksavjhk avsjhvashkjavs ))
147
+ #
148
+ # ======================================================================= #
149
+ ::Cyberweb.string_table5(
150
+ css_class, id, css_style, content
151
+ )
152
+ end
153
+
154
+ # ========================================================================= #
155
+ # === table3
156
+ # ========================================================================= #
157
+ def table3(css_class = '', id = '', css_style = '', *content)
158
+ addn(
159
+ string_table3(
160
+ css_class, id, css_style, content
161
+ )
162
+ )
163
+ end
164
+
165
+ # ========================================================================= #
166
+ # === table
167
+ # ========================================================================= #
168
+ def table(
169
+ optional_css_class = '',
170
+ optional_the_id = '',
171
+ optional_css_style = ''
172
+ )
173
+ addnl(
174
+ '<table'+
175
+ css_class_or_no_class(optional_css_class)+
176
+ id_or_no_id(optional_the_id)+
177
+ css_style_or_no_style(optional_css_style)+
178
+ '>'
179
+ )
180
+ end
181
+
182
+ # ========================================================================= #
183
+ # === table12_with_heading
184
+ # ========================================================================= #
185
+ def table12_with_heading(css_class = '', id = '', css_style = '', *content)
186
+ addn(
187
+ string_table12_with_heading(
188
+ css_class, id, css_style, content
189
+ )
190
+ )
191
+ end
192
+
193
+ # ========================================================================= #
194
+ # === table11_with_heading
195
+ # ========================================================================= #
196
+ def table11_with_heading(css_class = '', id = '', css_style = '', *content)
197
+ addn(
198
+ string_table11_with_heading(
199
+ css_class, id, css_style, content
200
+ )
201
+ )
202
+ end
203
+
204
+ # ========================================================================= #
205
+ # === string_table11_with_heading
206
+ # ========================================================================= #
207
+ def string_table11_with_heading(
208
+ css_class = '', id = '', css_style = '', *content
209
+ )
210
+ ::Cyberweb.string_table11_with_heading(
211
+ css_class, id, css_style,
212
+ content
213
+ )
214
+ end
215
+
216
+ # ========================================================================= #
217
+ # === string_table2_with_heading
218
+ # ========================================================================= #
219
+ def string_table2_with_heading(css_class = '', id = '', css_style = '', *content)
220
+ ::Cyberweb.string_table2_with_heading(
221
+ css_class, id, css_style,
222
+ content
223
+ )
224
+ end
225
+
226
+ # ========================================================================= #
227
+ # === string_table12_with_heading
228
+ # ========================================================================= #
229
+ def string_table12_with_heading(css_class = '', id = '', css_style = '', *content)
230
+ ::Cyberweb.string_table12_with_heading(
231
+ css_class, id, css_style,
232
+ content
233
+ )
234
+ end
235
+
236
+ # ========================================================================= #
237
+ # === string_table5_with_heading
238
+ # ========================================================================= #
239
+ def string_table5_with_heading(css_class = '', id = '', css_style = '', *content)
240
+ ::Cyberweb.string_table5_with_heading(
241
+ css_class, id, css_style,
242
+ content
243
+ )
244
+ end
245
+
246
+ # ========================================================================= #
247
+ # === table5_with_heading
248
+ # ========================================================================= #
249
+ def table5_with_heading(css_class = '', id = '', css_style = '', *content)
250
+ addn(
251
+ string_table5_with_heading(
252
+ css_class, id, css_style, content
253
+ )
254
+ )
255
+ end
256
+
257
+ # ========================================================================= #
258
+ # === table2_with_heading
259
+ # ========================================================================= #
260
+ def table2_with_heading(css_class = '', id = '', css_style = '', *content)
261
+ addn(
262
+ string_table2_with_heading(
263
+ css_class, id, css_style, content
264
+ )
265
+ )
266
+ end
267
+
268
+ # ========================================================================= #
269
+ # === table_set_css_class
270
+ # ========================================================================= #
271
+ def table_set_css_class(
272
+ i = 'marl2em'
273
+ )
274
+ ::Cyberweb::Table.set_css_class(i)
275
+ end
276
+
277
+ # ========================================================================= #
278
+ # === table_padding=
279
+ # ========================================================================= #
280
+ def table_padding=(i = 10)
281
+ ::Cyberweb::Table.padding = i
282
+ end
283
+
284
+ # ========================================================================= #
285
+ # === table_clear
286
+ # ========================================================================= #
287
+ def table_clear
288
+ ::Cyberweb::Table.clear
289
+ end
290
+
291
+ # ========================================================================= #
292
+ # === table_parse
293
+ # ========================================================================= #
294
+ def table_parse(*i)
295
+ addnl(
296
+ ::Cyberweb::Table.parse(i)
297
+ )
298
+ end
299
+
300
+ # ========================================================================= #
301
+ # === string_table3
302
+ #
303
+ # We will delegate towards Cyberweb.string_table3 for the
304
+ # functionality here.
305
+ # ========================================================================= #
306
+ def string_table3(
307
+ css_class = '',
308
+ id = '',
309
+ css_style = '',
310
+ *content
311
+ )
312
+ ::Cyberweb.string_table3(
313
+ css_class,
314
+ id,
315
+ css_style,
316
+ content
317
+ )
318
+ end
319
+
320
+ # ========================================================================= #
321
+ # === table2_from_this_file
322
+ #
323
+ # This variant will read from an existing file, ideally a markdown file
324
+ # .md. One row in the HTML table corresponds to one line in the original
325
+ # markdown file.
326
+ #
327
+ # Note that currently we will split on ':' which is hardcoded; not
328
+ # sure whether this will change in the future or not.
329
+ # ========================================================================= #
330
+ def table2_from_this_file(
331
+ optional_css_class = '',
332
+ optional_the_id = '',
333
+ optional_css_style = '',
334
+ this_file = 'games_timeline.md'
335
+ )
336
+ if File.exist? this_file
337
+ dataset = File.readlines(this_file, encoding: 'UTF-8').reject {|line|
338
+ line.start_with?('#') or line.strip.empty? # Ignore comments and empty lines.
339
+ }
340
+ splitted_dataset = dataset.map {|entry|
341
+ if entry.include? ':'
342
+ splitted = entry.split(':')
343
+ entry = [
344
+ splitted[0 .. -2].join(':'),
345
+ splitted[-1].strip
346
+ ]
347
+ end
348
+ entry
349
+ }
350
+ dataset = splitted_dataset
351
+ table2(
352
+ optional_css_class,
353
+ optional_the_id,
354
+ optional_css_style,
355
+ *dataset
356
+ )
357
+ else
358
+ e 'No file exists at '+this_file
359
+ end
360
+ end
361
+
362
+ # ========================================================================= #
363
+ # === ctable
364
+ # ========================================================================= #
365
+ def ctable
366
+ close(:table)
367
+ end
368
+
369
+ # ========================================================================= #
370
+ # === parse_table
371
+ # ========================================================================= #
372
+ def parse_table(*args)
373
+ addnl(
374
+ ::Cyberweb.parse_table(args)
375
+ )
376
+ end
377
+
378
+ end; end
@@ -0,0 +1,126 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === Cyberweb::WebObject
6
+ #
7
+ # The purpose of the class WebObject is to represent a web-object,
8
+ # an object which is able to output a full HTML page - as a long
9
+ # string - to any client.
10
+ #
11
+ # This HTML dump is stored in the instance variable :result, which is
12
+ # kept within @internal_hash. You can query its content via the method
13
+ # result? or string?.
14
+ #
15
+ # The best way to use this class is to simply require it, firstly,
16
+ # like by doing so:
17
+ #
18
+ # require 'web_object'
19
+ # web_object = Cyberweb::WebObject.new
20
+ #
21
+ # Afterwards, you can set the specific slots that you want to use on
22
+ # the object individually, or in a batch-variant by using a {} Hash.
23
+ #
24
+ # The alias "w" is the most common idiom to address this "web object"
25
+ # (w: this is easy to remember, simply remember that w stands for
26
+ # "web object" here).
27
+ #
28
+ # Once you have initiated a new web-object, there are several different
29
+ # ways how to use that web-object.
30
+ # =========================================================================== #
31
+ # The global CSS object follows this API here:
32
+ #
33
+ # Cyberweb::WebObject.new {{
34
+ # div: 'padding: 20em; color: green;',
35
+ # p: 'margin: 10em;',
36
+ # h2: 'color: yellow; background-color:black;'
37
+ # }}
38
+ #
39
+ # If we are going to redo this, we will probably add a new key such as
40
+ #
41
+ # :global_css_style
42
+ #
43
+ # =========================================================================== #
44
+ # require 'cyberweb/web_object/web_object.rb'
45
+ # =========================================================================== #
46
+ require 'cyberweb/base/base.rb'
47
+
48
+ module Cyberweb
49
+
50
+ class WebObject < Base # === Cyberweb::WebObject
51
+
52
+ require 'stringio'
53
+ require 'html_tags/base/base_module.rb'
54
+ require 'cyberweb/constants/array_local_css_files.rb'
55
+ require 'cyberweb/constants/nl.rb'
56
+ require 'cyberweb/constants/standalone_constants.rb'
57
+ require 'cyberweb/configuration/load_the_configuration_file.rb'
58
+ require 'cyberweb/web_object/evaluate.rb'
59
+ require 'cyberweb/web_object/favicon.rb'
60
+ require 'cyberweb/web_object/html_related_tags.rb'
61
+ require 'cyberweb/web_object/images.rb'
62
+ require 'cyberweb/web_object/initialize.rb'
63
+ require 'cyberweb/web_object/input_related_functionality.rb'
64
+ require 'cyberweb/web_object/javascript.rb'
65
+ require 'cyberweb/web_object/languages.rb'
66
+ require 'cyberweb/web_object/misc.rb'
67
+ require 'cyberweb/web_object/params.rb'
68
+ require 'cyberweb/web_object/reset.rb'
69
+ require 'cyberweb/web_object/run.rb'
70
+ require 'cyberweb/web_object/sinatra_related_functionality.rb'
71
+ require 'cyberweb/web_object/sitemap.rb'
72
+ require 'cyberweb/web_object/table.rb'
73
+ require 'cyberweb/toplevel_methods/name_of_img_dir.rb'
74
+ require 'cyberweb/toplevel_methods/listing.rb'
75
+ require 'cyberweb/toplevel_methods/quote.rb'
76
+ require 'cyberweb/toplevel_methods/pdf.rb'
77
+ require 'cyberweb/toplevel_methods/misc.rb'
78
+ require 'cyberweb/toplevel_methods/sanitize_url.rb'
79
+ require 'cyberweb/toplevel_methods/title.rb'
80
+ require 'cyberweb/toplevel_methods/pdf.rb'
81
+ require 'cyberweb/toplevel_methods/svg.rb'
82
+ require 'cyberweb/toplevel_methods/css.rb'
83
+ require 'cyberweb/toplevel_methods/return_html_to_head_start.rb'
84
+ require 'cyberweb/toplevel_methods/show_configuration.rb'
85
+ require 'cyberweb/toplevel_methods/string_body_start.rb'
86
+ require 'cyberweb/toplevel_methods/web_object.rb'
87
+ require 'cyberweb/coloured_tags/coloured_tags.rb'
88
+ require 'cyberweb/debug/debug.rb'
89
+ require 'cyberweb/classes/tooltips.rb'
90
+ require 'cyberweb/predefined_and_freeform_methods/predefined_methods.rb'
91
+ require 'cyberweb/javascript/popup.rb'
92
+ require 'cyberweb/javascript/javascript_bundle.rb'
93
+ require 'cyberweb/javascript/drag_and_drop.rb'
94
+ require 'cyberweb/requires/require_web_images.rb'
95
+ require 'cyberweb/html_tags/img.rb'
96
+ require 'cyberweb/html_tags/form.rb'
97
+ require 'cyberweb/html_tags/textarea.rb'
98
+ require 'cyberweb/html_tags/fieldset.rb'
99
+ require 'cyberweb/javascript/drag_and_drop.rb'
100
+
101
+ end
102
+
103
+ # =========================================================================== #
104
+ # === Cyberweb.new
105
+ #
106
+ # The toplevel method new, as in Cyberweb.new, will instantiate a
107
+ # new WebObject-instance.
108
+ # =========================================================================== #
109
+ def self.new(
110
+ i = nil, &block
111
+ )
112
+ ::Cyberweb::WebObject.new(i, &block)
113
+ end; self.instance_eval { alias initialize_web_object new } # === Cyberweb.initialize_web_object
114
+ self.instance_eval { alias create_web_object new } # === Cyberweb.create_web_object
115
+ self.instance_eval { alias [] new } # === Cyberweb[]
116
+ # ==================================================================== #
117
+ # Trying the next as well - but I am not sure if we
118
+ # should keep this.
119
+ # ==================================================================== #
120
+ self.instance_eval { alias w new } # === Cyberweb.w (this is the main alias, w()).
121
+
122
+ end
123
+
124
+ if __FILE__ == $PROGRAM_NAME
125
+ Cyberweb::WebObject.new(ARGV)
126
+ end # web_object.rb
@@ -0,0 +1,8 @@
1
+ The code in this directory relates to web-scraping, that is,
2
+ to obtain data from a remote website - including content
3
+ that may be dynamically rendered through JavaScript.
4
+
5
+ Presently (August 2018) only one .rb file deals with that,
6
+ which is a simple class that can be used to download e. g.
7
+ pages from a university (made available in yet another
8
+ project, called "studium").