cyberweb 0.4.174

Sign up to get free protection for your applications and to get access to all the features.

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,427 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'cyberweb/web_object/javascript.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/jquery.rb'
14
+ require 'cyberweb/javascript/javascript.rb'
15
+ require 'cyberweb/toplevel_methods/html_comment.rb'
16
+
17
+ # ========================================================================= #
18
+ # === make_this_id_draggable
19
+ #
20
+ # Note that this will be guaranteed to always add the corresponding
21
+ # javascript code, which is different to javascript_drag_and_drop().
22
+ # ========================================================================= #
23
+ def make_this_id_draggable(this_id)
24
+ addnl(
25
+ ::Cyberweb.return_javascript_drag_and_drop(this_id)
26
+ )
27
+ end
28
+
29
+ # ========================================================================= #
30
+ # === javascript_drag_and_drop
31
+ # ========================================================================= #
32
+ def javascript_drag_and_drop(i)
33
+ if use_jquery?
34
+ make_this_id_draggable(i)
35
+ end
36
+ end; alias drag_and_drop javascript_drag_and_drop # === drag_and_drop
37
+ alias drag_n_drop javascript_drag_and_drop # === drag_n_drop
38
+ alias drag_drop javascript_drag_and_drop # === drag_drop
39
+ alias drag javascript_drag_and_drop # === drag
40
+ alias add_javascript_drag javascript_drag_and_drop # === add_javascript_drag
41
+ alias drag_this javascript_drag_and_drop # === drag_this
42
+ alias enable_drag_for javascript_drag_and_drop # === enable_drag_for
43
+ alias drag_this_id javascript_drag_and_drop # === drag_this_id
44
+
45
+ # ========================================================================= #
46
+ # === this_jquery_version
47
+ #
48
+ # This method will always return the latest jquery version to use.
49
+ #
50
+ # It will query a toplevel method for this, rather than storing
51
+ # this internally.
52
+ # ========================================================================= #
53
+ def this_jquery_version
54
+ ::Cyberweb.jquery_version? # Ought to be a String, always.
55
+ end; alias jquery_version? this_jquery_version # === jquery_version?
56
+
57
+ # ========================================================================= #
58
+ # === path_to_jquery_dir?
59
+ # ========================================================================= #
60
+ def path_to_jquery_dir?
61
+ ::Cyberweb.path_to_jquery_dir?
62
+ end
63
+
64
+ # ========================================================================= #
65
+ # === return_jquery_string
66
+ #
67
+ # Since as of 21.09.2014 this method will return two .js files here.
68
+ #
69
+ # The version of jquery-ui is currently hardcoded.
70
+ #
71
+ # The latest version of jquery-ui can be viewed here:
72
+ #
73
+ # https://code.jquery.com/ui/
74
+ #
75
+ # ========================================================================= #
76
+ def return_jquery_string(
77
+ jquery_ui_version = Cyberweb.jquery_ui_version?
78
+ )
79
+ return ::Cyberweb.return_jquery_string(jquery_ui_version)
80
+ end; alias build_jquery_string return_jquery_string # === build_jquery_string
81
+
82
+ require 'cyberweb/javascript/drag_and_drop.rb'
83
+ # ========================================================================= #
84
+ # === drag_and_drop
85
+ # ========================================================================= #
86
+ def drag_and_drop(
87
+ this_id = 'drag_test'
88
+ )
89
+ if use_jquery?
90
+ addnl(
91
+ ::Cyberweb.return_javascript_drag_and_drop(this_id)
92
+ )
93
+ end
94
+ end; alias drag drag_and_drop # === drag
95
+ alias enable_drag_for drag_and_drop # === enable_drag_for
96
+ alias drag_n_drop drag_and_drop # === drag_n_drop
97
+ alias drag_drop drag_and_drop # === drag_drop
98
+ alias add_javascript_drag drag_and_drop # === add_javascript_drag
99
+
100
+ # ========================================================================= #
101
+ # === update_the_body
102
+ #
103
+ # This method will update the content of the <body> tag, via javascript.
104
+ # ========================================================================= #
105
+ def update_the_body(with_this_content)
106
+ ejavascript'
107
+ document.body.innerHTML = "'+with_this_content+'"
108
+ '
109
+ end
110
+
111
+ # ========================================================================= #
112
+ # === ejavascript
113
+ #
114
+ # The name of this method indicates "echo javascript", mostly for
115
+ # historic/legacy reasons.
116
+ # ========================================================================= #
117
+ def ejavascript(i = '')
118
+ if i.is_a? Symbol
119
+ case i
120
+ # ===================================================================== #
121
+ # === :popup_open
122
+ # ===================================================================== #
123
+ when :popup_open
124
+ i = '
125
+ function popup_open(name_of_the_id = "popup_element") {
126
+ var popup = document.getElementById(name_of_the_id);
127
+ popup.classList.toggle("show");
128
+ }
129
+ '
130
+ end
131
+ end
132
+ addn(
133
+ return_javascript(i)
134
+ )
135
+ end; alias javascript ejavascript # === javascript
136
+ alias embed_javascript ejavascript # === embed_javascript
137
+ alias embed_this_javascript ejavascript # === embed_this_javascript
138
+ alias ejavascript_code ejavascript # === ejavascript_code
139
+ alias add_this_javascript_code ejavascript # === add_this_javascript_code
140
+ alias script ejavascript # === script
141
+
142
+ # ========================================================================= #
143
+ # === javascript_defer
144
+ #
145
+ # The point of defer is to indicate that a javascript-file will
146
+ # not be changing structure of the page as it is being executed.
147
+ #
148
+ # Note that the defer attribute is supported only for external
149
+ # script files; it is ignored for internal javascript code.
150
+ # ========================================================================= #
151
+ def javascript_defer(
152
+ use_this_source
153
+ )
154
+ addnl(
155
+ '<script defer src="'+use_this_source+'"></script>'
156
+ )
157
+ end
158
+
159
+ # ========================================================================= #
160
+ # === disable_right_click
161
+ # ========================================================================= #
162
+ def disable_right_click
163
+ addnl(
164
+ ::Cyberweb.disable_right_click(:return_it)
165
+ )
166
+ end; alias no_right_click disable_right_click # === no_right_click
167
+
168
+ # ========================================================================= #
169
+ # === append_jquery_string
170
+ # ========================================================================= #
171
+ def append_jquery_string
172
+ if use_jquery?
173
+ append return_jquery_string
174
+ end
175
+ end
176
+
177
+ # ========================================================================= #
178
+ # === return_javascript
179
+ # ========================================================================= #
180
+ def return_javascript(i)
181
+ ::Cyberweb.return_javascript(i)
182
+ end
183
+
184
+ # ========================================================================= #
185
+ # === use_jquery?
186
+ #
187
+ # This allows us to use jquery specifically.
188
+ # ========================================================================= #
189
+ def use_jquery?
190
+ @config['use_jquery']
191
+ end
192
+
193
+ # ========================================================================= #
194
+ # === javascript_file=
195
+ #
196
+ # A wrapper towards cyberweb.rb and javascript_file() method.
197
+ #
198
+ # Usage example:
199
+ #
200
+ # w.javascript_file = :fader
201
+ #
202
+ # ========================================================================= #
203
+ def javascript_file=(i)
204
+ @internal_hash[:javascript] << javascript_file(i)+N
205
+ end; alias link_in_javascript javascript_file= # === link_in_javascript
206
+ alias load_javascript javascript_file= # === load_javascript
207
+
208
+ require 'cyberweb/javascript/javascript_last_modified.rb'
209
+ # ========================================================================= #
210
+ # === javascript_last_modified
211
+ # ========================================================================= #
212
+ def javascript_last_modified(i = '')
213
+ addnl(
214
+ ::Cyberweb.javascript_last_modified(i)
215
+ )
216
+ end
217
+
218
+ # ========================================================================= #
219
+ # === display_time
220
+ #
221
+ # Simply display the time.
222
+ # ========================================================================= #
223
+ def display_time(
224
+ in_what_format = :javascript,
225
+ css_style = ''
226
+ )
227
+ if in_what_format.is_a?(Hash) and in_what_format.has_key?(:css_style)
228
+ css_style = in_what_format.delete(:css_style)
229
+ in_what_format = :javascript
230
+ end
231
+ div('','clock',css_style) {
232
+ case in_what_format
233
+ # ===================================================================== #
234
+ # === :javascript
235
+ # ===================================================================== #
236
+ when :javascript, :default
237
+ return_javascript "updateClock(); setInterval('updateClock()', 1000 )"
238
+ when :ruby
239
+ e Time.now.strftime('%H:%M:%S')
240
+ end
241
+ }
242
+ end
243
+
244
+ # ========================================================================= #
245
+ # === show_cheerleader
246
+ #
247
+ # Shows an ASCII cheerleader.
248
+ # ========================================================================= #
249
+ def show_cheerleader(
250
+ path_to_cheerleader_file = Cyberweb.path_to_data?+'CODE/javascript/cheerleader.js'
251
+ )
252
+ filename = 'cheerleader.js'
253
+ _ = path_to_cheerleader_file
254
+ _ << filename unless _[-filename.size, filename.size] == filename
255
+ load_javascript(_)
256
+ end
257
+
258
+ # ========================================================================= #
259
+ # === display_simple_clock
260
+ #
261
+ # This is a simpler clock variant.
262
+ # ========================================================================= #
263
+ def display_simple_clock(
264
+ optional_css_class = ''
265
+ )
266
+ ee '<p id="id_for_the_simple_clock_timer" class="'+optional_css_class.to_s+'"></p>'
267
+ addnl(
268
+ return_javascript '
269
+ simple_clock_timer();
270
+ var timer = setInterval(function() {
271
+ simple_clock_timer();
272
+ }, 1000);
273
+
274
+ function return_formatted_time() {
275
+ var d = new Date();
276
+ var formatted_time = ("0"+d.getHours()).slice(-2)+":"+
277
+ ("0"+d.getMinutes()).slice(-2)+":"+
278
+ ("0"+d.getSeconds()).slice(-2);
279
+ return formatted_time;
280
+ }
281
+
282
+ function simple_clock_timer() {
283
+ document.getElementById("id_for_the_simple_clock_timer").innerHTML = return_formatted_time();
284
+ }
285
+ '
286
+ )
287
+ end
288
+
289
+ # ========================================================================= #
290
+ # === chmod_displayer
291
+ # ========================================================================= #
292
+ def chmod_displayer(i = :default)
293
+ addnl(
294
+ ::Cyberweb.chmod_displayer(i)
295
+ )
296
+ end
297
+
298
+ require 'cyberweb/javascript/javascript.rb'
299
+ # ========================================================================= #
300
+ # === sanitize_javascript
301
+ # ========================================================================= #
302
+ def sanitize_javascript(i)
303
+ ::Cyberweb.sanitize_javascript(i)
304
+ end
305
+
306
+ # ========================================================================= #
307
+ # === javascript_script=
308
+ #
309
+ # This method assigns to the @javascript variable. We expect it to
310
+ # hold strings related to javascript-code.
311
+ # ========================================================================= #
312
+ def javascript_script=(i)
313
+ if @internal_hash[:javascript].frozen?
314
+ @internal_hash[:javascript] = @internal_hash[:javascript].dup
315
+ end
316
+ @internal_hash[:javascript] << return_javascript(i) # Tap into javascript/ subdirectory.
317
+ end; alias javascript_in_head_tag javascript_script= # === javascript_in_head_tag
318
+
319
+ # ========================================================================= #
320
+ # === return_default_javascript
321
+ # ========================================================================= #
322
+ def return_default_javascript(
323
+ i = ::Cyberweb.converted_path_to_data
324
+ )
325
+ ::Cyberweb.return_default_javascript(i)
326
+ end
327
+
328
+ # ========================================================================= #
329
+ # === javascript?
330
+ # ========================================================================= #
331
+ def javascript?
332
+ @internal_hash[:javascript]
333
+ end
334
+
335
+ require 'cyberweb/javascript/on_click_change_opacity.rb'
336
+ # ========================================================================= #
337
+ # === on_click_make_darker
338
+ # ========================================================================= #
339
+ def on_click_make_darker(this_id, opacity = '0.90')
340
+ addn(
341
+ ::Cyberweb.on_click_make_darker(this_id, opacity)
342
+ )
343
+ end
344
+
345
+ # ========================================================================= #
346
+ # === enable_jquery_for_every_page?
347
+ #
348
+ # Determine whether we are using jquery for every page.
349
+ # ========================================================================= #
350
+ def enable_jquery_for_every_page?
351
+ @config['enable_jquery_for_every_page']
352
+ end
353
+
354
+ # ========================================================================= #
355
+ # === jquery
356
+ #
357
+ # An alias to enabling the use of jquery on a website, through the
358
+ # method call do_use_jquery().
359
+ # ========================================================================= #
360
+ def jquery(i = '+')
361
+ i = i.to_s # We definitely do want a String here.
362
+ do_use_jquery if i == '+'
363
+ end
364
+
365
+ # ========================================================================= #
366
+ # === report_the_jquery_version_in_use
367
+ # ========================================================================= #
368
+ def report_the_jquery_version_in_use
369
+ e 'The jquery version in use is '\
370
+ '<b>'+this_jquery_version.to_s+'</b>.'
371
+ end
372
+
373
+ # ========================================================================= #
374
+ # === do_we_use_jquery?
375
+ #
376
+ # This method can be used to report whether a particular web-object
377
+ # makes use of jquery or whether it does not.
378
+ # ========================================================================= #
379
+ def do_we_use_jquery?
380
+ e "Does this web_object make use of jquery? #{use_jquery?}"
381
+ end; alias report_whether_this_webobject_makes_use_of_jquery do_we_use_jquery? # === report_whether_this_webobject_makes_use_of_jquery
382
+ alias report_use_jquery? do_we_use_jquery? # === report_use_jquery?
383
+ alias jquery_is_used? do_we_use_jquery? # === jquery_is_used?
384
+
385
+ # ========================================================================= #
386
+ # === do_use_jquery
387
+ #
388
+ # Use this method to enable jquery support.
389
+ #
390
+ # I recommend to use this method, rather than use_jquery, but if
391
+ # you want to be lazy, feel free to use either variant. I just
392
+ # think that the explicit "do_" implies an action, which I
393
+ # think is more logical.
394
+ # ========================================================================= #
395
+ def do_use_jquery
396
+ @config['use_jquery'] = true # Do a batch-assignment here.
397
+ end; alias use_jquery do_use_jquery # === use_jquery
398
+ alias enable_drag do_use_jquery # === enable_drag
399
+ alias enable_jquery do_use_jquery # === enable_jquery
400
+
401
+ # ========================================================================= #
402
+ # === jquery_resizable_via_the_mouse
403
+ #
404
+ # This method can be used to resize an element via the mouse.
405
+ # ========================================================================= #
406
+ def jquery_resizable_via_the_mouse(
407
+ hash_or_string = { id: :resizable_via_the_mouse }
408
+ )
409
+ if hash_or_string and hash_or_string.is_a?(Hash) and
410
+ hash_or_string.has_key?(:id)
411
+ hash_or_string = hash_or_string[:id].to_s
412
+ end
413
+ ejavascript '$( function() {
414
+ $("#'+hash_or_string.to_s+'").resizable();
415
+ } );'
416
+ end
417
+
418
+ # ========================================================================= #
419
+ # === no_jquery
420
+ #
421
+ # Do not use jquery. This is the default.
422
+ # ========================================================================= #
423
+ def no_jquery
424
+ @config['use_jquery'] = false
425
+ end
426
+
427
+ end; end
@@ -0,0 +1,172 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # The typical layout of a .html page should be similar to this:
6
+ #
7
+ # <!DOCTYPE html>
8
+ # <html lang="en">
9
+ # <head>
10
+ # <meta charset="utf-8"/>
11
+ #
12
+ # =========================================================================== #
13
+ # require 'cyberweb/web_object/languages.rb'
14
+ # =========================================================================== #
15
+ require 'cyberweb/base/base.rb'
16
+
17
+ module Cyberweb
18
+
19
+ class WebObject < Base # === Cyberweb::WebObject
20
+
21
+ # ========================================================================= #
22
+ # === german
23
+ # ========================================================================= #
24
+ def german(i = nil, &block)
25
+ add_doctype_then_html_start_tag_then_head_tag_then_charset
26
+ german_trinity
27
+ if i
28
+ set_title(i)
29
+ end
30
+ handle_these_calls(&block)
31
+ close_html_after_making_sure_that_the_body_tag_exists
32
+ end
33
+
34
+ # ========================================================================= #
35
+ # === english (english tag)
36
+ # ========================================================================= #
37
+ def english(i = nil, &block)
38
+ add_doctype_then_html_start_tag_then_head_tag_then_charset
39
+ english_trinity
40
+ if i
41
+ set_title(i)
42
+ end
43
+ handle_these_calls(&block)
44
+ close_html_after_making_sure_that_the_body_tag_exists
45
+ end
46
+
47
+ # ========================================================================= #
48
+ # === language
49
+ #
50
+ # You can use this method to specify a certain language in order to
51
+ # use for the given web page. I tend to use this to remind myself
52
+ # in which language I shall write a web-page in, e. g. usually
53
+ # either in german, or more commonly these days, in english.
54
+ #
55
+ # Invocation example:
56
+ #
57
+ # language :english
58
+ #
59
+ # ========================================================================= #
60
+ def language(
61
+ which_language = nil
62
+ )
63
+ case which_language
64
+ # ======================================================================= #
65
+ # === eng
66
+ # ======================================================================= #
67
+ when 'eng','e','en','default'
68
+ which_language = 'english'
69
+ # ======================================================================= #
70
+ # === ger
71
+ # ======================================================================= #
72
+ when 'ger','g','ge','german','deutsch'
73
+ which_language = 'german'
74
+ end
75
+ @internal_hash[:language] = which_language.to_s # Will be kept as a String.
76
+ end
77
+
78
+ # ========================================================================= #
79
+ # === german_unicode_and_jquery
80
+ #
81
+ # This convenience method will enable german language layout for a
82
+ # webpage, jquery-drag-and-drop support, as well as declare that
83
+ # the page at hand uses unicode characters (and thus needs support
84
+ # for unicode).
85
+ # ========================================================================= #
86
+ def german_unicode_and_jquery
87
+ do_use_jquery
88
+ german_trinity
89
+ end; alias german_unicode_jquery german_unicode_and_jquery # === german_unicode_jquery
90
+ alias use_jquery_german_and_unicode german_unicode_and_jquery # === german_unicode_and_jquery
91
+
92
+ # ========================================================================= #
93
+ # === english_unicode_and_jquery
94
+ # ========================================================================= #
95
+ def english_unicode_and_jquery
96
+ do_use_jquery
97
+ english_trinity
98
+ end
99
+
100
+ # ========================================================================= #
101
+ # === german_unicode
102
+ # ========================================================================= #
103
+ def german_unicode
104
+ use_german
105
+ use_unicode
106
+ end
107
+
108
+ # ========================================================================= #
109
+ # === use_english
110
+ # ========================================================================= #
111
+ def use_english # An easier shortcut.
112
+ language :english
113
+ end; alias do_use_english use_english # === english
114
+
115
+ # ========================================================================= #
116
+ # === german_trinity
117
+ #
118
+ # This variant specifically does NOT force the use of jquery since as
119
+ # of May 2021. If you want to force jquery, use the method
120
+ # called german_unicode_and_jquery() instead.
121
+ #
122
+ # Strictly speaking the word "trinity" is thus no longer correct, but
123
+ # for the time being it will be retained.
124
+ # ========================================================================= #
125
+ def german_trinity
126
+ german_unicode # This bundles "use_german" and "use_unicode".
127
+ add_html_comment("\nThis website is making use of german.\n")
128
+ add_relevant_meta_entries(:ignore_checks)
129
+ end; alias use_unicode_german_and_jquery german_trinity # === use_unicode_german_and_jquery
130
+ alias trinity_german german_trinity # === trinity_german
131
+ alias trinity german_trinity # === trinity
132
+
133
+ # ========================================================================= #
134
+ # === use_german
135
+ #
136
+ # This is an easier shortcut to designate that the current webpage
137
+ # makes use of the german language as part of its content primarily.
138
+ # ========================================================================= #
139
+ def use_german # An easier shortcut.
140
+ language :german
141
+ end
142
+
143
+ # ========================================================================= #
144
+ # === english_trinity
145
+ # ========================================================================= #
146
+ def english_trinity
147
+ do_use_english
148
+ use_unicode
149
+ add_html_comment("\nThis website is making use of english.\n")
150
+ add_relevant_meta_entries(:ignore_checks)
151
+ end; alias use_english_trinity english_trinity # === use_english_trinity
152
+ alias english_trinity english_trinity # === english_trinity
153
+
154
+ # ========================================================================= #
155
+ # === add_doctype_then_html_start_tag_then_head_tag_then_charset
156
+ #
157
+ # This must add a string-chain like:
158
+ #
159
+ # <!DOCTYPE html>
160
+ # <html lang="en">
161
+ # <head>
162
+ # <meta charset="utf-8"/>
163
+ #
164
+ # ========================================================================= #
165
+ def add_doctype_then_html_start_tag_then_head_tag_then_charset
166
+ add(DOCTYPE_HTML5)
167
+ add(Cyberweb.return_html_start) # html lang.
168
+ add(Cyberweb.return_head_start)
169
+ add(Cyberweb.return_utf_charset)
170
+ end
171
+
172
+ end; end