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,352 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # Video specific things will be bundled into this file here.
6
+ # =========================================================================== #
7
+ # require 'cyberweb/toplevel_methods/video.rb'
8
+ # Cyberweb.embed_youtube_video
9
+ # =========================================================================== #
10
+ module Cyberweb
11
+
12
+ begin
13
+ require 'multimedia_paradise/videos/youtube_embedder.rb'
14
+ rescue LoadError; end
15
+
16
+ # ========================================================================= #
17
+ # Constants specific to Video things go into this file as well.
18
+ # ========================================================================= #
19
+ DEFAULT_VIDEO_WIDTH = '380'
20
+ DEFAULT_VIDEO_HEIGHT = '260'
21
+
22
+ # ========================================================================= #
23
+ # === imdb (imdb tag)
24
+ #
25
+ # Makes a link towards the "Internet Movie Database".
26
+ # ========================================================================= #
27
+ def imdb(
28
+ title, where_precisely
29
+ )
30
+ base_url = 'http://www.imdb.com/title/'
31
+ string_link(
32
+ base_url+where_precisely,
33
+ title
34
+ )
35
+ end
36
+
37
+ # ========================================================================= #
38
+ # === Cyberweb.embed_youtube_video (youtube tag)
39
+ #
40
+ # A note about "autoplay" - this means that it will play the
41
+ # video as soon as you load the page.
42
+ #
43
+ # If the first argument, src, contains a ' ' then we will assume that
44
+ # we actually wish to pass an Array. In that case, we will split on
45
+ # every ' ' that we find.
46
+ #
47
+ # Usage examples:
48
+ #
49
+ # youtube 'http://www.youtube.com/watch?v=Y6bWezKAlZ0'
50
+ # youtube 'XuKjBIBBAL8'
51
+ #
52
+ # ========================================================================= #
53
+ def self.embed_youtube_video(
54
+ src = 'gexazLr6pSY',
55
+ width = '640',
56
+ height = '385'
57
+ )
58
+ _ = ''.dup
59
+ src = src.strip if src.is_a? String # We have no use for leading and trailing ' '.
60
+ if src.is_a? Array
61
+ src.each {|s| div { embed_youtube_video(s, width, height) } }
62
+ elsif src.include? ' '
63
+ src.split(' ').each {|s| div { embed_youtube_video(s) } }
64
+ else
65
+ # ===================================================================== #
66
+ # Prepend proper youtube link:
67
+ # ===================================================================== #
68
+ unless src.include?('youtube.com') or src.include?('/')
69
+ src[0,0] = 'http://www.youtube.com/v/'
70
+ end
71
+ if src.include? 'watch'
72
+ src.gsub!(/watch\?v\=/, 'v/')
73
+ end
74
+ _ << '<object class="pad1em mar2em">'+N
75
+ _ << '<param name="movie" value="'+src+'" />'+N
76
+ _ << '<param name="wmode" value="transparent" />'+N
77
+ _ << '<param name="allowFullScreen" value="true" />'+N # Allow fullscreen.
78
+ _ << '<param name="allowscriptaccess" value="always" />'+N
79
+ _ << '<embed src="'+src+';autoplay=0" type="application/x-shockwave-flash" width="'+width.to_s+'" height="'+height.to_s+'"></embed>'+N
80
+ _ << '</object>'
81
+ end
82
+ return _
83
+ end; self.instance_eval { alias eyv embed_youtube_video } # === Cyberweb.eyv
84
+ self.instance_eval { alias youtube embed_youtube_video } # === Cyberweb.youtube
85
+ self.instance_eval { alias youtube_links embed_youtube_video } # === Cyberweb.youtube_links
86
+ self.instance_eval { alias youtube_video embed_youtube_video } # === Cyberweb.youtube_video
87
+ self.instance_eval { alias embed_video_file embed_youtube_video } # === Cyberweb.embed_video_file
88
+ self.instance_eval { alias embed_video embed_youtube_video } # === Cyberweb.embed_video
89
+ self.instance_eval { alias embed_videos embed_youtube_video } # === Cyberweb.embed_videos
90
+
91
+ # ========================================================================= #
92
+ # === imdb_form
93
+ #
94
+ # Use this is if you want to display a imdb form.
95
+ # ========================================================================= #
96
+ def imdb_form(
97
+ css_class = ''
98
+ )
99
+ result = '<form class="'+css_class+'" method="get" action="http://www.imdb.com/find">'.dup
100
+ result << '<select name="s">
101
+ <option selected="on" value="all">All</option>
102
+ </select>
103
+ <input name="q" size="28" accesskey="y">'
104
+ input :submit, :id => 'nb15go', :value => 'Suche',
105
+ :accesskey => 'x', css_class => 'bblack1 BG_White Black'
106
+ cform
107
+ return result
108
+ end
109
+
110
+ # ========================================================================= #
111
+ # === Cyberweb.video (video tag)
112
+ #
113
+ # To show a video in HTML5, this is all you need to do:
114
+ #
115
+ # <video src="movie.ogg" controls="controls">
116
+ # </video>
117
+ #
118
+ # The most important target is src="", which has to point to a
119
+ # local, existing video.
120
+ #
121
+ # The controls="controls" part can be simplified to just controls,
122
+ # or so it seems.
123
+ #
124
+ # Please note that this <video> element allows multiple source
125
+ # elements. Source elements can link to different video files.
126
+ # The browser will use the first recognized format. For some
127
+ # reason this won't work on localhost with Apache when you
128
+ # use shortcuts.
129
+ #
130
+ # A full example for these multiple source elements would be:
131
+ #
132
+ # <video width="320" height="240" controls="controls">
133
+ #
134
+ # <source src="movie.ogg" type="video/ogg" />
135
+ # <source src="movie.mp4" type="video/mp4" />
136
+ # <source src="movie.webm" type="video/webm" />
137
+ # Your browser does not support the video tag.
138
+ #
139
+ # </video>
140
+ #
141
+ # A much shorter example, but still working, should be the following:
142
+ #
143
+ # <video controls src="bunny.mp4"></video>
144
+ #
145
+ # Usage examples for this method:
146
+ #
147
+ # video(1)
148
+ # video('test.mp4')
149
+ # video('foobar.mp4') { :infer_type }
150
+ #
151
+ # ========================================================================= #
152
+ def self.video(
153
+ url, # ← The first argument should specify where the video file is.
154
+ optional_width = :omit_by_default,
155
+ optional_height = :omit_by_default,
156
+ optional_css_class = '',
157
+ optional_id = '',
158
+ optional_css_style = ''
159
+ )
160
+ if url.is_a? Array
161
+ url.each {|the_url|
162
+ video(the_url, optional_width, optional_height,
163
+ optional_css_class, optional_id, optional_css_style)
164
+ }
165
+ else
166
+ # Display the filename next:
167
+ h4 'Filename: <b>'+url+'</b>'
168
+ case optional_width
169
+ when :default
170
+ optional_width = :omit_by_default
171
+ end
172
+ case optional_height
173
+ when :default
174
+ optional_height = :omit_by_default
175
+ end
176
+ url = url.to_s
177
+ case url
178
+ when '1'
179
+ url = '/home/x/video/Realvids/268_ThePrestige.mp4'
180
+ when '2'
181
+ url = '/Depot/Audio/POP_Qualtinger_DialektischeMaterialismusRock.ogg'
182
+ end
183
+ if !url.include? '.'
184
+ url
185
+ end
186
+ optional_width = DEFAULT_VIDEO_WIDTH if optional_width == :default
187
+ optional_height = DEFAULT_VIDEO_HEIGHT if optional_height == :default
188
+ _ = '<video'.dup
189
+ _ << ' controls' # Use controls.
190
+ if optional_width and !(optional_width == :omit_by_default)
191
+ _ << ' width="'+optional_width+'"'
192
+ end
193
+ if optional_height and !(optional_height == :omit_by_default)
194
+ _ << ' height="'+optional_height+'"'
195
+ end
196
+ _ << ' css="'+optional_css_class+'"' unless optional_css_class.empty?
197
+ _ << ' id="'+optional_id+'"' unless optional_id.empty?
198
+ _ << ' style="'+optional_css_style+'"' unless optional_css_style.empty?
199
+ # _ << ' controls="controls"'
200
+ # _ << ' autoplay="autoplay"' # Autoplay.
201
+ # ===================================================================== #
202
+ # === Handle blocks next
203
+ # ===================================================================== #
204
+ if block_given?
205
+ yielded = yield
206
+ case yielded
207
+ # =================================================================== #
208
+ # === :infer_type
209
+ # =================================================================== #
210
+ when :infer_type
211
+ _ << 'type="video/"'
212
+ _ << File.extname(url).delete('.')
213
+ end
214
+ end
215
+ _ << '>' # close the tag here.
216
+ _ << "\n" # And add a newline as well.
217
+ ee _
218
+ # ===================================================================== #
219
+ # We can re-use _ next:
220
+ # ===================================================================== #
221
+ use_this_regex = /#{File.extname(url)}$/
222
+ url_without_the_file_extension = url.sub(use_this_regex, '')
223
+ _ = ' <source src="'+url_without_the_file_extension+
224
+ File.extname(url)+'" type="video/'+
225
+ File.extname(url).delete('.')+'" />'+N
226
+ _ << ' <source src="'+url_without_the_file_extension+'.ogg" type="video/ogg" />'+N
227
+ _ << ' <source src="'+url_without_the_file_extension+'.webm" type="video/webm" />'+N
228
+ ee _ # Display it here.
229
+ ee 'Your browser does not support '+
230
+ 'the video tag.' # display when this tag is not available.
231
+ c :video
232
+ end
233
+ end
234
+
235
+ # ========================================================================= #
236
+ # === video
237
+ # ========================================================================= #
238
+ def video(
239
+ a,
240
+ b = :omit_by_default,
241
+ c = :omit_by_default,
242
+ d = '',
243
+ e = '',
244
+ f = ''
245
+ )
246
+ ::Cyberweb.video(a,b,c,d,e,f)
247
+ end
248
+
249
+ # ========================================================================= #
250
+ # === play_avi_file
251
+ #
252
+ # play_avi_file 'foo.avi'
253
+ # ========================================================================= #
254
+ def play_avi_file(
255
+ src = 'data/test.avi'
256
+ )
257
+ ee '<object data="'+src+'" type="video/x-msvideo" width="320" height="255">'
258
+ ee '<param name="src" value="'+src+'">'
259
+ ee '<param name="autoStart" value="0">'
260
+ c :object
261
+ end
262
+
263
+ # ========================================================================= #
264
+ # === embed_flash
265
+ # ========================================================================= #
266
+ def embed_flash(src = 'somefilename.swf')
267
+ ee ' <object width="550" height="400">'
268
+ ee ' <param name="movie" value="'+src+'">'
269
+ ee ' <embed src="'+src+'" width="550" height="400">'
270
+ c :embed
271
+ c :object
272
+ end
273
+
274
+ # ========================================================================= #
275
+ # === youtube_embedder
276
+ #
277
+ # Make use of Videtools project here, by delegating towards the
278
+ # YoutubeEmbedder class.
279
+ #
280
+ # Usage example:
281
+ #
282
+ # width: 550
283
+ #
284
+ # ========================================================================= #
285
+ def youtube_embedder(
286
+ url = 'https://www.youtube.com/watch?v=7L6uEstbd9Y',
287
+ width_of_video = DEFAULT_VIDEO_WIDTH,
288
+ height_of_video = DEFAULT_VIDEO_HEIGHT
289
+ )
290
+ if url.is_a? Array
291
+ url.each {|entry|
292
+ youtube_embedder(entry, width_of_video, height_of_video)
293
+ }
294
+ else
295
+ url = url.to_s
296
+ unless url.include? '/'
297
+ url[0,0] = 'http://www.youtube.com/watch?'
298
+ end
299
+ if Object.const_defined? :MultimediaParadise
300
+ _ = MultimediaParadise::YoutubeEmbedder.new(url, :dont_run_yet)
301
+ _.set_width width_of_video
302
+ _.set_height height_of_video
303
+ _.run
304
+ ee _.embedded_string? # Return the generated string here.
305
+ end
306
+ end
307
+ end
308
+
309
+ # ========================================================================= #
310
+ # === play_local_video_file
311
+ #
312
+ # This method is used strictly for playing local video files.
313
+ # ========================================================================= #
314
+ def play_local_video_file(path_to_the_video_file)
315
+ # ======================================================================= #
316
+ # First, try HTML5 playback. If serving as XML, expand `controls`
317
+ # to `controls="controls"` and autoplay likewise.
318
+ # ======================================================================= #
319
+ _ = ''.dup
320
+ _ << '<video width="640" height="360" controls>'
321
+ # _ << '<source src="'+path_to_the_video_file+'" type="video/mp4" />'
322
+ _ << '<source src="'+path_to_the_video_file+'"/>'
323
+ _ << '<source src="__VIDEO__.OGV" type="video/ogg" />'
324
+ # ======================================================================= #
325
+ # Next, fallback to Flash:
326
+ # ======================================================================= #
327
+ _ << '<object width="640" height="360" type="application/x-shockwave-flash" data="__FLASH__.SWF">'
328
+ # ======================================================================= #
329
+ # Firefox uses the `data` attribute above, IE/Safari uses the param below
330
+ # ======================================================================= #
331
+ _ << '<param name="movie" value="__FLASH__.SWF" />
332
+ <param name="flashvars" value="controlbar=over&amp;image=__POSTER__.JPG&amp;file='+path_to_the_video_file+'" />'
333
+ # ======================================================================= #
334
+ # Fallback image. Note the title field below, put the title of
335
+ # the video there.
336
+ # ======================================================================= #
337
+ _ << '<img src="__VIDEO__.JPG" width="640" height="360" alt="__TITLE__"
338
+ title="No video playback capabilities, please download the video below" />
339
+ </object>'
340
+ _ << '</video>'
341
+ # ======================================================================= #
342
+ # You *must* offer a download link as they may be able to play the
343
+ # file locally. Customize this part all you want.
344
+ # ======================================================================= #
345
+ _ << '<p> <strong>Download Video:</strong><br>
346
+ Closed Format: <a href="__VIDEO__.MP4">"MP4"</a><br>
347
+ Open Format: <a href="__VIDEO__.OGV">"Ogg"</a>
348
+ </p>'
349
+ ee _
350
+ end
351
+
352
+ end
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'cyberweb/toplevel_methods/view_source.rb'
6
+ # =========================================================================== #
7
+ module Cyberweb
8
+
9
+ # ========================================================================= #
10
+ # === Cyberweb.view_source
11
+ #
12
+ # Use this method to have a little formular with a button to view the
13
+ # source code on a webpage.
14
+ #
15
+ # Note that since as of July 2011 a new convention is used here - you
16
+ # can use the input class "view_source" to modify the CSS within
17
+ # the input html.
18
+ #
19
+ # Usage example:
20
+ #
21
+ # div { view_source }
22
+ #
23
+ # ========================================================================= #
24
+ def self.view_source(
25
+ css_class = 'wid25',
26
+ optional_id = 'view_source',
27
+ optional_css_style = ''
28
+ )
29
+ button_css = 'view_source BG_White Black pad2px'
30
+ if css_class.is_a? Hash
31
+ css_class = css_class.delete :css_class
32
+ end
33
+ form '', '', '', optional_id, optional_css_style
34
+ ee '<input class="'+button_css+' '+css_class+'" type="button" value="View Source" '
35
+ ee 'onClick=\'window.location = "view-source:"+window.location.href\'>'
36
+ cform
37
+ end; self.instance_eval { alias vsource view_source } # === Cyberweb.vsource
38
+
39
+ # ========================================================================= #
40
+ # === view_source
41
+ # ========================================================================= #
42
+ def view_source(
43
+ a = 'wid25',
44
+ b = 'view_source',
45
+ c = ''
46
+ )
47
+ ::Cyberweb.view_source(a,b,c)
48
+ end; alias vsource view_source # === vsource
49
+
50
+ end
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'cyberweb/toplevel_methods/web_object.rb'
6
+ # =========================================================================== #
7
+ module Cyberweb
8
+
9
+ # ========================================================================= #
10
+ # === @web_object
11
+ #
12
+ # We initialize a new "instance" of @web_object to nil, at startup.
13
+ # ========================================================================= #
14
+ @web_object = nil
15
+
16
+ # ========================================================================= #
17
+ # === Cyberweb.set_web_object
18
+ #
19
+ # Only a setter - it is not allowed to do anything else but assign to
20
+ # the @web_object instance variable.
21
+ #
22
+ # Consistently use this method if you wish to modify the @web_object
23
+ # variable.
24
+ # ========================================================================= #
25
+ def self.set_web_object(i)
26
+ @web_object = i
27
+ end
28
+
29
+ # ========================================================================= #
30
+ # === Cyberweb.web_object?
31
+ #
32
+ # Keep a reference to the main web_object in use.
33
+ #
34
+ # It will be stored in the variable @web_object.
35
+ # ========================================================================= #
36
+ def self.web_object?
37
+ @web_object
38
+ end; self.instance_eval { alias web_object web_object? } # === Cyberweb.web_object
39
+ self.instance_eval { alias webobject? web_object? } # === Cyberweb.webobject?
40
+ self.instance_eval { alias w? web_object? } # === Cyberweb.w?
41
+
42
+ end
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'cyberweb/toplevel_methods/write_what_into.rb'
6
+ # =========================================================================== #
7
+ module Cyberweb
8
+
9
+ # ========================================================================= #
10
+ # === Cyberweb.write_what_into
11
+ # ========================================================================= #
12
+ def self.write_what_into(
13
+ what, # The content to write.
14
+ into # The file into which this method will write.
15
+ )
16
+ begin
17
+ File.open(into, 'w+') {|file|
18
+ file.write(what) # Write the new file here.
19
+ }
20
+ rescue Errno::EACCES => error # Need to rescue permission errors.
21
+ pp error
22
+ pp `whoami`
23
+ exit
24
+ end
25
+ end
26
+
27
+ end
@@ -0,0 +1,4 @@
1
+ This directory collects classes that normally are not a necessary
2
+ part of the Cyberweb project. For example, a class that can
3
+ download the baloon-widget is such an example for a "utility
4
+ script".
@@ -0,0 +1,172 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === Cyberweb::CreateColouredTags
6
+ #
7
+ # This class can generate the file coloured_tags.rb.
8
+ #
9
+ # That generated file will have entries such as "def aliceblue", so
10
+ # we basically have colours made available in said file.
11
+ # =========================================================================== #
12
+ require 'cyberweb/base/base.rb'
13
+
14
+ module Cyberweb
15
+
16
+ class CreateColouredTags < Base # === Cyberweb::CreateColouredTags
17
+
18
+ begin
19
+ require 'convert_global_env'
20
+ rescue LoadError; end
21
+
22
+ # ========================================================================= #
23
+ # === NAMESPACE
24
+ # ========================================================================= #
25
+ NAMESPACE = inspect
26
+
27
+ # ========================================================================= #
28
+ # === STORE_WHERE
29
+ #
30
+ # Designate where to store the coloured_tags.rb file.
31
+ # ========================================================================= #
32
+ STORE_WHERE = ConvertGlobalEnv.convert(
33
+ '$CYBERWEB/coloured_tags/coloured_tags.rb' # hardcoded path.
34
+ ).to_s
35
+
36
+ # ========================================================================= #
37
+ # === initialize
38
+ # ========================================================================= #
39
+ def initialize(
40
+ run_already = true
41
+ )
42
+ reset
43
+ run if run_already
44
+ end
45
+
46
+ # ========================================================================= #
47
+ # === reset
48
+ # ========================================================================= #
49
+ def reset
50
+ super()
51
+ set_commandline_mode
52
+ # First, determine where we shall store the file coloured_tags.rb actually.
53
+ if ENV['CYBERWEB']
54
+ @store_where = ENV['CYBERWEB'].to_s+'/coloured_tags/coloured_tags.rb'
55
+ else
56
+ @store_where = STORE_WHERE
57
+ end
58
+ @array_aliases_for_colours = []
59
+ @_ = ''.dup # This is the main string that will be generated.
60
+ end
61
+
62
+ # ========================================================================= #
63
+ # === consider_removing_main_file
64
+ # ========================================================================= #
65
+ def consider_removing_main_file
66
+ remove_file(store_where?)
67
+ end
68
+
69
+ # ========================================================================= #
70
+ # === store_where?
71
+ # ========================================================================= #
72
+ def store_where?
73
+ @store_where
74
+ end
75
+
76
+ # ========================================================================= #
77
+ # === _
78
+ # ========================================================================= #
79
+ def _(i)
80
+ @_ << i
81
+ end
82
+
83
+ # ========================================================================= #
84
+ # === populate_main_string_with_data
85
+ #
86
+ # This is the method that will generate the code.
87
+ # ========================================================================= #
88
+ def populate_main_string_with_data
89
+ _ '#!/usr/bin/ruby -w'+N
90
+ _ '# Encoding: UTF-8'+N
91
+ _ '# frozen_string_literal: true'+N
92
+ _ return_header
93
+ _ '# Automatically generated at '+return_date+' from the file'+N
94
+ _ '# create_coloured_tags.rb'+N
95
+ _ return_header # This will already append a newline, hence we don't add another one.
96
+ _ "# require 'cyberweb/coloured_tags/coloured_tags.rb'"+N
97
+ _ return_header
98
+ _ 'module Cyberweb'+N+N
99
+ all_html_colours.each { |colour|
100
+ _ return_header
101
+ _ '# === Cyberweb.'+colour+N
102
+ _ return_header
103
+ _ "def self.return_"+colour+"(text = '', css_class = '', the_id = '', css_style = '')"+N
104
+ _ " ::Cyberweb.string_s(text, 'span', css_class+' "+colour+"', the_id, css_style)"+N
105
+ _ 'end'+N+N
106
+ _ return_header
107
+ _ '# === Cyberweb.'+colour+N
108
+ _ return_header
109
+ _ "def self."+colour+"(text = '', css_class = '', the_id = '', css_style = '')"+N
110
+ _ " e(text, css_class+' "+colour+"', the_id, css_style)"+N
111
+ _ 'end'+N+N
112
+ _ return_header
113
+ _ '# === '+colour+N
114
+ _ return_header
115
+ _ "def "+colour+"(text = '', css_class = '', the_id = '', css_style = '')"+N
116
+ _ " ::Cyberweb."+colour+"(text, css_class, the_id, css_style)"+N
117
+ _ 'end'
118
+ # ===================================================================== #
119
+ # Next, we could create an alias for this colour, but only
120
+ # when we have not already defined such an alias before.
121
+ # ===================================================================== #
122
+ the_alias = colour[0,4]
123
+ unless @array_aliases_for_colours.include? the_alias
124
+ unless colour == the_alias
125
+ _ "; alias #{the_alias} #{colour}" if colour.size > 3 # Add an alias here.
126
+ end
127
+ end
128
+ @array_aliases_for_colours << the_alias
129
+ _ N+N
130
+ }
131
+ _ 'end'
132
+ end
133
+
134
+ # ========================================================================= #
135
+ # === store_data
136
+ # ========================================================================= #
137
+ def store_data
138
+ opnn; e 'Storing into'
139
+ e
140
+ e " #{sfile(store_where?)}"
141
+ e
142
+ write_what_into(@_, store_where?)
143
+ end
144
+
145
+ # ========================================================================= #
146
+ # === opnn
147
+ # ========================================================================= #
148
+ def opnn
149
+ super(NAMESPACE)
150
+ end
151
+
152
+ # ========================================================================= #
153
+ # === return_header
154
+ # ========================================================================= #
155
+ def return_header
156
+ "# =========================================================================== ##{N}"
157
+ end
158
+
159
+ # ========================================================================= #
160
+ # === run
161
+ # ========================================================================= #
162
+ def run
163
+ consider_removing_main_file
164
+ populate_main_string_with_data
165
+ store_data
166
+ end
167
+
168
+ end; end
169
+
170
+ if __FILE__ == $PROGRAM_NAME
171
+ Cyberweb::CreateColouredTags.new
172
+ end # ctags