cyberweb 0.12.35 → 0.13.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +220 -124
  3. data/bin/cyberweb_sanitize +1 -1
  4. data/bin/images_from_this_webpage +1 -1
  5. data/doc/README.gen +209 -98
  6. data/doc/configuration/configuration.md +7 -4
  7. data/doc/todo/todo_for_the_cyberweb_project.md +123 -133
  8. data/examples/html/underlined_text_example/underlined_text_example.html +40 -0
  9. data/examples/misc/table_example.rb +19 -17
  10. data/examples/objectified/objectified_caesar_cipher.cgi +73 -0
  11. data/images/cyberweb_theme.png +0 -0
  12. data/lib/cyberweb/REST/constants.rb +1 -1
  13. data/lib/cyberweb/base/base.rb +19 -27
  14. data/lib/cyberweb/base_module/base_module/base_module.rb +31 -16
  15. data/lib/cyberweb/base_module/colours/colours.rb +0 -8
  16. data/lib/cyberweb/cascading_style_sheets/margin.css +4 -0
  17. data/lib/cyberweb/cascading_style_sheets/misc.css +15 -0
  18. data/lib/cyberweb/cgi/cookie.rb +160 -156
  19. data/lib/cyberweb/cgi/core.rb +7 -7
  20. data/lib/cyberweb/cgi/query_extension.rb +1 -1
  21. data/lib/cyberweb/cgi/session/memory_store.rb +1 -1
  22. data/lib/cyberweb/cgi/session/pstore.rb +2 -2
  23. data/lib/cyberweb/cgi/session.rb +1 -1
  24. data/lib/cyberweb/cgi/util.rb +4 -1
  25. data/lib/cyberweb/cmd/cmd.rb +12 -10
  26. data/lib/cyberweb/coloured_tags/coloured_tags.rb +1 -1
  27. data/lib/cyberweb/colours/colour_chart.rb +1 -2
  28. data/lib/cyberweb/colours/colours.rb +1 -1
  29. data/lib/cyberweb/commandline/commandline_interface.rb +1 -1
  30. data/lib/cyberweb/configuration/load_the_configuration.rb +3 -1
  31. data/lib/cyberweb/constants/http_status_codes.rb +4 -1
  32. data/lib/cyberweb/constants/misc.rb +8 -6
  33. data/lib/cyberweb/constants/registered_html_tags.rb +6 -5
  34. data/lib/cyberweb/constants/user_x.rb +7 -0
  35. data/lib/cyberweb/css_manager/css_manager.rb +5 -2
  36. data/lib/cyberweb/encoding/encoding.rb +1 -1
  37. data/lib/cyberweb/erb/test.rhtml +7 -2
  38. data/lib/cyberweb/experimental/html_template_powered_by_rack.rb +3 -1
  39. data/lib/cyberweb/foto_gallery/foto_gallery.rb +3 -0
  40. data/lib/cyberweb/generator/cgi.rb +1 -1
  41. data/lib/cyberweb/html_template/html_template.rb +262 -253
  42. data/lib/cyberweb/images/images.rb +2 -2
  43. data/lib/cyberweb/images/remove_this_substring_from_all_images.rb +5 -1
  44. data/lib/cyberweb/images/standard_images/standard_images.html +3 -4
  45. data/lib/cyberweb/information/README.md +2 -2
  46. data/lib/cyberweb/information/information.cgi +1 -1
  47. data/lib/cyberweb/javascript/dragula_collection.rb +4 -1
  48. data/lib/cyberweb/javascript/javascript_magic.rb +2 -2
  49. data/lib/cyberweb/javascript/on_click_change_opacity.rb +2 -1
  50. data/lib/cyberweb/javascript/popup.rb +8 -1
  51. data/lib/cyberweb/javascript/snoweffect.rb +5 -1
  52. data/lib/cyberweb/javascript_code/custom_functions.js +50 -32
  53. data/lib/cyberweb/objectified/html_tags/README.md +7 -9
  54. data/lib/cyberweb/objectified/html_tags/a.rb +62 -3
  55. data/lib/cyberweb/objectified/html_tags/abbr.rb +33 -3
  56. data/lib/cyberweb/objectified/html_tags/audio.rb +33 -3
  57. data/lib/cyberweb/objectified/html_tags/base.rb +661 -588
  58. data/lib/cyberweb/objectified/html_tags/blockquote.rb +33 -3
  59. data/lib/cyberweb/objectified/html_tags/body.rb +43 -3
  60. data/lib/cyberweb/objectified/html_tags/button.rb +75 -5
  61. data/lib/cyberweb/objectified/html_tags/canvas.rb +43 -3
  62. data/lib/cyberweb/objectified/html_tags/cite.rb +43 -3
  63. data/lib/cyberweb/objectified/html_tags/div.rb +70 -7
  64. data/lib/cyberweb/objectified/html_tags/embed.rb +43 -3
  65. data/lib/cyberweb/objectified/html_tags/fieldset.rb +43 -3
  66. data/lib/cyberweb/objectified/html_tags/figure.rb +43 -3
  67. data/lib/cyberweb/objectified/html_tags/form.rb +78 -3
  68. data/lib/cyberweb/objectified/html_tags/h1.rb +43 -3
  69. data/lib/cyberweb/objectified/html_tags/h2.rb +43 -3
  70. data/lib/cyberweb/objectified/html_tags/h3.rb +43 -3
  71. data/lib/cyberweb/objectified/html_tags/h4.rb +43 -3
  72. data/lib/cyberweb/objectified/html_tags/h5.rb +43 -3
  73. data/lib/cyberweb/objectified/html_tags/h6.rb +43 -3
  74. data/lib/cyberweb/objectified/html_tags/head.rb +34 -1
  75. data/lib/cyberweb/objectified/html_tags/i.rb +112 -0
  76. data/lib/cyberweb/objectified/html_tags/img.rb +65 -18
  77. data/lib/cyberweb/objectified/html_tags/input.rb +86 -2
  78. data/lib/cyberweb/objectified/html_tags/label.rb +103 -0
  79. data/lib/cyberweb/objectified/html_tags/legend.rb +129 -0
  80. data/lib/cyberweb/objectified/html_tags/li.rb +111 -0
  81. data/lib/cyberweb/objectified/html_tags/map.rb +43 -3
  82. data/lib/cyberweb/objectified/html_tags/meta.rb +13 -2
  83. data/lib/cyberweb/objectified/html_tags/nav.rb +111 -0
  84. data/lib/cyberweb/objectified/html_tags/object.rb +33 -3
  85. data/lib/cyberweb/objectified/html_tags/ol.rb +127 -0
  86. data/lib/cyberweb/objectified/html_tags/p.rb +33 -3
  87. data/lib/cyberweb/objectified/html_tags/pre.rb +41 -4
  88. data/lib/cyberweb/objectified/html_tags/progress.rb +43 -3
  89. data/lib/cyberweb/objectified/html_tags/section.rb +116 -0
  90. data/lib/cyberweb/objectified/html_tags/select.rb +34 -1
  91. data/lib/cyberweb/objectified/html_tags/span.rb +64 -5
  92. data/lib/cyberweb/objectified/html_tags/style.rb +9 -2
  93. data/lib/cyberweb/objectified/html_tags/table.rb +137 -3
  94. data/lib/cyberweb/objectified/html_tags/td.rb +135 -0
  95. data/lib/cyberweb/objectified/html_tags/textarea.rb +37 -3
  96. data/lib/cyberweb/objectified/html_tags/th.rb +114 -0
  97. data/lib/cyberweb/objectified/html_tags/thead.rb +114 -0
  98. data/lib/cyberweb/objectified/html_tags/title.rb +10 -2
  99. data/lib/cyberweb/objectified/html_tags/tr.rb +110 -0
  100. data/lib/cyberweb/objectified/html_tags/ul.rb +45 -4
  101. data/lib/cyberweb/objectified/shorter_helper_methods/shorter_helper_methods.rb +67 -46
  102. data/lib/cyberweb/oop.rb +9 -0
  103. data/lib/cyberweb/predefined_and_freeform_methods/hash_registered_extra_tags.rb +2 -0
  104. data/lib/cyberweb/predefined_and_freeform_methods/header.rb +4 -1
  105. data/lib/cyberweb/project/project.rb +0 -4
  106. data/lib/cyberweb/requires/remove_html.rb +1 -1
  107. data/lib/cyberweb/requires/require_the_cyberweb_project.rb +1 -9
  108. data/lib/cyberweb/route_handler/module/route_handler_module.rb +2 -1
  109. data/lib/cyberweb/standalone_classes/all_css_classes.rb +5 -2
  110. data/lib/cyberweb/standalone_classes/calculator.rb +3 -1
  111. data/lib/cyberweb/toplevel_methods/audio.rb +3 -1
  112. data/lib/cyberweb/toplevel_methods/csv.rb +1 -1
  113. data/lib/cyberweb/toplevel_methods/frames.rb +11 -3
  114. data/lib/cyberweb/toplevel_methods/greek_letters/greek_letters.rb +3 -0
  115. data/lib/cyberweb/toplevel_methods/hfin.rb +5 -1
  116. data/lib/cyberweb/toplevel_methods/html_tags/README.md +8 -7
  117. data/lib/cyberweb/toplevel_methods/html_tags/html_tags.rb +4211 -2827
  118. data/lib/cyberweb/toplevel_methods/html_tags/table.rb +1202 -0
  119. data/lib/cyberweb/toplevel_methods/javascript.rb +9 -1
  120. data/lib/cyberweb/toplevel_methods/jquery.rb +1 -1
  121. data/lib/cyberweb/toplevel_methods/{log_directory.rb → log_directory_and_logging.rb} +36 -1
  122. data/lib/cyberweb/toplevel_methods/params.rb +11 -11
  123. data/lib/cyberweb/toplevel_methods/random.rb +4 -3
  124. data/lib/cyberweb/toplevel_methods/registered_ids.rb +3 -0
  125. data/lib/cyberweb/toplevel_methods/return_head_start.rb +1 -3
  126. data/lib/cyberweb/toplevel_methods/return_html_start.rb +1 -3
  127. data/lib/cyberweb/toplevel_methods/sanitize_url.rb +2 -1
  128. data/lib/cyberweb/toplevel_methods/server_base_directory.rb +0 -1
  129. data/lib/cyberweb/toplevel_methods/textile.rb +2 -1
  130. data/lib/cyberweb/toplevel_methods/{misc.rb → toplevel_methods.rb} +1446 -807
  131. data/lib/cyberweb/toplevel_methods/video.rb +21 -3
  132. data/lib/cyberweb/toplevel_methods/write_what_into.rb +2 -2
  133. data/lib/cyberweb/utility_scripts/autogenerate_drop_shadow_rules/autogenerate_drop_shadow_rules.rb +2 -4
  134. data/lib/cyberweb/utility_scripts/booklet/booklet.rb +0 -4
  135. data/lib/cyberweb/utility_scripts/download_all_images_from_this_website.rb +1 -1
  136. data/lib/cyberweb/utility_scripts/{download_balloon_css.rb → download_balloon_css/download_balloon_css.rb} +1 -1
  137. data/lib/cyberweb/utility_scripts/images_to_html/images_to_html.rb +3 -0
  138. data/lib/cyberweb/utility_scripts/obtain_files_and_directories_from_this_path/obtain_files_and_directories_from_this_path.rb +183 -71
  139. data/lib/cyberweb/utility_scripts/pdf_to_html/pdf_to_html.rb +160 -65
  140. data/lib/cyberweb/version/version.rb +2 -2
  141. data/lib/cyberweb/web_images/map_symbol_to_image_location.rb +13 -2
  142. data/lib/cyberweb/web_object/web_object.rb +62 -20
  143. data/lib/cyberweb/web_scraper/scrape_this_url.rb +3 -1
  144. data/lib/cyberweb/webmin/biology_server.cgi +1 -1
  145. data/lib/cyberweb/webmin/calculator.cgi +1 -1
  146. data/lib/cyberweb/webmin/colour_chart.cgi +1 -1
  147. data/lib/cyberweb/webmin/comments.cgi +2 -2
  148. data/lib/cyberweb/webmin/constants.rb +1 -1
  149. data/lib/cyberweb/webmin/dictionary.cgi +2 -2
  150. data/lib/cyberweb/webmin/simple_forum/index.cgi +2 -2
  151. data/lib/cyberweb/webmin/sys_info.cgi +3 -3
  152. data/lib/cyberweb/webmin/webforum.cgi +1 -1
  153. data/lib/cyberweb/yaml/registered_html_tags.yml +3 -1
  154. data/test/simple_tests/testing_return_dataset_without_any_comments.rb +1 -1
  155. metadata +23 -57
  156. data/lib/cyberweb/html_tags/README.md +0 -3
  157. data/lib/cyberweb/html_tags/a.rb +0 -67
  158. data/lib/cyberweb/html_tags/accesskey.rb +0 -25
  159. data/lib/cyberweb/html_tags/blockquote.rb +0 -56
  160. data/lib/cyberweb/html_tags/body.rb +0 -14
  161. data/lib/cyberweb/html_tags/br.rb +0 -19
  162. data/lib/cyberweb/html_tags/button.rb +0 -150
  163. data/lib/cyberweb/html_tags/canvas.rb +0 -59
  164. data/lib/cyberweb/html_tags/chtml.rb +0 -14
  165. data/lib/cyberweb/html_tags/div.rb +0 -170
  166. data/lib/cyberweb/html_tags/fieldset.rb +0 -69
  167. data/lib/cyberweb/html_tags/figure.rb +0 -72
  168. data/lib/cyberweb/html_tags/form.rb +0 -203
  169. data/lib/cyberweb/html_tags/h1.rb +0 -77
  170. data/lib/cyberweb/html_tags/h2.rb +0 -81
  171. data/lib/cyberweb/html_tags/h3.rb +0 -60
  172. data/lib/cyberweb/html_tags/h4.rb +0 -66
  173. data/lib/cyberweb/html_tags/h5.rb +0 -64
  174. data/lib/cyberweb/html_tags/h6.rb +0 -60
  175. data/lib/cyberweb/html_tags/hr.rb +0 -22
  176. data/lib/cyberweb/html_tags/html_tags.rb +0 -267
  177. data/lib/cyberweb/html_tags/i.rb +0 -52
  178. data/lib/cyberweb/html_tags/img.rb +0 -294
  179. data/lib/cyberweb/html_tags/input.rb +0 -354
  180. data/lib/cyberweb/html_tags/label.rb +0 -65
  181. data/lib/cyberweb/html_tags/legend.rb +0 -56
  182. data/lib/cyberweb/html_tags/li.rb +0 -67
  183. data/lib/cyberweb/html_tags/map.rb +0 -38
  184. data/lib/cyberweb/html_tags/nav.rb +0 -63
  185. data/lib/cyberweb/html_tags/object.rb +0 -57
  186. data/lib/cyberweb/html_tags/ol.rb +0 -57
  187. data/lib/cyberweb/html_tags/option.rb +0 -64
  188. data/lib/cyberweb/html_tags/p.rb +0 -88
  189. data/lib/cyberweb/html_tags/pre.rb +0 -162
  190. data/lib/cyberweb/html_tags/section.rb +0 -33
  191. data/lib/cyberweb/html_tags/select.rb +0 -104
  192. data/lib/cyberweb/html_tags/span.rb +0 -344
  193. data/lib/cyberweb/html_tags/strong.rb +0 -42
  194. data/lib/cyberweb/html_tags/table.rb +0 -284
  195. data/lib/cyberweb/html_tags/tbody.rb +0 -26
  196. data/lib/cyberweb/html_tags/td.rb +0 -212
  197. data/lib/cyberweb/html_tags/textarea.rb +0 -173
  198. data/lib/cyberweb/html_tags/th.rb +0 -70
  199. data/lib/cyberweb/html_tags/thead.rb +0 -41
  200. data/lib/cyberweb/html_tags/tr.rb +0 -99
  201. data/lib/cyberweb/html_tags/ul.rb +0 -51
  202. data/lib/cyberweb/requires/require_html_tags_files.rb +0 -23
  203. data/lib/cyberweb/toplevel_methods/logging.rb +0 -42
  204. data/lib/cyberweb/web_base/web_base.rb +0 -33
