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,294 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'cyberweb/html_tags/img.rb'
6
+ # Cyberweb.get_images
7
+ # =========================================================================== #
8
+ module Cyberweb
9
+
10
+ require 'cyberweb/toplevel_methods/ee.rb'
11
+ require 'cyberweb/images/images.rb'
12
+
13
+ # ========================================================================= #
14
+ # === Img
15
+ # ========================================================================= #
16
+ class Img < WebBase
17
+
18
+ # ======================================================================= #
19
+ # === @img_css_class
20
+ # ======================================================================= #
21
+ @img_css_class = nil
22
+
23
+ # ======================================================================= #
24
+ # === Img.set_css_class
25
+ # ======================================================================= #
26
+ def self.set_css_class(i = DEFAULT_CSS_CLASS)
27
+ @img_css_class = i
28
+ end
29
+
30
+ # ======================================================================= #
31
+ # === Img.to_s
32
+ # ======================================================================= #
33
+ def self.to_s; @img_css_class; end
34
+
35
+ end
36
+
37
+ # ========================================================================= #
38
+ # === img (img tag)
39
+ #
40
+ # This method will return a proper <img> tag. (Macht ein <img> tag).
41
+ #
42
+ # It will tap into the method string_img() for this, so please refer to
43
+ # that method instead for the full documentation. (bl $CYBER/html_tags.rb)
44
+ #
45
+ # Usage example:
46
+ #
47
+ # img 'LINKS/OGRE.png','wid14px hei14px',"style",'id','alt'
48
+ #
49
+ # You do not have to specify IMG/blabla - IMG will automatically be
50
+ # appended.
51
+ #
52
+ # Cyberweb.img('../../','aaa','bb','cc','id','alt')
53
+ #
54
+ # ========================================================================= #
55
+ def img(
56
+ url = '',
57
+ css_class = Img.to_s,
58
+ the_id = '',
59
+ css_style = '',
60
+ new_line = false,
61
+ alt = '',
62
+ to_img_dir = ::Cyberweb.path_to_images?,
63
+ usemap = '',
64
+ javascript = '',
65
+ &block
66
+ )
67
+
68
+ url = rds(url) if url.to_s.include? '//' # Need .to_s here because it could be a Symbol.
69
+ ::Cyberweb.ee string_img(
70
+ url, css_class, the_id, css_style, new_line,
71
+ alt, to_img_dir, usemap, javascript,
72
+ &block
73
+ ) # string_img() resides in: bl $CYBERWEB/foundation/string_img.rb
74
+ # yield if block_given? # yield extra params like cgi pnl
75
+ # Since September 2014 we will delegate towards string_img to handle blocks.
76
+ end; alias ig img # === ig
77
+
78
+ # ========================================================================= #
79
+ # === img_nbr
80
+ #
81
+ # Calls img() with a nbr. The method img() is defined in
82
+ # bl $CYBER/html_tags/img.rb
83
+ # ========================================================================= #
84
+ def img_nbr(
85
+ url,
86
+ css_class = '',
87
+ the_id = '',
88
+ css_style = '',
89
+ new_line = 0,
90
+ alt = '',
91
+ to_img_dir = ::Cyberweb.path_to_images?,
92
+ usemap = '',
93
+ javascript = ''
94
+ )
95
+ img(url,
96
+ css_class, the_id, css_style,
97
+ new_line, alt, to_img_dir,
98
+ usemap, javascript
99
+ )
100
+ nbr
101
+ end; alias img_br img_nbr # === img_br
102
+ alias imgbr img_nbr # === imgbr
103
+
104
+ # ========================================================================= #
105
+ # === Cyberweb.get_images (all images tag)
106
+ #
107
+ # This wrapper returns all images of a given dir. For this, it calls the
108
+ # method get_files_from().
109
+ #
110
+ # If the second argument, `traverse_into_subdirectories_as_well`, is
111
+ # true, then we will traverse into all subdirectories and seek images.
112
+ # ========================================================================= #
113
+ def self.get_images(
114
+ from_this_dir = IMAGE_DIRECTORY,
115
+ traverse_into_subdirectories_as_well = false
116
+ )
117
+ case from_this_dir
118
+ when :here
119
+ from_this_dir = Dir.pwd
120
+ end
121
+ if File.exist?(from_this_dir)
122
+ _ = get_files_from(
123
+ from_this_dir,
124
+ false,
125
+ traverse_into_subdirectories_as_well
126
+ )
127
+ _.select! {|file| ::Cyberweb.is_image?(file) }
128
+ else
129
+ _ = []
130
+ end
131
+ return _
132
+ end; self.instance_eval { alias get_all_images get_images } # === Cyberweb.get_all_images
133
+ self.instance_eval { alias get_images_from get_images } # === Cyberweb.get_images_from
134
+ self.instance_eval { alias get_all_img_files get_images } # === Cyberweb.get_all_img_files
135
+ self.instance_eval { alias get_all_images_from get_images } # === Cyberweb.get_all_images_from
136
+
137
+ # ========================================================================= #
138
+ # === package_web_images
139
+ #
140
+ # This method will package all web images.
141
+ #
142
+ # The constant ARRAY_LISTING_ALL_PROJECT_IMAGES is defined
143
+ # in the file constant.rb
144
+ # ========================================================================= #
145
+ def package_web_images
146
+ img_base = IMAGE_DIRECTORY
147
+ target = '/Depot/Images/WebImages/'
148
+ ARRAY_LISTING_ALL_PROJECT_IMAGES.each { |img|
149
+ img = img_base+get_webimage(img)
150
+ create_directory(target) unless File.exist? target
151
+ FileUtils::Verbose.cp img, target
152
+ }
153
+ system "tar cfvj #{target}.tar.xz #{target}"
154
+ end
155
+
156
+ # ========================================================================= #
157
+ # === Cyberweb.img
158
+ # ========================================================================= #
159
+ def self.img(
160
+ url = '',
161
+ css_class = Img.to_s,
162
+ the_id = '',
163
+ css_style = '',
164
+ new_line = false,
165
+ alt = '',
166
+ to_img_dir = ::Cyberweb.path_to_images?,
167
+ usemap = '',
168
+ javascript = '',
169
+ &block
170
+ )
171
+ url = rds(url) if url.to_s.include? '//' # Need .to_s here because it could be a Symbol.
172
+ ee ::Cyberweb.string_img(
173
+ url, css_class, the_id, css_style, new_line, alt,
174
+ to_img_dir, usemap, javascript, &block
175
+ ) # string_img() is in: bl $CYBERWEB/string_img/string_img.rb
176
+ end
177
+
178
+ # ========================================================================= #
179
+ # === Cyberweb.string_absolute_img
180
+ #
181
+ # If we link in remote images, we can use this simplified method here
182
+ # called Cyberweb.string_absolute_img. It will return a String,
183
+ # as the name indicates.
184
+ #
185
+ # The first argument to this method should be the remote URL,
186
+ # e. g. the absolute URL to the image at hand. This could
187
+ # be, for example, a String such as the following:
188
+ #
189
+ # 'https://wiki.ultimacodex.com/images/d/d5/DupreU7.PNG'
190
+ #
191
+ # ========================================================================= #
192
+ def self.string_absolute_img(
193
+ remote_url,
194
+ css_class = '',
195
+ the_id = '',
196
+ css_style = ''
197
+ )
198
+ # ======================================================================= #
199
+ # === Handle Hashes given as second argument
200
+ # ======================================================================= #
201
+ if css_class.is_a? Hash
202
+ if css_class.has_key? :id
203
+ the_id = css_class.delete(:id)
204
+ css_class = '' if css_class.empty? and css_class.is_a?(Hash)
205
+ end
206
+ if css_class.has_key? :css_class
207
+ css_class = css_class.delete(:css_class)
208
+ css_class = '' if css_class.empty? and css_class.is_a?(Hash)
209
+ end
210
+ end
211
+ _ = '<img src="'+remote_url+'"'.dup
212
+ unless the_id.empty?
213
+ if the_id.include? 'id='
214
+ _ << the_id # In this case we assume the id was already added.
215
+ else
216
+ _ << ' id="'+the_id.to_s+'"' # .to_s because it might be a Symbol
217
+ end
218
+ end
219
+ _ << return_css_class(css_class).to_s unless css_class.to_s.empty?
220
+ _ << '>'
221
+ return _ # And return the result here.
222
+ end; self.instance_eval { alias sabsolute_img string_absolute_img } # === Cyberweb.sabsolute_img
223
+ self.instance_eval { alias saimg string_absolute_img } # === Cyberweb.samig
224
+
225
+ # ========================================================================= #
226
+ # === string_absolute_img
227
+ #
228
+ # This method will invoke Cyberweb.string_absolute_img() in order to
229
+ # go on and display a remote image.
230
+ # ========================================================================= #
231
+ def string_absolute_img(
232
+ remote_url,
233
+ css_class = '',
234
+ the_id = '',
235
+ css_style = ''
236
+ )
237
+ return ::Cyberweb.string_absolute_img(
238
+ remote_url, css_class, the_id, css_style
239
+ )
240
+ end; alias sabsolute_img string_absolute_img # === sabsolute_img
241
+ alias saimg string_absolute_img # === saimg
242
+
243
+ # ========================================================================= #
244
+ # === absolute_img
245
+ #
246
+ # This method will invoke string_absolute_img() in order to go on and
247
+ # "display" a remote image onto the webpage at hand.
248
+ #
249
+ # The first argument to this method should be the remote URL to the
250
+ # image at hand, as a String.
251
+ #
252
+ # Usage examples:
253
+ #
254
+ # absolute_img('http://mikesrpgcenter.com/krondor/maps/timirianya.gif')
255
+ # remote_img('http://mikesrpgcenter.com/krondor/maps/timirianya.gif')
256
+ #
257
+ # ========================================================================= #
258
+ def absolute_img(
259
+ remote_url, # (1) URL
260
+ css_class = '', # (2) CSS class
261
+ the_id = '', # (3) The ID
262
+ css_style = '' # (4) CSS style
263
+ )
264
+ ee string_absolute_img(
265
+ remote_url,
266
+ css_class,
267
+ the_id,
268
+ css_style
269
+ )
270
+ end; alias embed_remote_image absolute_img # === embed_remote_image
271
+ alias remote_image absolute_img # === remote_image
272
+ alias remote_img absolute_img # === remote_image
273
+ alias display_this_remote_image absolute_img # === display_this_remote_image
274
+
275
+ # ========================================================================= #
276
+ # === in_dir_image
277
+ #
278
+ # This will use an image from the current working directory.
279
+ #
280
+ # The first argument to it should be the target file path of your local
281
+ # file system.
282
+ # ========================================================================= #
283
+ def in_dir_image(
284
+ path,
285
+ optional_css_class = '',
286
+ optional_id = :drag,
287
+ optional_css_style = ''
288
+ )
289
+ ee HtmlTags.img(path, optional_css_class, optional_id, optional_css_style)
290
+ javascript_drag_and_drop(optional_id) if optional_id == :drag
291
+ end; alias indir_img in_dir_image # === indir_img
292
+ alias img_in_dir in_dir_image # === img_in_dir
293
+
294
+ end
@@ -0,0 +1,345 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module Cyberweb
6
+
7
+ require 'cyberweb/standalone_classes/input_focus.rb'
8
+
9
+ # ========================================================================= #
10
+ # === Input
11
+ # ========================================================================= #
12
+ class Input < WebBase
13
+
14
+ # ======================================================================= #
15
+ # === @input_css_class
16
+ # ======================================================================= #
17
+ @input_css_class = nil
18
+
19
+ # ======================================================================= #
20
+ # === Input.set_css_class
21
+ # ======================================================================= #
22
+ def self.set_css_class(i = DEFAULT_CSS_CLASS)
23
+ @input_css_class = i
24
+ end
25
+
26
+ # ======================================================================= #
27
+ # === Input.to_s
28
+ # ======================================================================= #
29
+ def self.to_s
30
+ @input_css_class
31
+ end
32
+
33
+ end
34
+
35
+ # ========================================================================= #
36
+ # === input (input tag)
37
+ #
38
+ # This method will ultimately generate HTML such as the following:
39
+ #
40
+ # <input type="submit" value="Submit" />
41
+ #
42
+ # The allowed input types are:
43
+ #
44
+ # button,checkbox,color,date,datetime,datetime-local,
45
+ # email,file,hidden,image,month,number,password,radio,
46
+ # range,reset,search,submit,tel,text,time,url,week
47
+ #
48
+ # A :hidden input field means that it won't be displayed to the
49
+ # visitor.
50
+ #
51
+ # As of Jan 2014, name_to_use will no longer be displayed if it
52
+ # is empty.
53
+ #
54
+ # Now to some specific usage examples with this method - there
55
+ # are many different ways to use the input() method:
56
+ #
57
+ # input(:submit,'Compile which program:','s2em','id_submit','border:3px solid gold','y','onChange="this.select();"')
58
+ # input :text,'','s2em','dna_input','border:3px solid gold','x'
59
+ # input :s,'','s0_5em mars2em','border:1px solid gold','submit'
60
+ # input :text,'DefaultValue','mars2em','ID','border:1px dotted gold','y_accesskey','javascript'
61
+ # input :submit
62
+ # input :text, 'Hello World!', :select_on_click
63
+ #
64
+ # ========================================================================= #
65
+ def input(
66
+ type = :submit, # (1) type
67
+ default_value = '', # (2) default value
68
+ css_class = Input.to_s, # (3) css class
69
+ name_to_use = '', # (4) name to use
70
+ css_style = '', # (5) css style
71
+ accesskey = '', # (6) accesskey
72
+ my_javascript = '', # (7) javascript
73
+ id = nil, # (8) id
74
+ hash = {} # (9) an additional hash
75
+ )
76
+ # ======================================================================= #
77
+ # First, let's start to assemble our main string that we will return.
78
+ # ======================================================================= #
79
+ _ = '<input'.dup
80
+ # ======================================================================= #
81
+ # Second, let's check if the second argument is a hash.
82
+ # ======================================================================= #
83
+ if default_value.is_a? Hash
84
+ # ===================================================================== #
85
+ # === :css_class
86
+ # ===================================================================== #
87
+ if default_value.has_key? :css_class
88
+ css_class = default_value.delete(:css_class)
89
+ end
90
+ # ===================================================================== #
91
+ # === :accesskey
92
+ # ===================================================================== #
93
+ if default_value.has_key? :accesskey
94
+ accesskey = default_value[:accesskey]
95
+ end
96
+ # ===================================================================== #
97
+ # === :id
98
+ # ===================================================================== #
99
+ if default_value.has_key? :id
100
+ id = default_value[:id]
101
+ end
102
+ # ===================================================================== #
103
+ # === :name
104
+ # ===================================================================== #
105
+ if default_value.has_key? :name
106
+ name_to_use = default_value.delete(:name)
107
+ end
108
+ end
109
+ case type.to_sym # case tag
110
+ when :datetime
111
+ _ << ' type="datetime-local"'
112
+ when :month
113
+ _ << ' type="month"'
114
+ when :week
115
+ _ << ' type="week"'
116
+ when :image, :img, :i
117
+ _ << ' type="image"'
118
+ when :button, :b
119
+ _ << ' type="button"'
120
+ when :hidden, :h
121
+ _ << ' type="hidden"'
122
+ when :submit, :s
123
+ _ << ' type="submit"'
124
+ when :reset, :r
125
+ _ << ' type="reset"'
126
+ when :text, :field, :default, :t
127
+ _ << ' type="text"'
128
+ when :file, :file_uploads, :upload, :file_dialogue,
129
+ :f, :file_handle # File uploads are handled here.
130
+ _ << ' type="file"'
131
+ id = 'input_file_upload' if id.nil?
132
+ else
133
+ _ = type.to_s+' was not found ...'+NL
134
+ end
135
+ # ======================================================================= #
136
+ # Next, handle Symbol input given to css_class.
137
+ #
138
+ # This can be a Symbol such as:
139
+ # :select_on_click
140
+ # or such as:
141
+ # :focus_with_deepskyblue_background
142
+ # ======================================================================= #
143
+ if css_class.is_a? Symbol
144
+ case css_class # case tag
145
+ when :select_on_click
146
+ css_class = Input.to_s
147
+ if my_javascript.empty? # If it is empty then we can populate it.
148
+ my_javascript = :select_on_click
149
+ end
150
+ else
151
+ # =================================================================== #
152
+ # The next line will handle cases such as:
153
+ # :focus_with_yellow_background
154
+ # =================================================================== #
155
+ if css_class.to_s.start_with? 'focus_with'
156
+ # ================================================================= #
157
+ # Delegate towards class InputFocus next.
158
+ # ================================================================= #
159
+ input_focus = ::Cyberweb::InputFocus.new(css_class)
160
+ add_css_style input_focus.string?
161
+ css_class = input_focus.css_class?.dup
162
+ # ================================================================= #
163
+ # Keep in mind that the user may have set a default value for
164
+ # a css class, via Input.set_css_class(). If this is the case
165
+ # then we have to honour this setting and will simply append it.
166
+ # ================================================================= #
167
+ unless Input.to_s.empty?
168
+ css_class << N+Input.to_s.dup
169
+ end
170
+ end
171
+ end
172
+ end
173
+ # ======================================================================= #
174
+ # === Handle blocks next, if given
175
+ #
176
+ # Check for block-supplied to the method. Note that this must come
177
+ # before the call to return_css_class(), as the blocks passed into
178
+ # this method may also modify the css-class in use.
179
+ # ======================================================================= #
180
+ if block_given?
181
+ yielded = yield # yield the block here.
182
+ case yielded
183
+ when :select_on_click
184
+ my_javascript = :select_on_click
185
+ else
186
+ if yielded.is_a? Hash
187
+ # ================================================================= #
188
+ # === Handle: input_submit {{ css_class: 'bblack1' }}
189
+ # ================================================================= #
190
+ if yielded.has_key? :css_class
191
+ css_class = yielded.delete(:css_class)
192
+ end
193
+ # ================================================================= #
194
+ # === Handle: input_submit {{ text: 'submit' }}
195
+ # ================================================================= #
196
+ if yielded.has_key? :text
197
+ default_value = yielded.delete(:text)
198
+ end
199
+ end
200
+ end
201
+ end
202
+ _ << return_css_class(css_class)
203
+ _ << return_css_style(css_style)
204
+ if name_to_use.is_a? Symbol # This is copy/paste of the above.
205
+ case name_to_use
206
+ when :select_on_click
207
+ name_to_use = ''
208
+ if my_javascript.empty? # If it is empty then we can populate it.
209
+ my_javascript = :select_on_click
210
+ end
211
+ end
212
+ end
213
+ _ << return_the_name(name_to_use) unless name_to_use.to_s.empty?
214
+ _ << return_accesskey(accesskey)
215
+ if id
216
+ if id.is_a? String
217
+ _ << ' id="'+id.to_s+'"'
218
+ end
219
+ end
220
+ my_javascript = sanitize_javascript(my_javascript)
221
+ _ << ' '+my_javascript unless my_javascript.empty?
222
+ if default_value.is_a? Hash
223
+ if default_value.has_key? :value
224
+ _ << ' value="'+default_value[:value].to_s+'"'
225
+ end
226
+ else
227
+ unless _.include?('value')
228
+ unless default_value.to_s.empty? # then add our default value
229
+ _ << ' value="'+default_value.to_s+'"'
230
+ end
231
+ end
232
+ end
233
+ # ======================================================================= #
234
+ # Next handle a possible hash-argument here.
235
+ # ======================================================================= #
236
+ if hash.is_a? Hash
237
+ _ << ' size="'+hash[:size].to_s+'"' if hash[:size]
238
+ _ << ' maxlength="'+hash[:max_length].to_s+'"' if hash[:max_length]
239
+ end
240
+ _ << ' />'+NL
241
+ ee _
242
+ end
243
+
244
+ # ========================================================================= #
245
+ # === checkbox
246
+ # ========================================================================= #
247
+ def checkbox(
248
+ default_value = '',
249
+ css_class = Input.to_s,
250
+ name_to_use = '',
251
+ css_style = '',
252
+ accesskey = '',
253
+ my_javascript = '',
254
+ id = nil,
255
+ hash = {}
256
+ )
257
+ input(:checkbox,
258
+ default_value, css_class, name_to_use, css_style,
259
+ accesskey, my_javascript, id, hash
260
+ )
261
+ end
262
+
263
+ # ========================================================================= #
264
+ # === input_text
265
+ #
266
+ # This is a simplified name for an <input> tag that accepts text.
267
+ # ========================================================================= #
268
+ def input_text(
269
+ default_value = '',
270
+ css_class = Input.to_s,
271
+ name_to_use = '',
272
+ css_style = '',
273
+ accesskey = '',
274
+ my_javascript = '',
275
+ id = nil,
276
+ hash = {}
277
+ )
278
+ input(:text,
279
+ default_value, css_class, name_to_use, css_style,
280
+ accesskey, my_javascript, id, hash
281
+ )
282
+ end
283
+
284
+ # ========================================================================= #
285
+ # === file_dialog_button
286
+ # ========================================================================= #
287
+ def file_dialog_button(
288
+ default_value = 'Search for a file',
289
+ css_class = Input.to_s,
290
+ name_to_use = '',
291
+ css_style = '',
292
+ accesskey = '',
293
+ my_javascript = '',
294
+ id = nil,
295
+ hash = {}
296
+ )
297
+ input :file, default_value, css_class, name_to_use,
298
+ css_style, accesskey, my_javascript, id, hash
299
+ end; alias file_dialogue_button file_dialog_button # === file_dialogue_button
300
+
301
+ # ========================================================================= #
302
+ # === input_submit
303
+ #
304
+ # This is essentially a submit-button, in HTML.
305
+ #
306
+ # The first argument is the text that should be used for that button.
307
+ # ========================================================================= #
308
+ def input_submit(
309
+ default_value = '',
310
+ css_class = Input.to_s,
311
+ name_to_use = '',
312
+ css_style = '',
313
+ accesskey = '',
314
+ my_javascript = '',
315
+ id = nil,
316
+ hash = {},
317
+ &block
318
+ )
319
+ input(
320
+ :submit,
321
+ default_value,
322
+ css_class,
323
+ name_to_use,
324
+ css_style,
325
+ accesskey,
326
+ my_javascript,
327
+ id,
328
+ hash,
329
+ &block
330
+ )
331
+ end
332
+
333
+ # ========================================================================= #
334
+ # === submit
335
+ #
336
+ # Easier usage. You can just use submit() to have it work.
337
+ # ========================================================================= #
338
+ def submit(
339
+ name = 'Submit it',
340
+ css_class = 'BG_Black s2em BO white'
341
+ )
342
+ input :submit, name, css_class,'submit', 'border: 1px solid gold'
343
+ end; alias add_submit_button submit # === add_submit_button
344
+
345
+ end
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # Code for the <label> tag.
6
+ # =========================================================================== #
7
+ module Cyberweb
8
+
9
+ # ========================================================================= #
10
+ # === Label
11
+ # ========================================================================= #
12
+ class Label < WebBase
13
+
14
+ # ======================================================================= #
15
+ # === @label_css_class
16
+ # ======================================================================= #
17
+ @label_css_class = nil
18
+
19
+ # ======================================================================= #
20
+ # === Label.set_css_class
21
+ # ======================================================================= #
22
+ def self.set_css_class(i = DEFAULT_CSS_CLASS)
23
+ @label_css_class = i
24
+ end
25
+
26
+ # ======================================================================= #
27
+ # === Label.to_s
28
+ # ======================================================================= #
29
+ def self.to_s; @label_css_class; end
30
+
31
+ end
32
+
33
+ # ========================================================================= #
34
+ # === label
35
+ #
36
+ # In rails this would be used like this:
37
+ #
38
+ # label_tag(:q, "Search for:")
39
+ #
40
+ # This would then create:
41
+ # <label for="q">Search for:</label>
42
+ # ========================================================================= #
43
+ def label(
44
+ key_to_use = ':q',
45
+ text_to_use = 'Search for:',
46
+ css_class = Label.to_s,
47
+ the_id = '',
48
+ css_style = ''
49
+ )
50
+ key_to_use = key_to_use.to_s
51
+ key_to_use.prepend ':' unless key_to_use.start_with? ':'
52
+ result = '<label for="'+key_to_use.to_s+'">'+text_to_use.to_s+'</label>'
53
+ ee result
54
+ end
55
+
56
+ # ========================================================================= #
57
+ # === clabel
58
+ # ========================================================================= #
59
+ def clabel
60
+ eclose :label
61
+ end
62
+
63
+ end