cyberweb 0.12.35 → 0.13.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +220 -124
- data/bin/cyberweb_sanitize +1 -1
- data/bin/images_from_this_webpage +1 -1
- data/doc/README.gen +209 -98
- data/doc/configuration/configuration.md +7 -4
- data/doc/todo/todo_for_the_cyberweb_project.md +123 -133
- data/examples/html/underlined_text_example/underlined_text_example.html +40 -0
- data/examples/misc/table_example.rb +19 -17
- data/examples/objectified/objectified_caesar_cipher.cgi +73 -0
- data/images/cyberweb_theme.png +0 -0
- data/lib/cyberweb/REST/constants.rb +1 -1
- data/lib/cyberweb/base/base.rb +19 -27
- data/lib/cyberweb/base_module/base_module/base_module.rb +31 -16
- data/lib/cyberweb/base_module/colours/colours.rb +0 -8
- data/lib/cyberweb/cascading_style_sheets/margin.css +4 -0
- data/lib/cyberweb/cascading_style_sheets/misc.css +15 -0
- data/lib/cyberweb/cgi/cookie.rb +160 -156
- data/lib/cyberweb/cgi/core.rb +7 -7
- data/lib/cyberweb/cgi/query_extension.rb +1 -1
- data/lib/cyberweb/cgi/session/memory_store.rb +1 -1
- data/lib/cyberweb/cgi/session/pstore.rb +2 -2
- data/lib/cyberweb/cgi/session.rb +1 -1
- data/lib/cyberweb/cgi/util.rb +4 -1
- data/lib/cyberweb/cmd/cmd.rb +12 -10
- data/lib/cyberweb/coloured_tags/coloured_tags.rb +1 -1
- data/lib/cyberweb/colours/colour_chart.rb +1 -2
- data/lib/cyberweb/colours/colours.rb +1 -1
- data/lib/cyberweb/commandline/commandline_interface.rb +1 -1
- data/lib/cyberweb/configuration/load_the_configuration.rb +3 -1
- data/lib/cyberweb/constants/http_status_codes.rb +4 -1
- data/lib/cyberweb/constants/misc.rb +8 -6
- data/lib/cyberweb/constants/registered_html_tags.rb +6 -5
- data/lib/cyberweb/constants/user_x.rb +7 -0
- data/lib/cyberweb/css_manager/css_manager.rb +5 -2
- data/lib/cyberweb/encoding/encoding.rb +1 -1
- data/lib/cyberweb/erb/test.rhtml +7 -2
- data/lib/cyberweb/experimental/html_template_powered_by_rack.rb +3 -1
- data/lib/cyberweb/foto_gallery/foto_gallery.rb +3 -0
- data/lib/cyberweb/generator/cgi.rb +1 -1
- data/lib/cyberweb/html_template/html_template.rb +262 -253
- data/lib/cyberweb/images/images.rb +2 -2
- data/lib/cyberweb/images/remove_this_substring_from_all_images.rb +5 -1
- data/lib/cyberweb/images/standard_images/standard_images.html +3 -4
- data/lib/cyberweb/information/README.md +2 -2
- data/lib/cyberweb/information/information.cgi +1 -1
- data/lib/cyberweb/javascript/dragula_collection.rb +4 -1
- data/lib/cyberweb/javascript/javascript_magic.rb +2 -2
- data/lib/cyberweb/javascript/on_click_change_opacity.rb +2 -1
- data/lib/cyberweb/javascript/popup.rb +8 -1
- data/lib/cyberweb/javascript/snoweffect.rb +5 -1
- data/lib/cyberweb/javascript_code/custom_functions.js +50 -32
- data/lib/cyberweb/objectified/html_tags/README.md +7 -9
- data/lib/cyberweb/objectified/html_tags/a.rb +62 -3
- data/lib/cyberweb/objectified/html_tags/abbr.rb +33 -3
- data/lib/cyberweb/objectified/html_tags/audio.rb +33 -3
- data/lib/cyberweb/objectified/html_tags/base.rb +661 -588
- data/lib/cyberweb/objectified/html_tags/blockquote.rb +33 -3
- data/lib/cyberweb/objectified/html_tags/body.rb +43 -3
- data/lib/cyberweb/objectified/html_tags/button.rb +75 -5
- data/lib/cyberweb/objectified/html_tags/canvas.rb +43 -3
- data/lib/cyberweb/objectified/html_tags/cite.rb +43 -3
- data/lib/cyberweb/objectified/html_tags/div.rb +70 -7
- data/lib/cyberweb/objectified/html_tags/embed.rb +43 -3
- data/lib/cyberweb/objectified/html_tags/fieldset.rb +43 -3
- data/lib/cyberweb/objectified/html_tags/figure.rb +43 -3
- data/lib/cyberweb/objectified/html_tags/form.rb +78 -3
- data/lib/cyberweb/objectified/html_tags/h1.rb +43 -3
- data/lib/cyberweb/objectified/html_tags/h2.rb +43 -3
- data/lib/cyberweb/objectified/html_tags/h3.rb +43 -3
- data/lib/cyberweb/objectified/html_tags/h4.rb +43 -3
- data/lib/cyberweb/objectified/html_tags/h5.rb +43 -3
- data/lib/cyberweb/objectified/html_tags/h6.rb +43 -3
- data/lib/cyberweb/objectified/html_tags/head.rb +34 -1
- data/lib/cyberweb/objectified/html_tags/i.rb +112 -0
- data/lib/cyberweb/objectified/html_tags/img.rb +65 -18
- data/lib/cyberweb/objectified/html_tags/input.rb +86 -2
- data/lib/cyberweb/objectified/html_tags/label.rb +103 -0
- data/lib/cyberweb/objectified/html_tags/legend.rb +129 -0
- data/lib/cyberweb/objectified/html_tags/li.rb +111 -0
- data/lib/cyberweb/objectified/html_tags/map.rb +43 -3
- data/lib/cyberweb/objectified/html_tags/meta.rb +13 -2
- data/lib/cyberweb/objectified/html_tags/nav.rb +111 -0
- data/lib/cyberweb/objectified/html_tags/object.rb +33 -3
- data/lib/cyberweb/objectified/html_tags/ol.rb +127 -0
- data/lib/cyberweb/objectified/html_tags/p.rb +33 -3
- data/lib/cyberweb/objectified/html_tags/pre.rb +41 -4
- data/lib/cyberweb/objectified/html_tags/progress.rb +43 -3
- data/lib/cyberweb/objectified/html_tags/section.rb +116 -0
- data/lib/cyberweb/objectified/html_tags/select.rb +34 -1
- data/lib/cyberweb/objectified/html_tags/span.rb +64 -5
- data/lib/cyberweb/objectified/html_tags/style.rb +9 -2
- data/lib/cyberweb/objectified/html_tags/table.rb +137 -3
- data/lib/cyberweb/objectified/html_tags/td.rb +135 -0
- data/lib/cyberweb/objectified/html_tags/textarea.rb +37 -3
- data/lib/cyberweb/objectified/html_tags/th.rb +114 -0
- data/lib/cyberweb/objectified/html_tags/thead.rb +114 -0
- data/lib/cyberweb/objectified/html_tags/title.rb +10 -2
- data/lib/cyberweb/objectified/html_tags/tr.rb +110 -0
- data/lib/cyberweb/objectified/html_tags/ul.rb +45 -4
- data/lib/cyberweb/objectified/shorter_helper_methods/shorter_helper_methods.rb +67 -46
- data/lib/cyberweb/oop.rb +9 -0
- data/lib/cyberweb/predefined_and_freeform_methods/hash_registered_extra_tags.rb +2 -0
- data/lib/cyberweb/predefined_and_freeform_methods/header.rb +4 -1
- data/lib/cyberweb/project/project.rb +0 -4
- data/lib/cyberweb/requires/remove_html.rb +1 -1
- data/lib/cyberweb/requires/require_the_cyberweb_project.rb +1 -9
- data/lib/cyberweb/route_handler/module/route_handler_module.rb +2 -1
- data/lib/cyberweb/standalone_classes/all_css_classes.rb +5 -2
- data/lib/cyberweb/standalone_classes/calculator.rb +3 -1
- data/lib/cyberweb/toplevel_methods/audio.rb +3 -1
- data/lib/cyberweb/toplevel_methods/csv.rb +1 -1
- data/lib/cyberweb/toplevel_methods/frames.rb +11 -3
- data/lib/cyberweb/toplevel_methods/greek_letters/greek_letters.rb +3 -0
- data/lib/cyberweb/toplevel_methods/hfin.rb +5 -1
- data/lib/cyberweb/toplevel_methods/html_tags/README.md +8 -7
- data/lib/cyberweb/toplevel_methods/html_tags/html_tags.rb +4211 -2827
- data/lib/cyberweb/toplevel_methods/html_tags/table.rb +1202 -0
- data/lib/cyberweb/toplevel_methods/javascript.rb +9 -1
- data/lib/cyberweb/toplevel_methods/jquery.rb +1 -1
- data/lib/cyberweb/toplevel_methods/{log_directory.rb → log_directory_and_logging.rb} +36 -1
- data/lib/cyberweb/toplevel_methods/params.rb +11 -11
- data/lib/cyberweb/toplevel_methods/random.rb +4 -3
- data/lib/cyberweb/toplevel_methods/registered_ids.rb +3 -0
- data/lib/cyberweb/toplevel_methods/return_head_start.rb +1 -3
- data/lib/cyberweb/toplevel_methods/return_html_start.rb +1 -3
- data/lib/cyberweb/toplevel_methods/sanitize_url.rb +2 -1
- data/lib/cyberweb/toplevel_methods/server_base_directory.rb +0 -1
- data/lib/cyberweb/toplevel_methods/textile.rb +2 -1
- data/lib/cyberweb/toplevel_methods/{misc.rb → toplevel_methods.rb} +1446 -807
- data/lib/cyberweb/toplevel_methods/video.rb +21 -3
- data/lib/cyberweb/toplevel_methods/write_what_into.rb +2 -2
- data/lib/cyberweb/utility_scripts/autogenerate_drop_shadow_rules/autogenerate_drop_shadow_rules.rb +2 -4
- data/lib/cyberweb/utility_scripts/booklet/booklet.rb +0 -4
- data/lib/cyberweb/utility_scripts/download_all_images_from_this_website.rb +1 -1
- data/lib/cyberweb/utility_scripts/{download_balloon_css.rb → download_balloon_css/download_balloon_css.rb} +1 -1
- data/lib/cyberweb/utility_scripts/images_to_html/images_to_html.rb +3 -0
- data/lib/cyberweb/utility_scripts/obtain_files_and_directories_from_this_path/obtain_files_and_directories_from_this_path.rb +183 -71
- data/lib/cyberweb/utility_scripts/pdf_to_html/pdf_to_html.rb +160 -65
- data/lib/cyberweb/version/version.rb +2 -2
- data/lib/cyberweb/web_images/map_symbol_to_image_location.rb +13 -2
- data/lib/cyberweb/web_object/web_object.rb +62 -20
- data/lib/cyberweb/web_scraper/scrape_this_url.rb +3 -1
- data/lib/cyberweb/webmin/biology_server.cgi +1 -1
- data/lib/cyberweb/webmin/calculator.cgi +1 -1
- data/lib/cyberweb/webmin/colour_chart.cgi +1 -1
- data/lib/cyberweb/webmin/comments.cgi +2 -2
- data/lib/cyberweb/webmin/constants.rb +1 -1
- data/lib/cyberweb/webmin/dictionary.cgi +2 -2
- data/lib/cyberweb/webmin/simple_forum/index.cgi +2 -2
- data/lib/cyberweb/webmin/sys_info.cgi +3 -3
- data/lib/cyberweb/webmin/webforum.cgi +1 -1
- data/lib/cyberweb/yaml/registered_html_tags.yml +3 -1
- data/test/simple_tests/testing_return_dataset_without_any_comments.rb +1 -1
- metadata +23 -57
- data/lib/cyberweb/html_tags/README.md +0 -3
- data/lib/cyberweb/html_tags/a.rb +0 -67
- data/lib/cyberweb/html_tags/accesskey.rb +0 -25
- data/lib/cyberweb/html_tags/blockquote.rb +0 -56
- data/lib/cyberweb/html_tags/body.rb +0 -14
- data/lib/cyberweb/html_tags/br.rb +0 -19
- data/lib/cyberweb/html_tags/button.rb +0 -150
- data/lib/cyberweb/html_tags/canvas.rb +0 -59
- data/lib/cyberweb/html_tags/chtml.rb +0 -14
- data/lib/cyberweb/html_tags/div.rb +0 -170
- data/lib/cyberweb/html_tags/fieldset.rb +0 -69
- data/lib/cyberweb/html_tags/figure.rb +0 -72
- data/lib/cyberweb/html_tags/form.rb +0 -203
- data/lib/cyberweb/html_tags/h1.rb +0 -77
- data/lib/cyberweb/html_tags/h2.rb +0 -81
- data/lib/cyberweb/html_tags/h3.rb +0 -60
- data/lib/cyberweb/html_tags/h4.rb +0 -66
- data/lib/cyberweb/html_tags/h5.rb +0 -64
- data/lib/cyberweb/html_tags/h6.rb +0 -60
- data/lib/cyberweb/html_tags/hr.rb +0 -22
- data/lib/cyberweb/html_tags/html_tags.rb +0 -267
- data/lib/cyberweb/html_tags/i.rb +0 -52
- data/lib/cyberweb/html_tags/img.rb +0 -294
- data/lib/cyberweb/html_tags/input.rb +0 -354
- data/lib/cyberweb/html_tags/label.rb +0 -65
- data/lib/cyberweb/html_tags/legend.rb +0 -56
- data/lib/cyberweb/html_tags/li.rb +0 -67
- data/lib/cyberweb/html_tags/map.rb +0 -38
- data/lib/cyberweb/html_tags/nav.rb +0 -63
- data/lib/cyberweb/html_tags/object.rb +0 -57
- data/lib/cyberweb/html_tags/ol.rb +0 -57
- data/lib/cyberweb/html_tags/option.rb +0 -64
- data/lib/cyberweb/html_tags/p.rb +0 -88
- data/lib/cyberweb/html_tags/pre.rb +0 -162
- data/lib/cyberweb/html_tags/section.rb +0 -33
- data/lib/cyberweb/html_tags/select.rb +0 -104
- data/lib/cyberweb/html_tags/span.rb +0 -344
- data/lib/cyberweb/html_tags/strong.rb +0 -42
- data/lib/cyberweb/html_tags/table.rb +0 -284
- data/lib/cyberweb/html_tags/tbody.rb +0 -26
- data/lib/cyberweb/html_tags/td.rb +0 -212
- data/lib/cyberweb/html_tags/textarea.rb +0 -173
- data/lib/cyberweb/html_tags/th.rb +0 -70
- data/lib/cyberweb/html_tags/thead.rb +0 -41
- data/lib/cyberweb/html_tags/tr.rb +0 -99
- data/lib/cyberweb/html_tags/ul.rb +0 -51
- data/lib/cyberweb/requires/require_html_tags_files.rb +0 -23
- data/lib/cyberweb/toplevel_methods/logging.rb +0 -42
- 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
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
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
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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>'
|
data/images/cyberweb_theme.png
CHANGED
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
|
data/lib/cyberweb/base/base.rb
CHANGED
@@ -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/
|
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/
|
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
|
+
}
|
data/lib/cyberweb/cgi/cookie.rb
CHANGED
@@ -47,172 +47,176 @@ class CGI
|
|
47
47
|
|
48
48
|
require 'cyberweb/cgi/util.rb'
|
49
49
|
|
50
|
-
|
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
|
-
|
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
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
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
|
-
|
140
|
-
|
141
|
-
|
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
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
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
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
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
|
-
|
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
|
-
|
185
|
-
#
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
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
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
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
|