@@ -5,30 +5,32 @@
5
5
  require 'colours/autoinclude'
6
6
  require 'cyberweb/autoinclude'
7
7
 
8
- puts
9
- puts 'This example showcases how to use Tables in the WebObject project.'
10
- puts
8
+ alias e puts
11
9
 
12
- puts "table('mars1em','test_table1','border:1px solid rand') { %w("
13
- puts " this is a test table1 with every individual"
14
- puts " entry becoming populated into the table"
15
- puts " )}"
10
+ e
11
+ e 'This example showcases how to use Tables in the WebObject project.'
12
+ e
13
+
14
+ e "table('mars1em','test_table1','border:1px solid rand') { %w("
15
+ e " this is a test table1 with every individual"
16
+ e " entry becoming populated into the table"
17
+ e " )}"
16
18
 
17
19
  table('mars1em','test_table1','border:1px solid rand') { %w(
18
20
  this is a test table1 with every individual
19
21
  entry becoming populated into the table
20
22
  )}
21
23
 
22
- puts
23
- puts 'Next, showing table4():'
24
- puts
25
- puts " table4('mars1em','test_table1','border:1px solid rand') { %w("
26
- puts " this is a test"
27
- puts " table1 with every individual"
28
- puts " entry becoming populated into"
29
- puts " the fat table here"
30
- puts " )}"
31
- puts
24
+ e
25
+ e 'Next, showing table4():'
26
+ e
27
+ e " table4('mars1em','test_table1','border:1px solid rand') { %w("
28
+ e " this is a test"
29
+ e " table1 with every individual"
30
+ e " entry becoming populated into"
31
+ e " the fat table here"
32
+ e " )}"
33
+ e
32
34
  table4('mars1em','test_table1','border:1px solid rand') { %w(
33
35
  this is a test
34
36
  table1 with every individual
@@ -0,0 +1,73 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # http://localhost/programming/ruby/src/cyberweb/examples/objectified/objectified_caesar_cipher.cgi
6
+ # =========================================================================== #
7
+ require 'cyberweb/oop.rb'
8
+
9
+ @internal_hash = {}
10
+
11
+ require 'universal_widgets/base_module/base_module.rb'
12
+ include UniversalWidgets::BaseModule
13
+
14
+ UniversalWidgets.use_www
15
+
16
+ require 'roebe/gui/shared_code/interactive_caesar_cipher/interactive_caesar_cipher_module.rb'
17
+ include Roebe::GUI::InteractiveCaesarCipherModule
18
+
19
+ alias e puts
20
+
21
+ Cyberweb.cgi_header?
22
+
23
+ reset_the_shared_module
24
+
25
+ entry_left = oop_entry('APPLE', css_style: 'padding: 8px; margin: 5px;', id: 'entry1')
26
+ @array_entries << entry_left
27
+
28
+ entry_right = oop_entry(css_style: 'padding: 8px; margin: 5px;', id: 'entry2')
29
+ @array_entries << entry_right
30
+
31
+ button1 = oop_button('Evaluate the cypher', id: 'test_button', css_style: 'font-size: larger; border: 3px solid black; border-radius: 12px;')
32
+
33
+ e '<html><head><style>
34
+
35
+
36
+ body {
37
+ padding: '+padding?.to_s+'px;
38
+ }
39
+ </style>
40
+
41
+ '
42
+ e HtmlTags.title(TITLE)
43
+ e '</head><body>'
44
+ e '<script>
45
+ '+Cyberweb.return_javascript_code('custom_functions.js')+'
46
+
47
+
48
+ function set_top_right_entry(i) {
49
+ const entry2 = document.getElementById("entry2")
50
+ entry2.value = i /* This is .set_text(i) */
51
+ }
52
+
53
+ </script>'
54
+ e '<span style="margin-right: 8em">'+return_text1+'</span>'+
55
+ return_text2+
56
+ return_text3+
57
+ '<br>'
58
+
59
+ set_top_right_entry('Testing to set the top right entry here. Does this work?') # Must come before entry2? is rendered.
60
+ e entry1?+
61
+ Cyberweb.rarrow?+
62
+ entry2?
63
+ e
64
+ e '<script>
65
+ set_top_right_entry("JOKER") /* Set towards a new entry here. */
66
+ </script>'
67
+
68
+ button1.on_clicked {
69
+ # "popup('Hello world!!!!!')"
70
+ 'set_top_right_entry("HEY THERE")'
71
+ }
72
+ e button1
73
+ e '</body></html>'
Binary file
@@ -6,7 +6,7 @@
6
6
  # =========================================================================== #
7
7
  module Cyberweb
8
8
 
9
- module REST
9
+ module REST # === Cyberweb::REST
10
10
 
11
11
  # ========================================================================= #
12
12
  # === Cyberweb::REST::HEADER_PARAM
@@ -16,7 +16,7 @@ class Base # === Cyberweb::Base
16
16
  require 'cyberweb/debug/debug.rb'
17
17
  require 'cyberweb/toplevel_methods/ee.rb'
18
18
  require 'cyberweb/toplevel_methods/is_an_image.rb'
19
- require 'cyberweb/toplevel_methods/misc.rb'
19
+ require 'cyberweb/toplevel_methods/toplevel_methods.rb'
20
20
  require 'cyberweb/toplevel_methods/jquery.rb'
21
21
  require 'cyberweb/toplevel_methods/sort_this_array_by_time.rb'
22
22
 
@@ -71,20 +71,6 @@ class Base # === Cyberweb::Base
71
71
  @internal_hash[:mode] = :www
72
72
  end
73
73
 
74
- # ========================================================================= #
75
- # === rarrow?
76
- # ========================================================================= #
77
- def rarrow?
78
- '→'
79
- end; alias rarrow rarrow? # === rarrow
80
-
81
- # ========================================================================= #
82
- # === ruby_sitelib_dir?
83
- # ========================================================================= #
84
- def ruby_sitelib_dir?
85
- RbConfig::CONFIG['sitelibdir'].to_s+'/'
86
- end
87
-
88
74
  # ========================================================================= #
89
75
  # === copyright?
90
76
  #
@@ -149,16 +135,6 @@ class Base # === Cyberweb::Base
149
135
  end
150
136
  end; alias remove_directory delete_directory # === remove_directory
151
137
 
152
- # ========================================================================= #
153
- # === echo_raw
154
- #
155
- # This is a simplified echo-method, in case e() does not work.
156
- # ========================================================================= #
157
- def echo_raw(i = '')
158
- puts i
159
- end; alias er echo_raw # === er
160
- alias re echo_raw # === re
161
-
162
138
  # ========================================================================= #
163
139
  # === opne
164
140
  # ========================================================================= #
@@ -300,7 +276,7 @@ class Base # === Cyberweb::Base
300
276
  # === is_a_video_file?
301
277
  # ========================================================================= #
302
278
  def is_a_video_file?(i)
303
- require 'cyberweb/toplevel_methods/misc.rb'
279
+ require 'cyberweb/toplevel_methods/toplevel_methods.rb'
304
280
  Cyberweb.is_a_video_file?(i)
305
281
  end
306
282
 
@@ -510,10 +486,26 @@ class Base # === Cyberweb::Base
510
486
  return ::Cyberweb.html_colours?
511
487
  end
512
488
 
489
+ # ========================================================================= #
490
+ # === echo_raw
491
+ #
492
+ # This is a simplified echo-method, in case e() does not work.
493
+ # ========================================================================= #
494
+ def echo_raw(i = '')
495
+ puts i
496
+ end; alias er echo_raw # === er
497
+ alias re echo_raw # === re
498
+
499
+ # ========================================================================= #
500
+ # === is_a_file?
501
+ # ========================================================================= #
502
+ def is_a_file?(i)
503
+ File.file?(i)
504
+ end
505
+
513
506
  end; end
514
507
 
515
508
  if __FILE__ == $PROGRAM_NAME
516
- alias e puts
517
509
  require 'colours/autoinclude'
518
510
  print rev
519
511
  base = Cyberweb::Base.new
@@ -67,22 +67,6 @@ module BaseModule # === Cyberweb::BaseModule
67
67
  require 'cyberweb/requires/require_the_html_template.rb'
68
68
  end
69
69
 
70
- # ========================================================================= #
71
- # === html_templates
72
- #
73
- # This method is just a wrapper over class Cyberweb::HtmlTemplate.
74
- #
75
- # Since as of May 2023 class Cyberweb::HtmlTemplate is one of the
76
- # most important classes of the cyberweb project, so it made sense
77
- # to have a simpler method to yield a new html-template object.
78
- # ========================================================================= #
79
- def html_templates(hash)
80
- require_the_html_templates unless Cyberweb.const_defined?(:HtmlTemplate)
81
- Cyberweb.html_template(
82
- hash
83
- ).to_s # Make sure it is string-rendered.
84
- end; alias html_template html_templates # === html_template
85
-
86
70
  # ========================================================================= #
87
71
  # === try_to_require_the_open_gem
88
72
  # ========================================================================= #
@@ -188,6 +172,7 @@ module BaseModule # === Cyberweb::BaseModule
188
172
  alias make_available attach_these_constants # === make_available
189
173
  alias pull_in attach_these_constants # === pull_in
190
174
 
175
+ require 'cyberweb/toplevel_methods/log_directory_and_logging.rb'
191
176
  # ========================================================================= #
192
177
  # === log_dir?
193
178
  #
@@ -359,4 +344,34 @@ module BaseModule # === Cyberweb::BaseModule
359
344
  Cyberweb.rds(i)
360
345
  end
361
346
 
347
+ # ========================================================================= #
348
+ # === rarrow?
349
+ # ========================================================================= #
350
+ def rarrow?
351
+ '→'
352
+ end; alias rarrow rarrow? # === rarrow
353
+
354
+ # ========================================================================= #
355
+ # === ruby_sitelib_dir?
356
+ # ========================================================================= #
357
+ def ruby_sitelib_dir?
358
+ RbConfig::CONFIG['sitelibdir'].to_s+'/'
359
+ end
360
+
361
+ # ========================================================================= #
362
+ # === html_templates
363
+ #
364
+ # This method is just a wrapper over class Cyberweb::HtmlTemplate.
365
+ #
366
+ # Since as of May 2023 class Cyberweb::HtmlTemplate is one of the
367
+ # most important classes of the cyberweb project, so it made sense
368
+ # to have a simpler method to yield a new html-template object.
369
+ # ========================================================================= #
370
+ def html_templates(hash)
371
+ require_the_html_templates unless Cyberweb.const_defined?(:HtmlTemplate)
372
+ Cyberweb.html_template(
373
+ hash
374
+ ).to_s # Make sure it is string-rendered.
375
+ end; alias html_template html_templates # === html_template
376
+
362
377
  end; end
@@ -14,14 +14,6 @@ module BaseModule
14
14
  module Colours # === Cyberweb::BaseModule::Colours
15
15
 
16
16
  require 'cyberweb/colours/colours.rb' # This will also pull in the 'colours' gem.
17
- # ========================================================================= #
18
- # === RED
19
- #
20
- # In July 2023 this constant was disabled. I believe it is no longer
21
- # needed, but we'll retain this comment for a bit longer, just in
22
- # case this turns out to have been an incorrect assumption.
23
- # ========================================================================= #
24
- # RED = ::Colours::RED
25
17
 
26
18
  # ========================================================================= #
27
19
  # === all_html_colours
@@ -455,6 +455,10 @@
455
455
  .marl400px { margin-left: 400px }
456
456
  .marl450px { margin-left: 450px }
457
457
  .marl0em { margin-left:0em }
458
+ .marl0_1em { margin-left:0.1em }
459
+ .marl0_2em { margin-left:0.2em }
460
+ .marl0_3em { margin-left:0.3em }
461
+ .marl0_4em { margin-left:0.4em }
458
462
  .marl0_5em { margin-left:0.5em }
459
463
  .marl0_6em { margin-left:0.6em }
460
464
  .marl0_7em { margin-left:0.7em }
@@ -198,3 +198,18 @@ div.circle {
198
198
  font-weight: bold;
199
199
  text-transform: uppercase;
200
200
  }
201
+
202
+ /* The generic Modal div */
203
+ .modal_div {
204
+ display: none; /* Hidden by default */
205
+ position: fixed; /* Stay in place */
206
+ z-index: 1; /* Sit on top */
207
+ padding-top: 100px; /* Location of the box */
208
+ left: 0;
209
+ top: 0;
210
+ width: 100%; /* Full width */
211
+ height: 100%; /* Full height */
212
+ overflow: auto; /* Enable scroll if needed */
213
+ background-color: rgb(0,0,0); /* Fallback colour */
214
+ background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
215
+ }
@@ -47,172 +47,176 @@ class CGI
47
47
 
48
48
  require 'cyberweb/cgi/util.rb'
49
49
 
50
- class Cookie < Array # === Cyberweb::CGI::Cookie
51
-
52
- @@accept_charset = 'UTF-8' unless defined? @@accept_charset
53
-
54
- # ======================================================================= #
55
- # Name of this cookie, as a +String+.
56
- # ======================================================================= #
57
- attr_accessor :name
58
- # ======================================================================= #
59
- # The path for which this cookie applies, as a +String+
60
- # ======================================================================= #
61
- attr_accessor :path
62
- # ======================================================================= #
63
- # Domain for which this cookie applies, as a +String+
64
- # ======================================================================= #
65
- attr_accessor :domain
66
- # ======================================================================= #
67
- # Time at which this cookie expires, as a +Time+
68
- # ======================================================================= #
69
- attr_accessor :expires
70
- # ======================================================================= #
71
- # True if this cookie is secure; false otherwise
72
- # ======================================================================= #
73
- attr_reader :secure
74
-
75
- # ======================================================================= #
76
- # === initialize
77
- #
78
- # Create a new CGI::Cookie object.
79
- #
80
- # :call-seq:
81
- # Cookie.new(name_string,*value)
82
- # Cookie.new(options_hash)
83
- #
84
- # +name_string+::
85
- # The name of the cookie; in this form, there is no #domain or
86
- # #expiration. The #path is gleaned from the +SCRIPT_NAME+ environment
87
- # variable, and #secure is false.
88
- # <tt>*value</tt>::
89
- # value or list of values of the cookie
90
- # +options_hash+::
91
- # A Hash of options to initialize this Cookie. Possible options are:
92
- #
93
- # name:: the name of the cookie. Required.
94
- # value:: the cookie's value or list of values.
95
- # path:: the path for which this cookie applies. Defaults to the
96
- # the value of the +SCRIPT_NAME+ environment variable.
97
- # domain:: the domain for which this cookie applies.
98
- # expires:: the time at which this cookie expires, as a +Time+ object.
99
- # secure:: whether this cookie is a secure cookie or not (default to
100
- # false). Secure cookies are only transmitted to HTTPS
101
- # servers.
102
- #
103
- # These keywords correspond to attributes of the cookie object.
104
- # ======================================================================= #
105
- def initialize(
106
- name = '', *value
107
- )
108
- @domain = nil
109
- @expires = nil
110
- if name.is_a? String
111
- @name = name
112
- %r|^(.*/)|.match(ENV['SCRIPT_NAME'])
113
- @path = ($1 or '')
114
- @secure = false
115
- return super(value)
116
- end
50
+ class Cookie < Array # === Cyberweb::CGI::Cookie
117
51
 
118
- options = name
119
- unless options.has_key? 'name'
120
- raise ArgumentError, "`name' required"
121
- end
52
+ @@accept_charset = 'UTF-8' unless defined? @@accept_charset
122
53
 
123
- @name = options['name']
124
- value = Array(options["value"])
125
- # simple support for IE
126
- if options['path']
127
- @path = options['path']
128
- else
129
- %r|^(.*/)|.match(ENV["SCRIPT_NAME"])
130
- @path = ($1 or "")
131
- end
132
- @domain = options['domain']
133
- @expires = options['expires']
134
- @secure = options['secure'] == true ? true : false
135
- super(value)
136
- end
54
+ # ========================================================================= #
55
+ # Name of this cookie, as a +String+.
56
+ # ========================================================================= #
57
+ attr_accessor :name
137
58
 
138
- # ======================================================================= #
139
- # === value
140
- #
141
- # Returns the value or list of values for this cookie.
142
- # ======================================================================= #
143
- def value
144
- self
145
- end
59
+ # ========================================================================= #
60
+ # The path for which this cookie applies, as a +String+
61
+ # ========================================================================= #
62
+ attr_accessor :path
146
63
 
147
- # ======================================================================= #
148
- # === value=
149
- #
150
- # Replaces the value of this cookie with a new value or list of values.
151
- # ======================================================================= #
152
- def value=(i)
153
- replace(Array(i))
154
- end
64
+ # ========================================================================= #
65
+ # Domain for which this cookie applies, as a +String+
66
+ # ========================================================================= #
67
+ attr_accessor :domain
68
+ # ========================================================================= #
69
+ # Time at which this cookie expires, as a +Time+
70
+ # ========================================================================= #
71
+ attr_accessor :expires
72
+ # ========================================================================= #
73
+ # True if this cookie is secure; false otherwise
74
+ # ========================================================================= #
75
+ attr_reader :secure
155
76
 
156
- # ======================================================================= #
157
- # === secure=
158
- #
159
- # Set whether the Cookie is a secure cookie or not.
160
- #
161
- # +val+ must be a boolean.
162
- # ======================================================================= #
163
- def secure=(i)
164
- @secure = i if i == true or i == false
165
- @secure # And return it.
77
+ # ========================================================================= #
78
+ # === initialize
79
+ #
80
+ # Create a new CGI::Cookie object.
81
+ #
82
+ # :call-seq:
83
+ # Cookie.new(name_string,*value)
84
+ # Cookie.new(options_hash)
85
+ #
86
+ # +name_string+::
87
+ # The name of the cookie; in this form, there is no #domain or
88
+ # #expiration. The #path is gleaned from the +SCRIPT_NAME+ environment
89
+ # variable, and #secure is false.
90
+ # <tt>*value</tt>::
91
+ # value or list of values of the cookie
92
+ # +options_hash+::
93
+ # A Hash of options to initialize this Cookie. Possible options are:
94
+ #
95
+ # name:: the name of the cookie. Required.
96
+ # value:: the cookie's value or list of values.
97
+ # path:: the path for which this cookie applies. Defaults to the
98
+ # the value of the +SCRIPT_NAME+ environment variable.
99
+ # domain:: the domain for which this cookie applies.
100
+ # expires:: the time at which this cookie expires, as a +Time+ object.
101
+ # secure:: whether this cookie is a secure cookie or not (default to
102
+ # false). Secure cookies are only transmitted to HTTPS
103
+ # servers.
104
+ #
105
+ # These keywords correspond to attributes of the cookie object.
106
+ # ========================================================================= #
107
+ def initialize(
108
+ name = '', *value
109
+ )
110
+ @domain = nil
111
+ @expires = nil
112
+ if name.is_a? String
113
+ @name = name
114
+ %r|^(.*/)|.match(ENV['SCRIPT_NAME'])
115
+ @path = ($1 or '')
116
+ @secure = false
117
+ return super(value)
166
118
  end
167
119
 
168
- # ======================================================================= #
169
- # === to_s
170
- #
171
- # Convert the Cookie to its string representation.
172
- # ======================================================================= #
173
- def to_s
174
- val = map {|v| CGI.escape(v) }.join("&")
175
- buf = "#{@name}=#{val}"
176
- buf << "; domain=#{@domain}" if @domain
177
- buf << "; path=#{@path}" if @path
178
- buf << "; expires=#{CGI::rfc1123_date(@expires)}" if @expires
179
- buf << "; secure" if @secure == true
180
- buf
120
+ options = name
121
+ unless options.has_key? 'name'
122
+ raise ArgumentError, "`name' required"
181
123
  end
182
124
 
183
- # ======================================================================= #
184
- # === Cookie.parse
185
- #
186
- # Parse a raw cookie string into a hash of cookie-name=>Cookie pairs.
187
- #
188
- # cookies = CGI::Cookie.parse("raw_cookie_string")
189
- # # { "name1" => cookie1, "name2" => cookie2, ... }
190
- # ======================================================================= #
191
- def self.parse(raw_cookie)
192
- cookies = Hash.new([])
193
- return cookies unless raw_cookie
194
- raw_cookie.split(/[;,]\s?/).each { |pairs|
195
- name, values = pairs.split('=', 2)
196
- next unless name and values
197
- name = CGI.unescape(name)
198
- values ||= ''
199
- values = values.split('&').map {|v| CGI.unescape(v, @@accept_charset) }
200
- if cookies.has_key?(name)
201
- values = cookies[name].value + values
202
- end
203
- cookies[name] = Cookie.new(name, *values)
204
- }
205
- cookies
125
+ @name = options['name']
126
+ value = Array(options["value"])
127
+ # simple support for IE
128
+ if options['path']
129
+ @path = options['path']
130
+ else
131
+ %r|^(.*/)|.match(ENV["SCRIPT_NAME"])
132
+ @path = ($1 or "")
206
133
  end
207
134
 
208
- # ======================================================================= #
209
- # === inspect
210
- #
211
- # A summary of the cookie string.
212
- # ======================================================================= #
213
- def inspect
214
- "#<Cyberweb::CGI::Cookie: #{self.to_s.inspect}>"
215
- end
216
- end # class Cookie
135
+ @domain = options['domain']
136
+ @expires = options['expires']
137
+ @secure = options['secure'] == true ? true : false
138
+ super(value)
139
+ end
140
+
141
+ # ========================================================================= #
142
+ # === value
143
+ #
144
+ # Returns the value or list of values for this cookie.
145
+ # ========================================================================= #
146
+ def value
147
+ self
148
+ end
149
+
150
+ # ========================================================================= #
151
+ # === value=
152
+ #
153
+ # Replaces the value of this cookie with a new value or list of values.
154
+ # ========================================================================= #
155
+ def value=(i)
156
+ replace(Array(i))
157
+ end
158
+
159
+ # ========================================================================= #
160
+ # === secure=
161
+ #
162
+ # Set whether the Cookie is a secure cookie or not.
163
+ #
164
+ # +val+ must be a boolean.
165
+ # ========================================================================= #
166
+ def secure=(i)
167
+ @secure = i if i == true or i == false
168
+ @secure # And return it.
169
+ end
170
+
171
+ # ========================================================================= #
172
+ # === to_s
173
+ #
174
+ # Convert the Cookie to its string representation.
175
+ # ========================================================================= #
176
+ def to_s
177
+ val = map {|v| CGI.escape(v) }.join("&")
178
+ buf = "#{@name}=#{val}"
179
+ buf << "; domain=#{@domain}" if @domain
180
+ buf << "; path=#{@path}" if @path
181
+ buf << "; expires=#{CGI::rfc1123_date(@expires)}" if @expires
182
+ buf << "; secure" if @secure == true
183
+ buf
184
+ end
185
+
186
+ # ========================================================================= #
187
+ # === Cookie.parse
188
+ #
189
+ # Parse a raw cookie string into a hash of cookie-name=>Cookie pairs.
190
+ #
191
+ # cookies = CGI::Cookie.parse("raw_cookie_string")
192
+ # # { "name1" => cookie1, "name2" => cookie2, ... }
193
+ # ========================================================================= #
194
+ def self.parse(raw_cookie)
195
+ cookies = Hash.new([])
196
+ return cookies unless raw_cookie
197
+ raw_cookie.split(/[;,]\s?/).each { |pairs|
198
+ name, values = pairs.split('=', 2)
199
+ next unless name and values
200
+ name = CGI.unescape(name)
201
+ values ||= ''
202
+ values = values.split('&').map {|v| CGI.unescape(v, @@accept_charset) }
203
+ if cookies.has_key?(name)
204
+ values = cookies[name].value + values
205
+ end
206
+ cookies[name] = Cookie.new(name, *values)
207
+ }
208
+ cookies
209
+ end
210
+
211
+ # ========================================================================= #
212
+ # === inspect
213
+ #
214
+ # A summary of the cookie string.
215
+ # ========================================================================= #
216
+ def inspect
217
+ "#<Cyberweb::CGI::Cookie: #{self.to_s.inspect}>"
218
+ end
219
+
220
+ end # class Cookie
217
221
 
218
222
  end; end