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,223 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # Here we bundle all javascript code things into one file.
6
+ #
7
+ # This way, we can reuse those components more readily and
8
+ # more easily.
9
+ #
10
+ # We will also use a listing here so we can cherry-pick what we like
11
+ # to use quickly (sort alphabetically):
12
+ #
13
+ # - chmod_displayer()
14
+ # - display_clock()
15
+ # - display_time()
16
+ # - show_cheerleader()
17
+ # - show_javascript_canvas()
18
+ # - javascript_box()
19
+ # - javascript_last_modified()
20
+ # - popup
21
+ #
22
+ # =========================================================================== #
23
+ # require 'cyberweb/javascript/javascript_bundle.rb'
24
+ # Cyberweb.display_time
25
+ # =========================================================================== #
26
+ module Cyberweb
27
+
28
+ require 'cyberweb/toplevel_methods/path.rb'
29
+
30
+ # ========================================================================= #
31
+ # === show_cheerleader
32
+ #
33
+ # Shows an ASCII cheerleader.
34
+ # ========================================================================= #
35
+ def show_cheerleader(
36
+ path_to_cheerleader_file = Cyberweb.path_to_data?+'CODE/javascript/cheerleader.js'
37
+ )
38
+ filename = 'cheerleader.js'
39
+ _ = path_to_cheerleader_file
40
+ _ << filename unless _[-filename.size, filename.size] == filename
41
+ ee self.load_javascript(_)
42
+ end
43
+
44
+ # ========================================================================= #
45
+ # === Cyberweb.chmod_displayer
46
+ #
47
+ # This display a cute little chmod page.
48
+ #
49
+ # The local javascript file for this is at:
50
+ #
51
+ # bl /home/x/DATA/CODE/javascript/chmod_displayer.js
52
+ #
53
+ # ========================================================================= #
54
+ def self.chmod_displayer(
55
+ path_to_file = :default
56
+ )
57
+ case path_to_file
58
+ # ======================================================================= #
59
+ # === :default
60
+ # ======================================================================= #
61
+ when :default
62
+ path_to_file = ::Cyberweb.path_to_the_internal_javascript_directory?+
63
+ 'chmod_displayer.js'
64
+ end
65
+ filename = 'chmod_displayer.js'
66
+ _ = path_to_file
67
+ _ << filename unless _[-filename.size, filename.size] == filename
68
+ return self.load_javascript(_)+'
69
+ <form name="chmod">
70
+ <tabke BORDER="0" CELLSPACING="0" CELLPADDING="0" style="font:normal 12px Verdana";>
71
+ <tr ALIGN="LEFT" valign="MIDDLE">
72
+ <td>Permissions: </TD>
73
+ <td><input type="text" name="t_total" value="751" size="4" onKeyUp="octalchange()"> </TD>
74
+ <td><input type="text" name="sym_total" value="" size="12" READONLY="1" STYLE="border: 0px none;">
75
+ </td>
76
+ </tr>
77
+ </table>
78
+ <br>
79
+ <table cellpadding="2" cellspacing="0" border="0" style="font:normal 12px Verdana">
80
+ <tr bgcolor="#333333">
81
+ <td width="60" align="left"> </td>
82
+ <td width="55" align="center" style="color:white"><b>owner
83
+ </b></td>
84
+ <td width="55" align="center" style="color:white"><b>group
85
+ </b></td>
86
+ <td width="55" align="center" style="color:white"><b>other
87
+ <b></td>
88
+ </tr>
89
+ <tr bgcolor="#dddddd">
90
+ <td width="60" align="left" nowrap style="color:black" bgcolor="#FFFFFF">read</td>
91
+ <td width="55" align="center" bgcolor="#eeeeee">
92
+ <input type="checkbox" name="owner4" value="4" onclick="calc_chmod()">
93
+ </td>
94
+ <td width="55" align="center" bgcolor="#ffffff"><input type="checkbox" name="group4" value="4" onclick="calc_chmod()">
95
+ </td>
96
+ <td width="55" align="center" bgcolor="#eeeeee">
97
+ <input type="checkbox" name="other4" value="4" onclick="calc_chmod()">
98
+ </td>
99
+ </tr>
100
+ <tr bgcolor="#dddddd">
101
+ <td width="60" align="left" nowrap style="color:black" bgcolor="#FFFFFF">write</td>
102
+ <td width="55" align="center" bgcolor="#eeeeee">
103
+ <input type="checkbox" name="owner2" value="2" onclick="calc_chmod()"></td>
104
+ <td width="55" align="center" bgcolor="#ffffff"><input type="checkbox" name="group2" value="2" onclick="calc_chmod()">
105
+ </td>
106
+ <td width="55" align="center" bgcolor="#eeeeee">
107
+ <input type="checkbox" name="other2" value="2" onclick="calc_chmod()">
108
+ </td>
109
+ </tr>
110
+ <tr bgcolor="#dddddd">
111
+ <td width="60" align="left" nowrap style="color:black" bgcolor="#FFFFFF">execute</td>
112
+ <td width="55" align="center" bgcolor="#eeeeee">
113
+ <input type="checkbox" name="owner1" value="1" onclick="calc_chmod()">
114
+ </td>
115
+ <td width="55" align="center" bgcolor="#ffffff">
116
+ <input type="checkbox" name="group1" value="1" onclick="calc_chmod()">
117
+ </td>
118
+ <td width="55" align="center" bgcolor="#eeeeee">
119
+ <input type="checkbox" name="other1" value="1" onclick="calc_chmod()">
120
+ </td>
121
+ </tr>
122
+ </table>
123
+ </form>'
124
+ end
125
+
126
+ # ========================================================================= #
127
+ # === Cyberweb.display_time
128
+ #
129
+ # Simply display the time.
130
+ # ========================================================================= #
131
+ def self.display_time(
132
+ in_what_format = :javascript,
133
+ css_style = ''
134
+ )
135
+ if in_what_format.is_a?(Hash) and in_what_format.has_key?(:css_style)
136
+ css_style = in_what_format.delete(:css_style)
137
+ in_what_format = :javascript
138
+ end
139
+ div('','clock',css_style) {
140
+ case in_what_format
141
+ when :javascript, :default
142
+ return_javascript "updateClock(); setInterval('updateClock()', 1000 )"
143
+ when :ruby
144
+ e Time.now.strftime('%H:%M:%S')
145
+ end
146
+ }
147
+ end
148
+
149
+ # ========================================================================= #
150
+ # === output_javascript_bundle
151
+ # ========================================================================= #
152
+ def output_javascript_bundle(
153
+ optional_css = 'pad1em bblack1'
154
+ )
155
+ div(optional_css) {
156
+ ARRAY_JAVASCRIPT_METHODS.each_with_index {|entry, index|
157
+ index += 1
158
+ h3 index.to_s+') '+entry.to_s
159
+ send(entry)
160
+ }
161
+ }
162
+ end
163
+
164
+ # ========================================================================= #
165
+ # === find_script
166
+ #
167
+ # Not sure if we need this ... I think its intent was to find a
168
+ # certain .js file.
169
+ # ========================================================================= #
170
+ def find_script(i)
171
+ _ = case i
172
+ when 'timer','1'
173
+ _ = 'timer.js'
174
+ end
175
+ _
176
+ end
177
+
178
+ # ========================================================================= #
179
+ # === javascript_box
180
+ #
181
+ # This is for testing purposes only so far ...
182
+ # ========================================================================= #
183
+ def javascript_box
184
+ ejavascript '
185
+ function wechsel(box)
186
+ {
187
+ if (box.checked) { box.checked = false; }
188
+ else { box.checked = true; }
189
+ }'
190
+ ee '<form name="checkbox">
191
+ <input type="checkbox" name="box" checked="checked">
192
+ <a href="javascript:wechsel(document.checkbox.box)">
193
+ Box an/aus</a>'
194
+ cform
195
+ # javascript:wechsel(document.formularname.checkboxname)
196
+ end
197
+
198
+ # ========================================================================= #
199
+ # === show_javascript_canvas
200
+ #
201
+ # This will display a little Javascript Canvas.
202
+ # Taken from: http://smoothiecharts.org/tutorial.html
203
+ # ========================================================================= #
204
+ def show_javascript_canvas
205
+ ee '<canvas id="mycanvas" width="400" height="100"></canvas>'
206
+ script_javascript "
207
+ // Random data
208
+ var line1 = new TimeSeries();
209
+ var line2 = new TimeSeries();
210
+
211
+ setInterval(function() {
212
+ line1.append(new Date().getTime(), Math.random());
213
+ line2.append(new Date().getTime(), Math.random());
214
+ }, 2600);
215
+
216
+ var smoothie = new SmoothieChart({ grid: { strokeStyle: 'rgb(125, 0, 0)', fillStyle: 'rgb(60, 0, 0)', lineWidth: 1, millisPerLine: 250, verticalSections: 6 } });
217
+ smoothie.addTimeSeries(line1, { strokeStyle: 'rgb(0, 255, 0)', fillStyle: 'rgba(0, 255, 0, 0.4)', lineWidth: 3 });
218
+ smoothie.addTimeSeries(line2, { strokeStyle: 'rgb(255, 0, 255)', fillStyle: 'rgba(255, 0, 255, 0.3)', lineWidth: 3 });
219
+ "+'
220
+ smoothie.streamTo(document.getElementById("mycanvas"), 1000);'
221
+ end
222
+
223
+ end
@@ -0,0 +1,69 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'cyberweb/javascript/javascript_clock.rb'
6
+ # =========================================================================== #
7
+ module Cyberweb
8
+
9
+ # ========================================================================= #
10
+ # === display_clock (clock tag)
11
+ #
12
+ # If you want to know the time, use this method.
13
+ #
14
+ # You can copy/paste this.
15
+ # ========================================================================= #
16
+ def display_clock(
17
+ css_class = '',
18
+ the_id = 'Clock',
19
+ css_style = '',
20
+ javascript = ''
21
+ )
22
+ # ======================================================================= #
23
+ # === Handle blocks next
24
+ # ======================================================================= #
25
+ if block_given?
26
+ yielded = yield
27
+ case yielded
28
+ # ===================================================================== #
29
+ # === :larger_font_size
30
+ #
31
+ # For some reason this does not seem to work.
32
+ # ===================================================================== #
33
+ when :larger_font_size
34
+ if css_style.frozen?
35
+ css_style = css_style.to_s.dup
36
+ end
37
+ css_style << '; font-size: larger;'
38
+ end
39
+ end
40
+ self.javascript '
41
+ clock_id = 0
42
+ function UpdateClock() {
43
+ if(clock_id) {
44
+ clearTimeout(clock_id);
45
+ clock_id = 0;
46
+ }
47
+ date_object = new Date()
48
+ xxx = date_object.getSeconds()
49
+ if(xxx <10) {
50
+ xxx = "0"+xxx
51
+ }
52
+ document.FormClock.Time.value = ""+date_object.getHours()+":"+date_object.getMinutes()+":"+xxx
53
+ clock_id = setTimeout("UpdateClock()", 1000);
54
+ }
55
+ function StartClock() { clock_id = setTimeout("UpdateClock()", 500); }
56
+ function KillClock() { if(clock_id) { clearTimeout(clock_id); clock_id = 0; }}'
57
+ div(css_class, the_id, css_style, javascript){
58
+ self.javascript 'StartClock()' # Start our clock here.
59
+ # Give the form the name "FormClock" next.
60
+ e '<form name="FormClock">'
61
+ input(:text,'','pad5px s8px','Time',
62
+ 'border:5px solid #040a17;width:150px;'\
63
+ 'background-color: #daffbf;'+css_style,
64
+ 'c')
65
+ cform
66
+ }
67
+ end; alias javascript_clock display_clock # === javascript_clock
68
+
69
+ end
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'cyberweb/javascript/javascript_last_modified.rb'
6
+ # Cyberweb.javascript_last_modified
7
+ # =========================================================================== #
8
+ module Cyberweb
9
+
10
+ # ========================================================================= #
11
+ # === Cyberweb.javascript_last_modified
12
+ #
13
+ # Display when the document was last modified.
14
+ # ========================================================================= #
15
+ def self.javascript_last_modified(
16
+ text_to_display = 'Letzte Änderung am '
17
+ )
18
+ return_javascript '
19
+ datum = document.lastModified
20
+ day = datum.slice(3,5)
21
+ month = datum.slice(0,2)
22
+ year = datum.slice(6,10)
23
+ datum = "'+text_to_display+'"+day+"."+month+"."+year'
24
+ doc_write 'datum' # This used to be: document.write(datum)
25
+ end; self.instance_eval { alias last_modified? javascript_last_modified } # === Cyberweb.last_modified?
26
+
27
+ end
@@ -0,0 +1,150 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === Cyberweb::JavascriptMagic
6
+ #
7
+ # This special class will translate between invalid (but simplified)
8
+ # Javascript to valid Javascript. It is currently in use in the file
9
+ # web_foundation.rb.
10
+ # =========================================================================== #
11
+ module Cyberweb # === Cyberweb::JavascriptMagic
12
+
13
+ class JavascriptMagic
14
+
15
+ alias e puts
16
+
17
+ # ========================================================================= #
18
+ # === ARRAY_APPLY_JAVASCRIPT_MAGIC_ON_THESE_ELEMENTS
19
+ # ========================================================================= #
20
+ ARRAY_APPLY_JAVASCRIPT_MAGIC_ON_THESE_ELEMENTS = %w(
21
+ on_mouse_over_underline
22
+ popup
23
+ focus_and_select
24
+ redirect
25
+ )
26
+
27
+ # ========================================================================= #
28
+ # === Cyberweb::JavascriptMagic.is_included?
29
+ #
30
+ # Query to the above Array.
31
+ # ========================================================================= #
32
+ def self.is_included?(i)
33
+ ARRAY_APPLY_JAVASCRIPT_MAGIC_ON_THESE_ELEMENTS.include? i
34
+ end
35
+
36
+ # ========================================================================= #
37
+ # === initialize
38
+ # ========================================================================= #
39
+ def initialize(
40
+ i = nil
41
+ )
42
+ if i
43
+ assign_to_original_input(i.dup)
44
+ assign_to_string(@original_input)
45
+ translate
46
+ end
47
+ end
48
+
49
+ # ========================================================================= #
50
+ # === assign_to_original_input
51
+ # ========================================================================= #
52
+ def assign_to_original_input(i)
53
+ @original_input = i
54
+ end
55
+
56
+ # ========================================================================= #
57
+ # === assign_to_string
58
+ # ========================================================================= #
59
+ def assign_to_string(i) # use only this method when modifying @i.
60
+ @i = i.dup
61
+ end
62
+
63
+ # ========================================================================= #
64
+ # === translate
65
+ #
66
+ # This is the powerhorse of the class. It is automatically called
67
+ # whenever a new instance is made.
68
+ #
69
+ # Note that all the following .include? checks in the code below,
70
+ # must also be synced to the main ARRAY on top of this file.
71
+ # ========================================================================= #
72
+ def translate(
73
+ this_string = @i
74
+ ) # translate between the magic.
75
+ _ = this_string
76
+ assign_to_string(_)
77
+ # ======================================================================= #
78
+ # === underline
79
+ # ======================================================================= #
80
+ if _.include? 'on_mouse_over_underline'
81
+ @i.gsub!(/on_mouse_over_underline/,
82
+ 'onmouseover="this.style.textDecoration=\'underline\';"')
83
+ end
84
+ # ======================================================================= #
85
+ # === popup
86
+ # ======================================================================= #
87
+ if _.include? 'popup'
88
+ @i.gsub!(/popup/, 'onclick="return popup(this.href)";')
89
+ end
90
+ # ======================================================================= #
91
+ # === focus_and_select
92
+ # ======================================================================= #
93
+ if _.include? 'focus_and_select'
94
+ @i.gsub!(/popup/, 'onclick="this.focus();this.select()";')
95
+ end
96
+ # ======================================================================= #
97
+ # === redirect
98
+ # ======================================================================= #
99
+ if _.include? 'redirect' # handle redirect syntactic sugar.
100
+ regex = /redirect_to\((.+)\)/
101
+ match_data_object = regex.match(@i)
102
+ match_data_object[1]
103
+ @i.gsub!(regex, 'window.location.href='+match_data_object[1]+';')
104
+ end
105
+ @i
106
+ end
107
+
108
+ # ========================================================================= #
109
+ # === _
110
+ # ========================================================================= #
111
+ def _ # Easier access method to query for the @i variable.
112
+ @i
113
+ end; alias translated? _ # === translated?
114
+
115
+ # ========================================================================= #
116
+ # === test
117
+ #
118
+ # The second argument determines whether we shall be verbose or
119
+ # whether we shall not.
120
+ # ========================================================================= #
121
+ def test(this_string, be_verbose = false)
122
+ case be_verbose
123
+ when :be_verbose
124
+ be_verbose = true
125
+ end
126
+ _ = this_string
127
+ assign_to_original_input(_)
128
+ translate(_)
129
+ if be_verbose
130
+ print "The string `#{_}` translates to: "
131
+ end
132
+ e @i
133
+ @i
134
+ end; alias test_this_string test # === test_this_string
135
+
136
+ # ========================================================================= #
137
+ # === Cyberweb::JavascriptMagic[]
138
+ # ========================================================================= #
139
+ def self.[](i)
140
+ new(i)
141
+ end
142
+
143
+ end; end
144
+
145
+ if __FILE__ == $PROGRAM_NAME
146
+ javascript_magic = Cyberweb::JavascriptMagic.new
147
+ javascript_magic.test_this_string "redirect_to('www.foobar.com')", :be_verbose
148
+ javascript_magic.test_this_string "popup", :be_verbose
149
+ javascript_magic.test_this_string 'on_mouse_over_underline', :be_verbose
150
+ end # $CYBERWEB/javascript/javascript_magic.rb
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module Cyberweb
6
+
7
+ # ========================================================================= #
8
+ # === js_select_this_id
9
+ #
10
+ # Pass the id you wish to make selectable here.
11
+ #
12
+ # Complete usage example:
13
+ #
14
+ # js_select_this_id(:slateblue)
15
+ # ol id: 'selectable'
16
+ #
17
+ # ========================================================================= #
18
+ def js_select_this_id(id = '')
19
+ javascript_code '
20
+ $(function() { $( "#'+id.to_s+'" ).selectable(); });
21
+ '
22
+ end
23
+
24
+ end
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module Cyberweb
6
+
7
+ require 'cyberweb/configuration/load_the_configuration_file.rb'
8
+
9
+ # ========================================================================= #
10
+ # === Cyberweb.download_latest_jquery
11
+ #
12
+ # This toplevel-method is a convenience method. It can be used to
13
+ # download the latest jquery version - at the least the latest
14
+ # one registered in the Cyberweb project.
15
+ #
16
+ # Usage example:
17
+ #
18
+ # Cyberweb.download_latest_jquery
19
+ #
20
+ # ========================================================================= #
21
+ def self.download_latest_jquery
22
+ file = config_file?
23
+ jquery_version_string = YAML.load_file(file)['jquery_version']
24
+ jquery_url = "https://code.jquery.com/jquery-#{jquery_version_string}.js"
25
+ _ = "wget #{jquery_url}"
26
+ puts _
27
+ system _
28
+ end
29
+
30
+ end
@@ -0,0 +1,97 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'cyberweb/javascript/on_click_change_opacity.rb'
6
+ # Cyberweb.on_click_make_darker(this_id, opacity = '0.90')
7
+ # =========================================================================== #
8
+ module Cyberweb
9
+
10
+ # ========================================================================= #
11
+ # === Cyberweb.return_on_click_change_opacity
12
+ #
13
+ # This will return a javascript-string.
14
+ #
15
+ # The second argument is for the "transparency" value (the opacity).
16
+ # ========================================================================= #
17
+ def self.return_on_click_change_opacity(
18
+ use_this_id = 'pic',
19
+ which_opacity_value_to_use = '0.92'
20
+ )
21
+ which_opacity_value_to_use = which_opacity_value_to_use.to_s
22
+ # The id must be a string.
23
+ use_this_id = use_this_id.to_s.dup # Work on a copy.
24
+ unless use_this_id.start_with? '#'
25
+ use_this_id.prepend('#')
26
+ end
27
+ result = return_javascript("
28
+ $(document).ready(function(){
29
+ $('"+use_this_id+"').click(function(){
30
+ opacity_value = $('"+use_this_id+"').css('opacity');
31
+ if (opacity_value == '1')
32
+ $('"+use_this_id+"').css('opacity', '"+which_opacity_value_to_use+"');
33
+ else
34
+ $('"+use_this_id+"').css('opacity', '1');
35
+ });
36
+ });
37
+ "+N)
38
+ return result
39
+ end; self.instance_eval { alias string_highlight return_on_click_change_opacity } # === Cyberweb.string_highlight
40
+
41
+ # ========================================================================= #
42
+ # === Cyberweb.on_click_make_darker
43
+ #
44
+ # The first argument should be the id in question.
45
+ # ========================================================================= #
46
+ def self.on_click_make_darker(
47
+ this_id, opacity = '0.90'
48
+ )
49
+ ::Cyberweb.return_on_click_change_opacity(this_id, opacity)
50
+ end
51
+
52
+ # ========================================================================= #
53
+ # === on_click_make_darker
54
+ #
55
+ # The first argument should be the id in question.
56
+ # ========================================================================= #
57
+ def on_click_make_darker(
58
+ this_id, opacity = '0.90'
59
+ )
60
+ ::Cyberweb.on_click_change_opacity(this_id, opacity)
61
+ end
62
+
63
+ # ========================================================================= #
64
+ # === return_on_click_change_opacity
65
+ # ========================================================================= #
66
+ def return_on_click_change_opacity(a = 'pic', b = '0.92')
67
+ Cyberweb.return_on_click_change_opacity(a, b)
68
+ end; alias string_highlight return_on_click_change_opacity # === string_highlight
69
+
70
+ # ========================================================================= #
71
+ # === on_click_change_opacity (highlight tag)
72
+ #
73
+ # Use this method to change the opacity value of a html tag.
74
+ #
75
+ # The input to this method should be the specific ID of that tag.
76
+ #
77
+ # Note that we will use jQuery for this.
78
+ #
79
+ # Specific usage examples:
80
+ #
81
+ # on_click_change_opacity '#foobar'
82
+ # on_click_change_opacity '#foobar','0.5'
83
+ #
84
+ # ========================================================================= #
85
+ def on_click_change_opacity(
86
+ use_this_id = 'pic',
87
+ which_opacity_value_to_use = '0.92'
88
+ )
89
+ return_on_click_change_opacity(
90
+ use_this_id,
91
+ which_opacity_value_to_use
92
+ )
93
+ end; alias on_click_highlight on_click_change_opacity # === on_click_highlight
94
+ alias highlight_tag on_click_change_opacity # === highlight_tag
95
+ alias highlight on_click_change_opacity # === highlight
96
+
97
+ end
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module Cyberweb
6
+
7
+ # ========================================================================= #
8
+ # === on_click_hide
9
+ #
10
+ # Use this method to hide a html tag.
11
+ #
12
+ # The input should be that specific tag, such as 'p'.
13
+ #
14
+ # You can also pass in something such as 'id: foo' which will
15
+ # connect the on_click_hide action towards a specific ID.
16
+ #
17
+ # Alternatively, a leading '#' means that we refer to a particular
18
+ # ID as well.
19
+ #
20
+ # Note that we will use jQuery for this functionality. There exists
21
+ # another way, which is the jQuery class selector. This one finds
22
+ # elements with a specific class.
23
+ #
24
+ # To find elements with a specific class rather than an id="" entry,
25
+ # write a period character aka '.', followed by the name of the
26
+ # class in question.
27
+ #
28
+ # Specific Example:
29
+ #
30
+ # on_click_hide '.test'
31
+ #
32
+ # This would hide things such as:
33
+ #
34
+ # <h2 class="test">This is a heading</h2>
35
+ #
36
+ # Specific usage example:
37
+ #
38
+ # on_click_hide 'p'
39
+ # on_click_hide 'id: test'
40
+ # on_click_hide 'id: skeleton_desert'
41
+ #
42
+ # ========================================================================= #
43
+ def on_click_hide(
44
+ this_tag = 'p'
45
+ )
46
+ if this_tag.is_a?(String) and this_tag.include?('id:')
47
+ this_tag = { id: this_tag.gsub(/id:/,'').strip }
48
+ end
49
+ if this_tag.is_a? Hash
50
+ if this_tag.has_key? :id
51
+ this_tag = '#'+this_tag.delete(:id)
52
+ end
53
+ end
54
+ this_tag = this_tag.to_s
55
+ embed_javascript '
56
+ $(document).ready(function(){
57
+ $("'+this_tag+'").click(function(){
58
+ $(this).hide();
59
+ });
60
+ });'+N
61
+ end
62
+
63
+ end