cyberweb 0.4.174
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cyberweb might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/README.md +3259 -0
- data/bin/cyberweb +27 -0
- data/cyberweb.gemspec +119 -0
- data/doc/AUTHORS.md +12 -0
- data/doc/CONVENTIONS.md +7 -0
- data/doc/CYBERWEB_TUTORIAL.cgi +43 -0
- data/doc/DOCUMENTATION_FOR_CYBERSPRAWL.md +50 -0
- data/doc/FUTURE_DESIGN_GOAL_CONSIDERATIONS.md +13 -0
- data/doc/JQUERY.md +122 -0
- data/doc/MOUSE.md +80 -0
- data/doc/README.gen +3231 -0
- data/doc/RENDER_WEB_BASE.md +46 -0
- data/doc/USAGE.md +246 -0
- data/doc/configuration/configuration.md +23 -0
- data/doc/deprecations.md +32 -0
- data/doc/html_characters.md +15 -0
- data/doc/todo/TODO_FOR_THE_CYBERWEB_PROJECT.md +1089 -0
- data/examples/README.md +4 -0
- data/examples/advanced/delayed_update_of_the_body_via_javascript.cgi +38 -0
- data/examples/advanced/hybrid_experiment.cgi +108 -0
- data/examples/advanced/larger_image_on_mouse_over_example.cgi +35 -0
- data/examples/advanced/no_right_click.cgi +26 -0
- data/examples/advanced/objectified_html_tags.cgi +35 -0
- data/examples/advanced/simple_calculator.cgi +42 -0
- data/examples/advanced/simple_form_example.cgi +38 -0
- data/examples/css/blue_border.html +28 -0
- data/examples/css/caret_colour_example.html +22 -0
- data/examples/css/css_border_spacing_example.html +69 -0
- data/examples/css/css_bubbles.html +43 -0
- data/examples/css/css_clock.html +344 -0
- data/examples/css/css_drag_and_drop.html +89 -0
- data/examples/css/css_neon_glow_effects.html +317 -0
- data/examples/css/css_text_decoration_example.html +70 -0
- data/examples/css/css_tooltip.html +44 -0
- data/examples/css/fade_in_and_fade_out_effect.html +66 -0
- data/examples/css/font_size_examples.html +40 -0
- data/examples/css/letter_spacing_example.cgi +36 -0
- data/examples/css/meter_example.html +31 -0
- data/examples/css/on_mouse_button_pressed.html +41 -0
- data/examples/css/planets.html +187 -0
- data/examples/css/scale_example.html +25 -0
- data/examples/css/shadow_example_in_CSS.cgi +30 -0
- data/examples/css/sticky_div_example.html +56 -0
- data/examples/css/stitched_div.html +36 -0
- data/examples/csv/README.md +1 -0
- data/examples/csv/sample.csv +10 -0
- data/examples/example1.rb +7 -0
- data/examples/flip_card_example/flip_card_example.html +72 -0
- data/examples/frames/frame_left.html +1 -0
- data/examples/frames/frame_right.html +1 -0
- data/examples/html/README.md +1 -0
- data/examples/html/abbr_example.html +25 -0
- data/examples/html/base64_image_example.html +26 -0
- data/examples/html/colour_wheel.html +1389 -0
- data/examples/html/column_width_example.html +34 -0
- data/examples/html/custom_cursor.html +103 -0
- data/examples/html/draggable_paragraph.html +12 -0
- data/examples/html/fieldset_example.html +25 -0
- data/examples/html/frames_example.html +7 -0
- data/examples/html/glyph_example.html +43 -0
- data/examples/html/hbox_and_vbox_example.html +65 -0
- data/examples/html/href_examples.html +27 -0
- data/examples/html/input_autofocus_example.html +16 -0
- data/examples/html/larger_image_on_mouse_over_example.html +30 -0
- data/examples/html/ordered_and_unordered_bulletsin.html +33 -0
- data/examples/html/play_video_example.html +13 -0
- data/examples/html/readonly_textarea_example.html +23 -0
- data/examples/html/remote_image_example.html +10 -0
- data/examples/html/simple_unordered_list.html +16 -0
- data/examples/html/table_with_header_example.html +27 -0
- data/examples/html/two_columns_flex_example.html +39 -0
- data/examples/javascript/README.md +2 -0
- data/examples/javascript/arrays/arrays_example_in_javascript.html +16 -0
- data/examples/javascript/delay_example/delay_example.html +46 -0
- data/examples/javascript/drag_support/drag_support.html +37 -0
- data/examples/javascript/jquery_drag_and_drop/drag_and_drop_image_example.html +33 -0
- data/examples/javascript/on_click_event_hello_world/on_click_event_hello_world.html +21 -0
- data/examples/javascript/rgb_to_hex/rgb_to_hex.html +15 -0
- data/examples/javascript/screen_resolution/screen_resolution.html +20 -0
- data/examples/javascript/select_everything/select_everything.html +14 -0
- data/examples/javascript/write_into_a_file/write_into_a_file.html +39 -0
- data/examples/rack/README.md +4 -0
- data/examples/rack/example_with_html_template.rb +123 -0
- data/examples/rack/example_with_rack_and_cyberweb_showing_how_to_use_images.rb +56 -0
- data/examples/rack/hello_world_example_with_rack.rb +45 -0
- data/examples/rack/lobster.rb +79 -0
- data/examples/rack/rack_env.rb +10 -0
- data/examples/rack/standalone_example.rb +26 -0
- data/examples/show_greek_letters.rb +3 -0
- data/examples/simple/on_click_event_hello_world.cgi +34 -0
- data/examples/sinatra/001_your_ip_address_is.rb +8 -0
- data/examples/sinatra/002_the_request_object.rb +16 -0
- data/examples/sinatra/003_hello_world_example.rb +82 -0
- data/examples/sinatra/004_splat_example.rb +10 -0
- data/examples/sinatra/005_attachment_example.rb +11 -0
- data/examples/sinatra/006_outer_self_example.rb +8 -0
- data/examples/sinatra/007_mime_type_example.rb +17 -0
- data/examples/sinatra/008_post_example.rb +55 -0
- data/examples/table_example.rb +37 -0
- data/images/cyberweb_favicon.png +0 -0
- data/images/cyberweb_logo.png +0 -0
- data/images/cyberweb_theme.png +0 -0
- data/lib/cyberweb/and_sinatra_base.rb +9 -0
- data/lib/cyberweb/autoinclude.rb +20 -0
- data/lib/cyberweb/autoinclude_webobject.rb +14 -0
- data/lib/cyberweb/base/base.rb +41 -0
- data/lib/cyberweb/base/colours.rb +69 -0
- data/lib/cyberweb/base/constants.rb +18 -0
- data/lib/cyberweb/base/encoding.rb +19 -0
- data/lib/cyberweb/base/misc.rb +239 -0
- data/lib/cyberweb/base/reset.rb +23 -0
- data/lib/cyberweb/base/save_file.rb +22 -0
- data/lib/cyberweb/cascading_style_sheets/README.md +4 -0
- data/lib/cyberweb/cascading_style_sheets/admonition.css +33 -0
- data/lib/cyberweb/cascading_style_sheets/balloon.css +344 -0
- data/lib/cyberweb/cascading_style_sheets/border.css +202 -0
- data/lib/cyberweb/cascading_style_sheets/code.css +58 -0
- data/lib/cyberweb/cascading_style_sheets/colours.css +476 -0
- data/lib/cyberweb/cascading_style_sheets/default.css +1836 -0
- data/lib/cyberweb/cascading_style_sheets/div.css +26 -0
- data/lib/cyberweb/cascading_style_sheets/fonts.css +365 -0
- data/lib/cyberweb/cascading_style_sheets/links.css +207 -0
- data/lib/cyberweb/cascading_style_sheets/margin.css +677 -0
- data/lib/cyberweb/cascading_style_sheets/menu.css +37 -0
- data/lib/cyberweb/cascading_style_sheets/message_boxes.css +48 -0
- data/lib/cyberweb/cascading_style_sheets/misc.css +162 -0
- data/lib/cyberweb/cascading_style_sheets/popup.css +63 -0
- data/lib/cyberweb/cascading_style_sheets/rpg.css +51 -0
- data/lib/cyberweb/cascading_style_sheets/ruby_regexes.css +33 -0
- data/lib/cyberweb/cascading_style_sheets/template2.css +18 -0
- data/lib/cyberweb/cascading_style_sheets/text_shadow.css +19 -0
- data/lib/cyberweb/cascading_style_sheets/tooltip.css +36 -0
- data/lib/cyberweb/cgi/README.md +6 -0
- data/lib/cyberweb/cgi/cgi.rb +340 -0
- data/lib/cyberweb/cgi/constants.rb +121 -0
- data/lib/cyberweb/cgi/cookie.rb +218 -0
- data/lib/cyberweb/cgi/core.rb +638 -0
- data/lib/cyberweb/cgi/exceptions.rb +223 -0
- data/lib/cyberweb/cgi/html.rb +1025 -0
- data/lib/cyberweb/cgi/mod_ruby_exception_printer.rb +40 -0
- data/lib/cyberweb/cgi/query_extension.rb +431 -0
- data/lib/cyberweb/cgi/session/file_store.rb +131 -0
- data/lib/cyberweb/cgi/session/memory_store.rb +90 -0
- data/lib/cyberweb/cgi/session/pstore.rb +127 -0
- data/lib/cyberweb/cgi/session.rb +444 -0
- data/lib/cyberweb/cgi/tag_maker.rb +94 -0
- data/lib/cyberweb/cgi/util.rb +239 -0
- data/lib/cyberweb/charts/README.md +2 -0
- data/lib/cyberweb/charts/google_charts.rb +51 -0
- data/lib/cyberweb/classes/simple_form.rb +55 -0
- data/lib/cyberweb/classes/tooltips.rb +169 -0
- data/lib/cyberweb/coloured_tags/coloured_tags.rb +3099 -0
- data/lib/cyberweb/colours/colour_chart.rb +117 -0
- data/lib/cyberweb/colours/colours.rb +50 -0
- data/lib/cyberweb/colours/random_colour.rb +28 -0
- data/lib/cyberweb/colours/sanitize_for_colours.rb +95 -0
- data/lib/cyberweb/commandline/commandline_interface.rb +49 -0
- data/lib/cyberweb/configuration/configuration.rb +66 -0
- data/lib/cyberweb/configuration/load_the_configuration_file.rb +73 -0
- data/lib/cyberweb/constants/array_images.rb +21 -0
- data/lib/cyberweb/constants/array_local_css_files.rb +35 -0
- data/lib/cyberweb/constants/array_predefined_constants.rb +23 -0
- data/lib/cyberweb/constants/configuration_file.rb +33 -0
- data/lib/cyberweb/constants/constants.rb +9 -0
- data/lib/cyberweb/constants/file_constants.rb +16 -0
- data/lib/cyberweb/constants/http_status_codes.rb +42 -0
- data/lib/cyberweb/constants/nl.rb +22 -0
- data/lib/cyberweb/constants/project_constants.rb +99 -0
- data/lib/cyberweb/constants/roebe.rb +28 -0
- data/lib/cyberweb/constants/standalone_constants.rb +309 -0
- data/lib/cyberweb/controller/README.md +4 -0
- data/lib/cyberweb/controller/webobject_controller.rb +50 -0
- data/lib/cyberweb/csv/README.md +2 -0
- data/lib/cyberweb/csv/csv.rb +58 -0
- data/lib/cyberweb/cybersprawl +1 -0
- data/lib/cyberweb/debug/debug.rb +69 -0
- data/lib/cyberweb/encoding/encoding.rb +84 -0
- data/lib/cyberweb/erb/test.rhtml +81 -0
- data/lib/cyberweb/erb/test_template.erb +9 -0
- data/lib/cyberweb/evaluate_from_the_same_named_file_then_serve.rb +9 -0
- data/lib/cyberweb/favicon/favicon.rb +196 -0
- data/lib/cyberweb/generator/README.md +2 -0
- data/lib/cyberweb/generator/cgi.rb +201 -0
- data/lib/cyberweb/generator/class.rb +25 -0
- data/lib/cyberweb/generator/static_webpage.rb +162 -0
- data/lib/cyberweb/generator/webpage_for_images.rb +553 -0
- data/lib/cyberweb/help/help.rb +29 -0
- data/lib/cyberweb/html_codes/README.md +15 -0
- data/lib/cyberweb/html_codes/greek_letters.rb +204 -0
- data/lib/cyberweb/html_tags/README.md +3 -0
- data/lib/cyberweb/html_tags/a.rb +65 -0
- data/lib/cyberweb/html_tags/accesskey.rb +25 -0
- data/lib/cyberweb/html_tags/blockquote.rb +56 -0
- data/lib/cyberweb/html_tags/body.rb +14 -0
- data/lib/cyberweb/html_tags/br.rb +19 -0
- data/lib/cyberweb/html_tags/button.rb +110 -0
- data/lib/cyberweb/html_tags/canvas.rb +59 -0
- data/lib/cyberweb/html_tags/chtml.rb +14 -0
- data/lib/cyberweb/html_tags/div.rb +163 -0
- data/lib/cyberweb/html_tags/fieldset.rb +67 -0
- data/lib/cyberweb/html_tags/figure.rb +72 -0
- data/lib/cyberweb/html_tags/form.rb +203 -0
- data/lib/cyberweb/html_tags/h1.rb +75 -0
- data/lib/cyberweb/html_tags/h2.rb +73 -0
- data/lib/cyberweb/html_tags/h3.rb +58 -0
- data/lib/cyberweb/html_tags/h4.rb +60 -0
- data/lib/cyberweb/html_tags/h5.rb +54 -0
- data/lib/cyberweb/html_tags/h6.rb +54 -0
- data/lib/cyberweb/html_tags/hr.rb +22 -0
- data/lib/cyberweb/html_tags/html_tags.rb +240 -0
- data/lib/cyberweb/html_tags/i.rb +50 -0
- data/lib/cyberweb/html_tags/img.rb +294 -0
- data/lib/cyberweb/html_tags/input.rb +345 -0
- data/lib/cyberweb/html_tags/label.rb +63 -0
- data/lib/cyberweb/html_tags/legend.rb +56 -0
- data/lib/cyberweb/html_tags/li.rb +67 -0
- data/lib/cyberweb/html_tags/map.rb +31 -0
- data/lib/cyberweb/html_tags/nav.rb +63 -0
- data/lib/cyberweb/html_tags/object.rb +56 -0
- data/lib/cyberweb/html_tags/ol.rb +56 -0
- data/lib/cyberweb/html_tags/option.rb +61 -0
- data/lib/cyberweb/html_tags/p.rb +90 -0
- data/lib/cyberweb/html_tags/pre.rb +164 -0
- data/lib/cyberweb/html_tags/section.rb +33 -0
- data/lib/cyberweb/html_tags/select.rb +100 -0
- data/lib/cyberweb/html_tags/span.rb +338 -0
- data/lib/cyberweb/html_tags/strong.rb +39 -0
- data/lib/cyberweb/html_tags/table.rb +273 -0
- data/lib/cyberweb/html_tags/tbody.rb +24 -0
- data/lib/cyberweb/html_tags/td.rb +214 -0
- data/lib/cyberweb/html_tags/textarea.rb +138 -0
- data/lib/cyberweb/html_tags/th.rb +68 -0
- data/lib/cyberweb/html_tags/thead.rb +36 -0
- data/lib/cyberweb/html_tags/tr.rb +97 -0
- data/lib/cyberweb/html_tags/ul.rb +51 -0
- data/lib/cyberweb/html_template/html_template.rb +352 -0
- data/lib/cyberweb/images/embed_this_image.rb +37 -0
- data/lib/cyberweb/images/images.rb +58 -0
- data/lib/cyberweb/images/is_image.rb +22 -0
- data/lib/cyberweb/images/path_to_images.rb +60 -0
- data/lib/cyberweb/images/real/README.md +6 -0
- data/lib/cyberweb/images/remove_this_substring_from_all_images.rb +44 -0
- data/lib/cyberweb/images/standalone_drag_and_drop_this_image.rb +64 -0
- data/lib/cyberweb/images/string_image.rb +399 -0
- data/lib/cyberweb/images_base64_encoded/AUSRUFUNGSZEICHEN.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/BLUEARROW.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/BUBBLE.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/CAT.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/CAUTION.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/CHEERING_PERSON.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/CURSOR.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/DOT_01.png.md +5 -0
- data/lib/cyberweb/images_base64_encoded/DUCKY.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/ELEPHANT.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/HALLOWEEN.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/HANGING_MONKEY.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/LENS.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/README.md +2 -0
- data/lib/cyberweb/images_base64_encoded/TU_WIEN_LOGO.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/VOGEL.png.md +1 -0
- data/lib/cyberweb/io/README.md +1 -0
- data/lib/cyberweb/io/io.rb +19 -0
- data/lib/cyberweb/javascript/drag_and_drop.rb +105 -0
- data/lib/cyberweb/javascript/dragula_collection.rb +54 -0
- data/lib/cyberweb/javascript/javascript.rb +211 -0
- data/lib/cyberweb/javascript/javascript_bundle.rb +223 -0
- data/lib/cyberweb/javascript/javascript_clock.rb +69 -0
- data/lib/cyberweb/javascript/javascript_last_modified.rb +27 -0
- data/lib/cyberweb/javascript/javascript_magic.rb +150 -0
- data/lib/cyberweb/javascript/javascript_selectable.rb +24 -0
- data/lib/cyberweb/javascript/jquery.rb +30 -0
- data/lib/cyberweb/javascript/on_click_change_opacity.rb +97 -0
- data/lib/cyberweb/javascript/on_click_hide.rb +63 -0
- data/lib/cyberweb/javascript/popup.rb +80 -0
- data/lib/cyberweb/javascript/print_javascript.rb +33 -0
- data/lib/cyberweb/javascript/registered_javascript_methods.rb +30 -0
- data/lib/cyberweb/javascript/resize.rb +28 -0
- data/lib/cyberweb/javascript/return_javascript.rb +48 -0
- data/lib/cyberweb/javascript/scroll.rb +17 -0
- data/lib/cyberweb/javascript/snoweffect.rb +122 -0
- data/lib/cyberweb/javascript_code/README.md +6 -0
- data/lib/cyberweb/javascript_code/chmod_displayer.js +74 -0
- data/lib/cyberweb/javascript_code/custom_functions.js +267 -0
- data/lib/cyberweb/javascript_code/jquery/jquery-3.6.0.js +10881 -0
- data/lib/cyberweb/javascript_code/jquery/jquery-ui-1.12.1.js +18706 -0
- data/lib/cyberweb/javascript_code/rgb_to_hex.js +14 -0
- data/lib/cyberweb/javascript_code/select_even_numbers.js +7 -0
- data/lib/cyberweb/javascript_code/select_everything.js +22 -0
- data/lib/cyberweb/javascript_code/simple_calculator.js +15 -0
- data/lib/cyberweb/javascript_code/sleep.js +3 -0
- data/lib/cyberweb/javascript_code/to_celsius.js +8 -0
- data/lib/cyberweb/mouse/README.md +3 -0
- data/lib/cyberweb/mouse/libxdo.rb +321 -0
- data/lib/cyberweb/mouse/mouse.rb +264 -0
- data/lib/cyberweb/objectified_html_tags/README.md +8 -0
- data/lib/cyberweb/objectified_html_tags/a.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/abbr.rb +84 -0
- data/lib/cyberweb/objectified_html_tags/base.rb +376 -0
- data/lib/cyberweb/objectified_html_tags/button.rb +135 -0
- data/lib/cyberweb/objectified_html_tags/combobox.rb +165 -0
- data/lib/cyberweb/objectified_html_tags/div.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/embed.rb +161 -0
- data/lib/cyberweb/objectified_html_tags/form.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/h1.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/h2.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/h3.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/h4.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/h5.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/h6.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/hbox.rb +71 -0
- data/lib/cyberweb/objectified_html_tags/img.rb +202 -0
- data/lib/cyberweb/objectified_html_tags/input.rb +185 -0
- data/lib/cyberweb/objectified_html_tags/p.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/pre.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/span.rb +92 -0
- data/lib/cyberweb/objectified_html_tags/table.rb +174 -0
- data/lib/cyberweb/objectified_html_tags/textarea.rb +173 -0
- data/lib/cyberweb/objectified_html_tags/title.rb +82 -0
- data/lib/cyberweb/objectified_html_tags/window.rb +79 -0
- data/lib/cyberweb/predefined_and_freeform_methods/README.md +1 -0
- data/lib/cyberweb/predefined_and_freeform_methods/frage.rb +45 -0
- data/lib/cyberweb/predefined_and_freeform_methods/freeform_methods.rb +93 -0
- data/lib/cyberweb/predefined_and_freeform_methods/hash_css_class_to_use.rb +55 -0
- data/lib/cyberweb/predefined_and_freeform_methods/hash_registered_extra_tags.rb +29 -0
- data/lib/cyberweb/predefined_and_freeform_methods/header.rb +81 -0
- data/lib/cyberweb/predefined_and_freeform_methods/predefined_methods.rb +413 -0
- data/lib/cyberweb/project/project.rb +85 -0
- data/lib/cyberweb/rack/README.md +1 -0
- data/lib/cyberweb/rack/request.rb +31 -0
- data/lib/cyberweb/requires/README.md +4 -0
- data/lib/cyberweb/requires/do_require_web_object_files.rb +9 -0
- data/lib/cyberweb/requires/remove_html.rb +9 -0
- data/lib/cyberweb/requires/require_cgi.rb +16 -0
- data/lib/cyberweb/requires/require_charts.rb +20 -0
- data/lib/cyberweb/requires/require_generators.rb +23 -0
- data/lib/cyberweb/requires/require_html_tags_files.rb +23 -0
- data/lib/cyberweb/requires/require_javascript_files.rb +23 -0
- data/lib/cyberweb/requires/require_kimurai.rb +13 -0
- data/lib/cyberweb/requires/require_objectified_html_tags_files.rb +23 -0
- data/lib/cyberweb/requires/require_sinatra.rb +7 -0
- data/lib/cyberweb/requires/require_the_constants.rb +26 -0
- data/lib/cyberweb/requires/require_the_cyberweb_project.rb +172 -0
- data/lib/cyberweb/requires/require_the_html_template.rb +7 -0
- data/lib/cyberweb/requires/require_the_toplevel_methods_files.rb +24 -0
- data/lib/cyberweb/requires/require_web_images.rb +7 -0
- data/lib/cyberweb/requires/require_web_object_files.rb +25 -0
- data/lib/cyberweb/requires/require_yaml.rb +11 -0
- data/lib/cyberweb/sinatra/README.md +11 -0
- data/lib/cyberweb/sinatra/base.rb +145 -0
- data/lib/cyberweb/sinatra/custom_extensions.rb +131 -0
- data/lib/cyberweb/standalone_classes/all_css_classes.rb +255 -0
- data/lib/cyberweb/standalone_classes/calculator.rb +127 -0
- data/lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb +207 -0
- data/lib/cyberweb/standalone_classes/input_focus.rb +97 -0
- data/lib/cyberweb/standalone_classes/tag_prototype.rb +43 -0
- data/lib/cyberweb/standalone_classes/turn_html_into_cyberweb.rb +174 -0
- data/lib/cyberweb/svg/blue_rect.svg +12 -0
- data/lib/cyberweb/svg/butterfly.svg +15 -0
- data/lib/cyberweb/svg/chemical_molecule.svg +192 -0
- data/lib/cyberweb/svg/circles_on_background.svg +29 -0
- data/lib/cyberweb/svg/ellipse.svg +12 -0
- data/lib/cyberweb/svg/five_circles.svg +26 -0
- data/lib/cyberweb/svg/flag_germany.svg +10 -0
- data/lib/cyberweb/svg/gaussian_blur.svg +20 -0
- data/lib/cyberweb/svg/gradient_circle.svg +18 -0
- data/lib/cyberweb/svg/green_butterfly.svg +18 -0
- data/lib/cyberweb/svg/green_tilted_lines.svg +25 -0
- data/lib/cyberweb/svg/lion.svg +161 -0
- data/lib/cyberweb/svg/one_circle.svg +12 -0
- data/lib/cyberweb/svg/pie_chart.svg +130 -0
- data/lib/cyberweb/svg/svg.cgi +61 -0
- data/lib/cyberweb/svg/tetris.svg +487 -0
- data/lib/cyberweb/svg/three_circles.svg +18 -0
- data/lib/cyberweb/svg/tiger.svg +732 -0
- data/lib/cyberweb/svg/tilted_arcs.svg +74 -0
- data/lib/cyberweb/svg/transparent_rect.svg +12 -0
- data/lib/cyberweb/svg/yellow_fe_blending.svg +42 -0
- data/lib/cyberweb/toplevel_methods/a.rb +131 -0
- data/lib/cyberweb/toplevel_methods/anmerkung.rb +67 -0
- data/lib/cyberweb/toplevel_methods/audio.rb +59 -0
- data/lib/cyberweb/toplevel_methods/bold.rb +65 -0
- data/lib/cyberweb/toplevel_methods/cgi.rb +65 -0
- data/lib/cyberweb/toplevel_methods/charsets.rb +52 -0
- data/lib/cyberweb/toplevel_methods/clear.rb +30 -0
- data/lib/cyberweb/toplevel_methods/close.rb +62 -0
- data/lib/cyberweb/toplevel_methods/consider_serving_the_web_object.rb +41 -0
- data/lib/cyberweb/toplevel_methods/css.rb +732 -0
- data/lib/cyberweb/toplevel_methods/date.rb +71 -0
- data/lib/cyberweb/toplevel_methods/dictionary.rb +48 -0
- data/lib/cyberweb/toplevel_methods/disable.rb +49 -0
- data/lib/cyberweb/toplevel_methods/document.rb +56 -0
- data/lib/cyberweb/toplevel_methods/dot.rb +182 -0
- data/lib/cyberweb/toplevel_methods/download_webpage.rb +18 -0
- data/lib/cyberweb/toplevel_methods/edit_configuration_file.rb +26 -0
- data/lib/cyberweb/toplevel_methods/ee.rb +44 -0
- data/lib/cyberweb/toplevel_methods/env.rb +44 -0
- data/lib/cyberweb/toplevel_methods/escape_html.rb +54 -0
- data/lib/cyberweb/toplevel_methods/fields.rb +46 -0
- data/lib/cyberweb/toplevel_methods/filename.rb +33 -0
- data/lib/cyberweb/toplevel_methods/frames.rb +131 -0
- data/lib/cyberweb/toplevel_methods/glob.rb +30 -0
- data/lib/cyberweb/toplevel_methods/google.rb +35 -0
- data/lib/cyberweb/toplevel_methods/hardware_information.rb +90 -0
- data/lib/cyberweb/toplevel_methods/hfin.rb +56 -0
- data/lib/cyberweb/toplevel_methods/html_comment.rb +48 -0
- data/lib/cyberweb/toplevel_methods/html_mode.rb +39 -0
- data/lib/cyberweb/toplevel_methods/html_tables.rb +818 -0
- data/lib/cyberweb/toplevel_methods/input.rb +54 -0
- data/lib/cyberweb/toplevel_methods/jquery.rb +82 -0
- data/lib/cyberweb/toplevel_methods/last_modified.rb +39 -0
- data/lib/cyberweb/toplevel_methods/links.rb +426 -0
- data/lib/cyberweb/toplevel_methods/listing.rb +96 -0
- data/lib/cyberweb/toplevel_methods/localhost.rb +18 -0
- data/lib/cyberweb/toplevel_methods/log_directory.rb +84 -0
- data/lib/cyberweb/toplevel_methods/logging.rb +42 -0
- data/lib/cyberweb/toplevel_methods/logo.rb +30 -0
- data/lib/cyberweb/toplevel_methods/markdown.rb +112 -0
- data/lib/cyberweb/toplevel_methods/mathml.rb +130 -0
- data/lib/cyberweb/toplevel_methods/message_boxes.rb +140 -0
- data/lib/cyberweb/toplevel_methods/misc.rb +1398 -0
- data/lib/cyberweb/toplevel_methods/name_of_img_dir.rb +51 -0
- data/lib/cyberweb/toplevel_methods/padlem_and_marlem.rb +107 -0
- data/lib/cyberweb/toplevel_methods/params.rb +57 -0
- data/lib/cyberweb/toplevel_methods/path.rb +69 -0
- data/lib/cyberweb/toplevel_methods/pdf.rb +103 -0
- data/lib/cyberweb/toplevel_methods/process_content.rb +102 -0
- data/lib/cyberweb/toplevel_methods/progress.rb +42 -0
- data/lib/cyberweb/toplevel_methods/quote.rb +44 -0
- data/lib/cyberweb/toplevel_methods/random.rb +70 -0
- data/lib/cyberweb/toplevel_methods/rds.rb +35 -0
- data/lib/cyberweb/toplevel_methods/read_and_display.rb +284 -0
- data/lib/cyberweb/toplevel_methods/readlines.rb +31 -0
- data/lib/cyberweb/toplevel_methods/redirect.rb +29 -0
- data/lib/cyberweb/toplevel_methods/registered_ids.rb +178 -0
- data/lib/cyberweb/toplevel_methods/remove_html.rb +32 -0
- data/lib/cyberweb/toplevel_methods/remove_newlines.rb +28 -0
- data/lib/cyberweb/toplevel_methods/return_head_start.rb +33 -0
- data/lib/cyberweb/toplevel_methods/return_html_fin.rb +34 -0
- data/lib/cyberweb/toplevel_methods/return_html_header.rb +35 -0
- data/lib/cyberweb/toplevel_methods/return_html_start.rb +24 -0
- data/lib/cyberweb/toplevel_methods/return_html_to_head_start.rb +42 -0
- data/lib/cyberweb/toplevel_methods/return_meta_collection.rb +54 -0
- data/lib/cyberweb/toplevel_methods/return_pwd.rb +23 -0
- data/lib/cyberweb/toplevel_methods/return_strict_doctype.rb +51 -0
- data/lib/cyberweb/toplevel_methods/roebe.rb +43 -0
- data/lib/cyberweb/toplevel_methods/s2.rb +30 -0
- data/lib/cyberweb/toplevel_methods/sanitize_url.rb +57 -0
- data/lib/cyberweb/toplevel_methods/sbr.rb +170 -0
- data/lib/cyberweb/toplevel_methods/server_base_directory.rb +148 -0
- data/lib/cyberweb/toplevel_methods/show_and_display.rb +215 -0
- data/lib/cyberweb/toplevel_methods/show_configuration.rb +83 -0
- data/lib/cyberweb/toplevel_methods/sitemap.rb +111 -0
- data/lib/cyberweb/toplevel_methods/spacer.rb +119 -0
- data/lib/cyberweb/toplevel_methods/string_body_start.rb +65 -0
- data/lib/cyberweb/toplevel_methods/string_content.rb +35 -0
- data/lib/cyberweb/toplevel_methods/svg.rb +66 -0
- data/lib/cyberweb/toplevel_methods/tag.rb +237 -0
- data/lib/cyberweb/toplevel_methods/temp_directory.rb +73 -0
- data/lib/cyberweb/toplevel_methods/test_css.rb +24 -0
- data/lib/cyberweb/toplevel_methods/textile.rb +45 -0
- data/lib/cyberweb/toplevel_methods/title.rb +125 -0
- data/lib/cyberweb/toplevel_methods/umlaute.rb +90 -0
- data/lib/cyberweb/toplevel_methods/video.rb +352 -0
- data/lib/cyberweb/toplevel_methods/view_source.rb +50 -0
- data/lib/cyberweb/toplevel_methods/web_object.rb +42 -0
- data/lib/cyberweb/toplevel_methods/write_what_into.rb +27 -0
- data/lib/cyberweb/utility_scripts/README.md +4 -0
- data/lib/cyberweb/utility_scripts/create_coloured_tags.rb +172 -0
- data/lib/cyberweb/utility_scripts/download_balloon_css.rb +160 -0
- data/lib/cyberweb/utility_scripts/hyperlink_all_images_from.rb +148 -0
- data/lib/cyberweb/version/version.rb +25 -0
- data/lib/cyberweb/web_base/web_base.rb +28 -0
- data/lib/cyberweb/web_images/array_listing_all_project_images.rb +52 -0
- data/lib/cyberweb/web_images/map_symbol_to_image_location.rb +1661 -0
- data/lib/cyberweb/web_images/web_images.rb +270 -0
- data/lib/cyberweb/web_object/css.rb +627 -0
- data/lib/cyberweb/web_object/evaluate.rb +126 -0
- data/lib/cyberweb/web_object/favicon.rb +160 -0
- data/lib/cyberweb/web_object/html_related_tags.rb +320 -0
- data/lib/cyberweb/web_object/images.rb +693 -0
- data/lib/cyberweb/web_object/initialize.rb +51 -0
- data/lib/cyberweb/web_object/input_related_functionality.rb +414 -0
- data/lib/cyberweb/web_object/javascript.rb +427 -0
- data/lib/cyberweb/web_object/languages.rb +172 -0
- data/lib/cyberweb/web_object/links.rb +228 -0
- data/lib/cyberweb/web_object/misc.rb +5159 -0
- data/lib/cyberweb/web_object/params.rb +289 -0
- data/lib/cyberweb/web_object/reset.rb +192 -0
- data/lib/cyberweb/web_object/run.rb +44 -0
- data/lib/cyberweb/web_object/sinatra_related_functionality.rb +30 -0
- data/lib/cyberweb/web_object/sitemap.rb +176 -0
- data/lib/cyberweb/web_object/table.rb +378 -0
- data/lib/cyberweb/web_object/web_object.rb +126 -0
- data/lib/cyberweb/web_scraper/README.md +8 -0
- data/lib/cyberweb/web_scraper/scrape_this_url.rb +183 -0
- data/lib/cyberweb/webmin/biology_server.cgi +256 -0
- data/lib/cyberweb/webmin/calculator.cgi +52 -0
- data/lib/cyberweb/webmin/colour_chart.cgi +33 -0
- data/lib/cyberweb/webmin/comments.cgi +137 -0
- data/lib/cyberweb/webmin/comments_data +18 -0
- data/lib/cyberweb/webmin/constants.rb +46 -0
- data/lib/cyberweb/webmin/dictionary.cgi +39 -0
- data/lib/cyberweb/webmin/sys_info.cgi +26 -0
- data/lib/cyberweb/webmin/webforum.cgi +58 -0
- data/lib/cyberweb/webmin/webmin.cgi +679 -0
- data/lib/cyberweb/yaml/autogenerated_system_settings.yml +14 -0
- data/lib/cyberweb/yaml/custom_tags.yml +7 -0
- data/lib/cyberweb/yaml/debug.yml +1 -0
- data/lib/cyberweb/yaml/html5_global_attributes.yml +12 -0
- data/lib/cyberweb/yaml/html5_new_elements.yml +108 -0
- data/lib/cyberweb/yaml/html_tag_legend.yml +12 -0
- data/lib/cyberweb/yaml/http_status_codes.yml +38 -0
- data/lib/cyberweb/yaml/js_files_to_load.yml +28 -0
- data/lib/cyberweb/yaml/project_configuration.yml +229 -0
- data/lib/cyberweb/yaml/video_attributes.yml +35 -0
- data/lib/cyberweb/yaml/web_images.yml +306 -0
- data/lib/cyberweb.rb +5 -0
- data/test/README.md +5 -0
- data/test/complex_tests/all_tests_in_one_page.cgi +666 -0
- data/test/complex_tests/simple_sinatra_example_using_cyberweb/simple.rb +60 -0
- data/test/complex_tests/sinatra_or_cyberweb/sinatra_or_cyberweb.cgi +7 -0
- data/test/complex_tests/sinatra_or_cyberweb/sinatra_or_cyberweb.rb +23 -0
- data/test/complex_tests/sinatra_or_cyberweb/sinatra_or_cyberweb.sinatra +65 -0
- data/test/complex_tests/testing_frames.cgi +42 -0
- data/test/complex_tests/testing_objectified_html_tags.rb +82 -0
- data/test/complex_tests/testing_style_variants/README.md +2 -0
- data/test/complex_tests/testing_style_variants/show_coloured_boxes.cgi +58 -0
- data/test/complex_tests/testing_tables.cgi +67 -0
- data/test/complex_tests/testing_the_cyberweb_shell.rb +188 -0
- data/test/complex_tests/testing_web_object.rb +94 -0
- data/test/css/README.md +5 -0
- data/test/css/return_the_content_of_these_css_classes.rb +7 -0
- data/test/css/testing_css_effects.cgi +159 -0
- data/test/css/testing_css_masking.cgi +36 -0
- data/test/dummy.pdf +0 -0
- data/test/hello_world/hello_world.cgi +25 -0
- data/test/javascript/README.md +2 -0
- data/test/javascript/testing_cheerleader_javascript.cgi +0 -0
- data/test/javascript/testing_drag_and_drop_support.cgi +33 -0
- data/test/javascript/testing_on_click_change_opacity.cgi +26 -0
- data/test/javascript/testing_snowflakes.cgi +20 -0
- data/test/simple_tests/README.md +3 -0
- data/test/simple_tests/ad-hoc-test.cgi +55 -0
- data/test/simple_tests/commandline_tests.rb +70 -0
- data/test/simple_tests/display_this_file.cgi +11 -0
- data/test/simple_tests/simple_html_example.cgi +29 -0
- data/test/simple_tests/simple_status_page.cgi +52 -0
- data/test/simple_tests/string_s2_test.rb +11 -0
- data/test/simple_tests/test_simple_string_as_input.rb +12 -0
- data/test/simple_tests/testing_base64_images.cgi +26 -0
- data/test/simple_tests/testing_dragging_an_image.cgi +23 -0
- data/test/simple_tests/testing_editable_text.cgi +16 -0
- data/test/simple_tests/testing_email.cgi +31 -0
- data/test/simple_tests/testing_embedding_a_pdf_file.cgi +32 -0
- data/test/simple_tests/testing_google_charts.cgi +24 -0
- data/test/simple_tests/testing_html_forms.cgi +31 -0
- data/test/simple_tests/testing_html_template.rb +13 -0
- data/test/simple_tests/testing_popup_div.cgi +22 -0
- data/test/simple_tests/testing_return_dataset_without_any_comments.rb +11 -0
- data/test/simple_tests/testing_the_cap_box.cgi +20 -0
- data/test/simple_tests/testing_the_div_tag.cgi +21 -0
- data/test/simple_tests/testing_the_headers_tag.cgi +36 -0
- data/test/simple_tests/testing_the_html_colours.cgi +19 -0
- data/test/simple_tests/testing_the_info_box.cgi +19 -0
- data/test/simple_tests/testing_the_li_tag.cgi +24 -0
- data/test/simple_tests/testing_the_s2_method.rb +7 -0
- data/test/simple_tests/testing_the_select_tag.cgi +23 -0
- data/test/simple_tests/testing_the_span_tag.cgi +36 -0
- data/test/simple_tests/testing_web_images.rb +12 -0
- data/test/testing_html_tags/README.md +7 -0
- data/test/testing_html_tags/button_example.cgi +42 -0
- metadata +759 -0
@@ -0,0 +1,1398 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# === Cyberweb
|
6
|
+
#
|
7
|
+
# There are a few standards employed in the Cyberweb project.
|
8
|
+
#
|
9
|
+
# Use this general rule when passing arguments to tags:
|
10
|
+
#
|
11
|
+
# css_class, id, css_style
|
12
|
+
#
|
13
|
+
# In this very order. There shall be NO exception to this. Alternatively
|
14
|
+
# you can use a Hash - then the order does not matter.
|
15
|
+
#
|
16
|
+
# Some tags allow you to use a hash, such as:
|
17
|
+
#
|
18
|
+
# css_class: 'marl1em', css_style: 'border:1px solid red'
|
19
|
+
#
|
20
|
+
# Here you can obviously be more flexible.
|
21
|
+
# =========================================================================== #
|
22
|
+
# require 'cyberweb/toplevel_methods/misc.rb'
|
23
|
+
# Cyberweb.return_dataset_without_any_comments
|
24
|
+
# Cyberweb.right_arrow
|
25
|
+
# Cyberweb.dropdown_box
|
26
|
+
# Cyberweb.return_the_name
|
27
|
+
# Cyberweb.colourize_ruby_code
|
28
|
+
# =========================================================================== #
|
29
|
+
module Cyberweb
|
30
|
+
|
31
|
+
# ========================================================================= #
|
32
|
+
# Try to next include coderay, silently.
|
33
|
+
# ========================================================================= #
|
34
|
+
begin
|
35
|
+
require 'coderay'
|
36
|
+
rescue LoadError; end
|
37
|
+
|
38
|
+
require 'cyberweb/constants/project_constants.rb'
|
39
|
+
# ========================================================================= #
|
40
|
+
# Require the various web_object/toplevel_methods/ components next:
|
41
|
+
# ========================================================================= #
|
42
|
+
require 'cyberweb/images/images.rb'
|
43
|
+
require 'cyberweb/toplevel_methods/bold.rb'
|
44
|
+
require 'cyberweb/toplevel_methods/charsets.rb'
|
45
|
+
require 'cyberweb/toplevel_methods/cgi.rb'
|
46
|
+
require 'cyberweb/toplevel_methods/consider_serving_the_web_object.rb'
|
47
|
+
require 'cyberweb/toplevel_methods/ee.rb'
|
48
|
+
require 'cyberweb/toplevel_methods/hfin.rb'
|
49
|
+
require 'cyberweb/toplevel_methods/html_mode.rb'
|
50
|
+
require 'cyberweb/toplevel_methods/input.rb'
|
51
|
+
require 'cyberweb/toplevel_methods/last_modified.rb'
|
52
|
+
require 'cyberweb/toplevel_methods/padlem_and_marlem.rb'
|
53
|
+
require 'cyberweb/toplevel_methods/readlines.rb'
|
54
|
+
require 'cyberweb/toplevel_methods/remove_newlines.rb'
|
55
|
+
require 'cyberweb/toplevel_methods/return_html_to_head_start.rb'
|
56
|
+
require 'cyberweb/toplevel_methods/show_and_display.rb'
|
57
|
+
require 'cyberweb/toplevel_methods/string_body_start.rb'
|
58
|
+
require 'cyberweb/toplevel_methods/svg.rb'
|
59
|
+
require 'cyberweb/toplevel_methods/s2.rb'
|
60
|
+
require 'cyberweb/toplevel_methods/string_content.rb'
|
61
|
+
require 'cyberweb/toplevel_methods/write_what_into.rb'
|
62
|
+
require 'cyberweb/html_tags/option.rb'
|
63
|
+
|
64
|
+
# ========================================================================= #
|
65
|
+
# === Cyberweb.show_admin_icons
|
66
|
+
#
|
67
|
+
# Show all admin icons through this method.
|
68
|
+
# ========================================================================= #
|
69
|
+
def self.show_admin_icons
|
70
|
+
_ = ''.dup
|
71
|
+
ARRAY_LISTING_ALL_PROJECT_IMAGES.each { |entry|
|
72
|
+
use_this_id = File.basename(entry.to_s).to_s.downcase.delete('.')
|
73
|
+
_ << string_s2(entry, '','','s1px marl0_7em black')+
|
74
|
+
sg(
|
75
|
+
entry,
|
76
|
+
'bblack0',
|
77
|
+
use_this_id
|
78
|
+
)
|
79
|
+
}
|
80
|
+
return _
|
81
|
+
end
|
82
|
+
|
83
|
+
# ========================================================================= #
|
84
|
+
# === show_ruby_file
|
85
|
+
#
|
86
|
+
# Display a ruby file here.
|
87
|
+
# ========================================================================= #
|
88
|
+
def show_ruby_file(
|
89
|
+
i = '/home/x/programming/ruby/src/test/'
|
90
|
+
)
|
91
|
+
read_and_display_file_if_it_exists(i)
|
92
|
+
end
|
93
|
+
|
94
|
+
# ========================================================================= #
|
95
|
+
# === pre_htmlentities
|
96
|
+
# ========================================================================= #
|
97
|
+
def pre_htmlentities(text = '', css_class = '', the_id = '', css_style = '')
|
98
|
+
pre(
|
99
|
+
text,css_class,the_id,css_style, :remove_html
|
100
|
+
) # :remove_html means that we strip HTML entries in the text.
|
101
|
+
end
|
102
|
+
|
103
|
+
# ========================================================================= #
|
104
|
+
# === Cyberweb.response_header?
|
105
|
+
# ========================================================================= #
|
106
|
+
def self.response_header?
|
107
|
+
"HTTP/1.0 200 OK\r\n"
|
108
|
+
end
|
109
|
+
|
110
|
+
# ========================================================================= #
|
111
|
+
# === ebr
|
112
|
+
#
|
113
|
+
# Echo, then print content, then add a newline + '<br>' tag.
|
114
|
+
# ========================================================================= #
|
115
|
+
def ebr(input)
|
116
|
+
ee input+NL
|
117
|
+
nbr
|
118
|
+
end
|
119
|
+
|
120
|
+
# ========================================================================= #
|
121
|
+
# === Cyberweb.right_arrow
|
122
|
+
# ========================================================================= #
|
123
|
+
def self.right_arrow
|
124
|
+
'→'
|
125
|
+
end
|
126
|
+
|
127
|
+
# ========================================================================= #
|
128
|
+
# === Cyberweb.bruch
|
129
|
+
#
|
130
|
+
# This is a "bruch", aka a fraction. It is written in german mostly because
|
131
|
+
# I am quite lazy.
|
132
|
+
# ========================================================================= #
|
133
|
+
def self.bruch(a, b)
|
134
|
+
return "<sup>#{a}</sup>/<sub>#{b}</sub>"
|
135
|
+
end
|
136
|
+
|
137
|
+
# ========================================================================= #
|
138
|
+
# === Cyberweb.dropdown_box
|
139
|
+
#
|
140
|
+
# This method will generate a <select><option> listing, a drop-down
|
141
|
+
# interface. The input to this method must be an Array.
|
142
|
+
# ========================================================================= #
|
143
|
+
def self.dropdown_box(input)
|
144
|
+
if input.is_a? Array # Ok.
|
145
|
+
_ = '<select>'.dup
|
146
|
+
input.each {|line|
|
147
|
+
_ << string_option(line)
|
148
|
+
}
|
149
|
+
_ << string_close(:select)
|
150
|
+
return _ # And return the result here.
|
151
|
+
else
|
152
|
+
raise 'The method dropdown_box() requires an Array as argument.'
|
153
|
+
end
|
154
|
+
end; self.instance_eval { alias www_dropdown_box dropdown_box } # === Cyberweb.www_dropdown_box
|
155
|
+
self.instance_eval { alias html_dropdown_box dropdown_box } # === Cyberweb.html_dropdown_box
|
156
|
+
|
157
|
+
# ========================================================================= #
|
158
|
+
# === Cyberweb.return_the_name
|
159
|
+
#
|
160
|
+
# Some HTML tags will have a name identifier. This method here shall try
|
161
|
+
# to satisfy these tags.
|
162
|
+
# ========================================================================= #
|
163
|
+
def self.return_the_name(i = '')
|
164
|
+
_ = ' name="'+i.to_s+'"'
|
165
|
+
return _
|
166
|
+
end
|
167
|
+
|
168
|
+
# ========================================================================= #
|
169
|
+
# === Cyberweb.colourize_ruby_code (ruby tag)
|
170
|
+
#
|
171
|
+
# Use this to colourize ruby code. Be careful when using this though
|
172
|
+
# and only use it when you (a) need it and (b) when you have ruby
|
173
|
+
# code in question.
|
174
|
+
# ========================================================================= #
|
175
|
+
def self.colourize_ruby_code(_)
|
176
|
+
_ = _.dup
|
177
|
+
_.gsub!(/class /,
|
178
|
+
'<span class="BG_Black pad1px lightgreen bold">class </span>')
|
179
|
+
_.gsub!(/require/,
|
180
|
+
'<span class="pad1px red FI bold">require</span>')
|
181
|
+
_.gsub!(/end$/,
|
182
|
+
'<span class="BG_Black pad1px red bold">end</span>')
|
183
|
+
_.gsub!(/else/,
|
184
|
+
'<span class="BG_Black pad1px red bold">else</span>')
|
185
|
+
_.gsub!(/if /,
|
186
|
+
'<span class="BG_Black pad1px red bold">if </span>')
|
187
|
+
_.gsub!(/elsif/,
|
188
|
+
'<span class="BG_Black pad1px red bold">elsif</span>')
|
189
|
+
_.gsub!(/__FILE__/,
|
190
|
+
'<span class="BG_Black pad1px pink bold">__FILE__</span>')
|
191
|
+
_.gsub!(/\$PROGRAM_NAME/,
|
192
|
+
'<span class="BG_Black pad1px lightgreen bold">$PROGRAM_NAME</span>')
|
193
|
+
_.gsub!(/class (\w+) </,'<span class="BG_Black pad1px yel bold">class</span> \\1 <')
|
194
|
+
_.gsub!(/super\(\)/,'<span class="BG_Black pad1px cyan bold">super()</span>')
|
195
|
+
_.gsub!(/#!\/System\/Executables\/ruby -w/,'<span class="BG_Black pad1px green bold">#!/System/Executables/ruby -w</span>')
|
196
|
+
_.gsub!(/def (.*)/,
|
197
|
+
'<span class="BG_Black pad1px orange bold">def </span><span class="BG_Black BO pad1px lightblue">\1</span>')
|
198
|
+
_.gsub!(/do/,
|
199
|
+
'<span class="BG_Black pad1px orange bold">do</span>')
|
200
|
+
return _
|
201
|
+
end
|
202
|
+
|
203
|
+
# ========================================================================= #
|
204
|
+
# === @css_object
|
205
|
+
#
|
206
|
+
# The @css_object instance variable.
|
207
|
+
# ========================================================================= #
|
208
|
+
@css_object = nil # Initialize it is nil.
|
209
|
+
|
210
|
+
# ========================================================================= #
|
211
|
+
# === @enable_title_for_reading_files
|
212
|
+
# ========================================================================= #
|
213
|
+
@enable_title_for_reading_files = false
|
214
|
+
|
215
|
+
# ========================================================================= #
|
216
|
+
# === @simple_form
|
217
|
+
# ========================================================================= #
|
218
|
+
@simple_form = nil
|
219
|
+
|
220
|
+
# ========================================================================= #
|
221
|
+
# === @listing_counter
|
222
|
+
#
|
223
|
+
# Initialize the counter for listings here.
|
224
|
+
# ========================================================================= #
|
225
|
+
@listing_counter = 0
|
226
|
+
|
227
|
+
# ========================================================================= #
|
228
|
+
# === Cyberweb.simple_form
|
229
|
+
# ========================================================================= #
|
230
|
+
def self.simple_form
|
231
|
+
@simple_form
|
232
|
+
end
|
233
|
+
|
234
|
+
# ========================================================================= #
|
235
|
+
# === Cyberweb.simple_form=
|
236
|
+
# ========================================================================= #
|
237
|
+
def self.simple_form=(i)
|
238
|
+
@simple_form = i
|
239
|
+
end
|
240
|
+
|
241
|
+
# ========================================================================= #
|
242
|
+
# === Cyberweb.css_object=
|
243
|
+
# ========================================================================= #
|
244
|
+
def self.css_object=(i)
|
245
|
+
@css_object = i
|
246
|
+
end
|
247
|
+
|
248
|
+
# ========================================================================= #
|
249
|
+
# === Cyberweb.css_object?
|
250
|
+
# ========================================================================= #
|
251
|
+
def self.css_object?
|
252
|
+
@css_object
|
253
|
+
end; self.instance_eval { alias css_object css_object? }
|
254
|
+
|
255
|
+
# ========================================================================= #
|
256
|
+
# === Cyberweb.html_header
|
257
|
+
#
|
258
|
+
# Usage example:
|
259
|
+
#
|
260
|
+
# Cyberweb.html_header( :title => entry )
|
261
|
+
#
|
262
|
+
# ========================================================================= #
|
263
|
+
def self.html_header(optional_hash = {})
|
264
|
+
_ = return_html_to_head_start.dup
|
265
|
+
if optional_hash.has_key? :title # In this case, also add the title.
|
266
|
+
_ << string_title(optional_hash.delete(:title))
|
267
|
+
end
|
268
|
+
_ << string_body_start
|
269
|
+
return _
|
270
|
+
end
|
271
|
+
|
272
|
+
# ========================================================================= #
|
273
|
+
# === Cyberweb.display_environmental_variables
|
274
|
+
#
|
275
|
+
# Show all environmental variables.
|
276
|
+
# ========================================================================= #
|
277
|
+
def self.display_environmental_variables
|
278
|
+
div('pad1em TAL', id: 'environment_variables') {
|
279
|
+
h2 'The environmental variables are:','darkblue'
|
280
|
+
if ::Cyberweb::CGI.respond_to? :predefined_cgi_env_variables
|
281
|
+
array = CGI.predefined_cgi_env_variables
|
282
|
+
array.each {|entry|
|
283
|
+
e '<b class="larger">'+entry.to_s+'</b>: '+ENV[entry].to_s
|
284
|
+
}
|
285
|
+
end
|
286
|
+
}
|
287
|
+
end; self.instance_eval { alias show_environment display_environmental_variables } # === Cyberweb.show_environment
|
288
|
+
self.instance_eval { alias show_env display_environmental_variables } # === Cyberweb.show_env
|
289
|
+
|
290
|
+
# ========================================================================= #
|
291
|
+
# === Cyberweb.logfile?
|
292
|
+
#
|
293
|
+
# For now, we will return the constant MISSING_IMAGES_ARE_STORED_HERE here.
|
294
|
+
# ========================================================================= #
|
295
|
+
def self.logfile?
|
296
|
+
MISSING_IMAGES_ARE_STORED_HERE
|
297
|
+
end
|
298
|
+
|
299
|
+
# ========================================================================= #
|
300
|
+
# === Cyberweb.logging?
|
301
|
+
#
|
302
|
+
# Convenience method to find out the amount of logging we will do.
|
303
|
+
# ========================================================================= #
|
304
|
+
def self.logging?
|
305
|
+
config?['warnings'].to_s
|
306
|
+
end
|
307
|
+
|
308
|
+
# ========================================================================= #
|
309
|
+
# === Cyberweb.to_css_directory
|
310
|
+
#
|
311
|
+
# This method will always give us the path towards the CSS/ directory.
|
312
|
+
# ========================================================================= #
|
313
|
+
def self.to_css_directory
|
314
|
+
"#{converted_path}cascading_style_sheets/"
|
315
|
+
end
|
316
|
+
|
317
|
+
# ========================================================================= #
|
318
|
+
# === Cyberweb.load_webmin
|
319
|
+
# ========================================================================= #
|
320
|
+
def self.load_webmin
|
321
|
+
Dir["#{WEBMIN_DIRECTORY}*rb"].each {|file|
|
322
|
+
require WEBMIN_DIRECTORY+File.basename(file)
|
323
|
+
}
|
324
|
+
end; load_webmin
|
325
|
+
|
326
|
+
# ========================================================================= #
|
327
|
+
# === Cyberweb.start_server
|
328
|
+
#
|
329
|
+
# Start the webrick server through this method.
|
330
|
+
# ========================================================================= #
|
331
|
+
def self.start_server(
|
332
|
+
use_this_port = 3003
|
333
|
+
)
|
334
|
+
which_document_root_to_use = (Dir.pwd+'/').squeeze '/'
|
335
|
+
http_server = WEBrick::HTTPServer.new(
|
336
|
+
:Port => use_this_port,
|
337
|
+
:DocumentRoot => which_document_root_to_use
|
338
|
+
)
|
339
|
+
Colours.e 'Will be serving on '+
|
340
|
+
Colours.sfancy('http://localhost:'+use_this_port.to_s)
|
341
|
+
http_server.start
|
342
|
+
end
|
343
|
+
|
344
|
+
# ========================================================================= #
|
345
|
+
# === Cyberweb.load_standalone_classes
|
346
|
+
#
|
347
|
+
# Load all .rb files under standalone_classes/.
|
348
|
+
# ========================================================================= #
|
349
|
+
def self.load_standalone_classes
|
350
|
+
Dir[STANDALONE_CLASSES_DIRECTORY+'*rb'].each {|file|
|
351
|
+
require STANDALONE_CLASSES_DIRECTORY+File.basename(file)
|
352
|
+
}
|
353
|
+
end; load_standalone_classes
|
354
|
+
|
355
|
+
# ========================================================================= #
|
356
|
+
# === Cyberweb.load_css
|
357
|
+
# ========================================================================= #
|
358
|
+
def self.load_css
|
359
|
+
Dir[PROJECT_CSS_DIRECTORY+'*rb'].each {|file|
|
360
|
+
require PROJECT_CSS_DIRECTORY+File.basename(file)
|
361
|
+
}
|
362
|
+
end; load_css
|
363
|
+
|
364
|
+
# ========================================================================= #
|
365
|
+
# === Cyberweb.load_coloured_tags
|
366
|
+
#
|
367
|
+
# The coloured tags allow you to colourize your input.
|
368
|
+
#
|
369
|
+
# They are stored in the file coloured_tags.rb and can be
|
370
|
+
# autogenerated anew when necessary.
|
371
|
+
#
|
372
|
+
# For instance:
|
373
|
+
#
|
374
|
+
# green 'foo'
|
375
|
+
#
|
376
|
+
# Makes a green tag. Ideally, all coloured words should work that way.
|
377
|
+
# ========================================================================= #
|
378
|
+
def self.load_coloured_tags
|
379
|
+
require COLOURED_TAGS
|
380
|
+
end; load_coloured_tags
|
381
|
+
|
382
|
+
# ========================================================================= #
|
383
|
+
# === ARRAY_DEFAULT_JAVASCRIPT_LIBRARIES
|
384
|
+
#
|
385
|
+
# Specify here which Javascript libraries are to be loaded on default.
|
386
|
+
#
|
387
|
+
# This will simply be all files specified in:
|
388
|
+
#
|
389
|
+
# bl $CYBERWEB/yaml/js_files_to_load.yml
|
390
|
+
#
|
391
|
+
# ========================================================================= #
|
392
|
+
if File.exist? PROJECT_YAML_DIRECTORY+'js_files_to_load.yml' # MAIN_DIR is defined in web_requires.rb
|
393
|
+
ARRAY_DEFAULT_JAVASCRIPT_LIBRARIES = YAML.load_file(
|
394
|
+
"#{PROJECT_YAML_DIRECTORY}js_files_to_load.yml" # bl $WEB_FOUNDATION/yaml/js_files_to_load.yml
|
395
|
+
)
|
396
|
+
else
|
397
|
+
ARRAY_DEFAULT_JAVASCRIPT_LIBRARIES = []
|
398
|
+
end
|
399
|
+
|
400
|
+
# ========================================================================= #
|
401
|
+
# === n
|
402
|
+
#
|
403
|
+
# This method will simply print a newline (ee is aliased to print).
|
404
|
+
# ========================================================================= #
|
405
|
+
def n
|
406
|
+
ee N
|
407
|
+
end unless defined? n
|
408
|
+
|
409
|
+
# ========================================================================= #
|
410
|
+
# === remove_html_tags (no html tags)
|
411
|
+
#
|
412
|
+
# This method will simply remove all html tags from a string.
|
413
|
+
#
|
414
|
+
# We will make use of project RemoveHtml for this task, which
|
415
|
+
# will be used through Cyberweb.remove_html().
|
416
|
+
#
|
417
|
+
# Usage example:
|
418
|
+
#
|
419
|
+
# Cyberweb.remove_html_tags("<span>foobar</span><br><b>test</b>")
|
420
|
+
# "<span>foobar</span><b>test</b>".gsub(/\<.+\>/,'')
|
421
|
+
# y = Cyberweb.remove_html_tags( x )
|
422
|
+
# y = Cyberweb.remove_html_tags( readlines("LINUX_COMMANDS.html").join(' ') )
|
423
|
+
# MyLogger.write_what_to(y,'/final.html')
|
424
|
+
#
|
425
|
+
# ========================================================================= #
|
426
|
+
def remove_html_tags(input)
|
427
|
+
::Cyberweb.remove_html(input)
|
428
|
+
end; alias no_html remove_html_tags # === no_html
|
429
|
+
alias de_html remove_html_tags # === de_html
|
430
|
+
alias strip_html remove_html_tags # === strip_html
|
431
|
+
alias remove_html remove_html_tags # === remove_html
|
432
|
+
|
433
|
+
# ========================================================================= #
|
434
|
+
# === create_directory
|
435
|
+
#
|
436
|
+
# Consistently use this method if you want to create a directory.
|
437
|
+
# So far this is only used in the file img.rb
|
438
|
+
# ========================================================================= #
|
439
|
+
def create_directory(d)
|
440
|
+
Dir.mkdir(d)
|
441
|
+
end
|
442
|
+
|
443
|
+
# ========================================================================= #
|
444
|
+
# === div_bord_1
|
445
|
+
# ========================================================================= #
|
446
|
+
def div_bord_1(css_class = '', the_id = '', css_style = '', javascript = '')
|
447
|
+
div(css_class, the_id, css_style+' RAND_BORD_1', javascript)
|
448
|
+
end; alias div_bord1px div_bord_1 # === div_bord1px
|
449
|
+
|
450
|
+
# ========================================================================= #
|
451
|
+
# === div_bord_2
|
452
|
+
# ========================================================================= #
|
453
|
+
def div_bord_2(css_class = '', the_id = '', css_style = '', javascript = '')
|
454
|
+
div(css_class, the_id, css_style+' RAND_BORD_2', javascript)
|
455
|
+
end; alias div_bord2px div_bord_2 # === div_bord2px
|
456
|
+
|
457
|
+
# ========================================================================= #
|
458
|
+
# === div_bord_3
|
459
|
+
# ========================================================================= #
|
460
|
+
def div_bord_3(css_class = '', the_id = '', css_style = '', javascript = '')
|
461
|
+
div(css_class, the_id, css_style+' RAND_BORD_3', javascript)
|
462
|
+
end; alias div_bord3px div_bord_3 # === div_bord3px
|
463
|
+
|
464
|
+
# ========================================================================= #
|
465
|
+
# === read_file_with_these_lines
|
466
|
+
#
|
467
|
+
# read_file_with_these_lines('ShebangFixer',1,5)
|
468
|
+
# ========================================================================= #
|
469
|
+
def read_file_with_these_lines(
|
470
|
+
this_file,
|
471
|
+
starting_line = 1,
|
472
|
+
ending_line = 5,
|
473
|
+
css_to_use = ''
|
474
|
+
)
|
475
|
+
_ = read_file(this_file)
|
476
|
+
_ = _[starting_line, ending_line] if _
|
477
|
+
pre _, css_to_use
|
478
|
+
end
|
479
|
+
|
480
|
+
# ========================================================================= #
|
481
|
+
# === string_html_start
|
482
|
+
#
|
483
|
+
# Just start of <html>, optionally like <html lang="en">
|
484
|
+
# ========================================================================= #
|
485
|
+
def string_html_start(
|
486
|
+
optional_language = ''
|
487
|
+
)
|
488
|
+
_ = return_html_start.dup
|
489
|
+
_ << ' lang="'+optional_language+'"' unless optional_language.empty?
|
490
|
+
_ << "#{NL}#{NL}"
|
491
|
+
return _
|
492
|
+
end
|
493
|
+
|
494
|
+
# ========================================================================= #
|
495
|
+
# === return_html_start
|
496
|
+
# ========================================================================= #
|
497
|
+
def return_html_start
|
498
|
+
::Cyberweb.return_html_start
|
499
|
+
end
|
500
|
+
|
501
|
+
# ========================================================================= #
|
502
|
+
# === div_blue
|
503
|
+
#
|
504
|
+
# This is used in hardware_information.rb.
|
505
|
+
# ========================================================================= #
|
506
|
+
def div_blue(c = 'Black pad1em',i='',s='background-color:#7676b3;border: 1px solid black')
|
507
|
+
div(c,i,s) { yield if block_given? }
|
508
|
+
end
|
509
|
+
|
510
|
+
# ========================================================================= #
|
511
|
+
# === create_thumbnails_page
|
512
|
+
#
|
513
|
+
# create a html file of current image dirs.
|
514
|
+
# ========================================================================= #
|
515
|
+
def create_thumbnails_page(of_this_input_dir)
|
516
|
+
_ = get_images(of_this_input_dir)
|
517
|
+
ee 'Creating thumbnails page next ...'
|
518
|
+
end
|
519
|
+
|
520
|
+
# ========================================================================= #
|
521
|
+
# === pnl
|
522
|
+
#
|
523
|
+
# Prints a new line.
|
524
|
+
# ========================================================================= #
|
525
|
+
def pnl
|
526
|
+
ee NL
|
527
|
+
end; alias newline pnl # === newline
|
528
|
+
|
529
|
+
# ========================================================================= #
|
530
|
+
# === print_head_start
|
531
|
+
# ========================================================================= #
|
532
|
+
def print_head_start
|
533
|
+
ee return_head_start
|
534
|
+
end
|
535
|
+
|
536
|
+
# ========================================================================= #
|
537
|
+
# === print_strict_doctype
|
538
|
+
#
|
539
|
+
# Print the doctype to use, by calling the method return_strict_doctype().
|
540
|
+
# ========================================================================= #
|
541
|
+
def print_strict_doctype
|
542
|
+
ee return_strict_doctype
|
543
|
+
end
|
544
|
+
|
545
|
+
# ========================================================================= #
|
546
|
+
# === print_the_name
|
547
|
+
#
|
548
|
+
# Prints a html name tag by invoking the method return_the_name().
|
549
|
+
# ========================================================================= #
|
550
|
+
def print_the_name(of_this_name)
|
551
|
+
ee return_the_name(of_this_name)
|
552
|
+
end
|
553
|
+
|
554
|
+
# ========================================================================= #
|
555
|
+
# === l_e
|
556
|
+
#
|
557
|
+
# This will use the css class marl0_5em.
|
558
|
+
# ========================================================================= #
|
559
|
+
def l_e(text, css_class = '', the_id = '', css_style = '')
|
560
|
+
e text,'marl0_5em '+css_class, the_id, css_style
|
561
|
+
end
|
562
|
+
|
563
|
+
# ========================================================================= #
|
564
|
+
# === output_content_type
|
565
|
+
#
|
566
|
+
# Use this method if you wish to output the content type.
|
567
|
+
# ========================================================================= #
|
568
|
+
def output_content_type
|
569
|
+
ee CONTENT_TYPE_PLAIN
|
570
|
+
end
|
571
|
+
|
572
|
+
# ========================================================================= #
|
573
|
+
# === output_response_header
|
574
|
+
# ========================================================================= #
|
575
|
+
def output_response_header
|
576
|
+
ee HTTP_RESPONSE_HEADER
|
577
|
+
end
|
578
|
+
|
579
|
+
# ========================================================================= #
|
580
|
+
# === div_note
|
581
|
+
#
|
582
|
+
# This method makes a little <div> tag. It makes use of a special CSS
|
583
|
+
# file called admonition.css.
|
584
|
+
#
|
585
|
+
# Usage example:
|
586
|
+
# div_note 'Note','Good requirements.'
|
587
|
+
# ========================================================================= #
|
588
|
+
def div_note(
|
589
|
+
title = '',
|
590
|
+
paragraph_content = '',
|
591
|
+
optional_id = ''
|
592
|
+
)
|
593
|
+
div('admonition',optional_id) {
|
594
|
+
p('p_title1') { e title }
|
595
|
+
p { e paragraph_content }
|
596
|
+
}
|
597
|
+
end
|
598
|
+
|
599
|
+
# ========================================================================= #
|
600
|
+
# === Cyberweb.get_files_from
|
601
|
+
#
|
602
|
+
# This method returns all files from a given directory (first argument).
|
603
|
+
# ========================================================================= #
|
604
|
+
def self.get_files_from(
|
605
|
+
this_dir = Dir.pwd,
|
606
|
+
return_full_path = false,
|
607
|
+
traverse_into_subdirectories_as_well = false
|
608
|
+
)
|
609
|
+
unless this_dir.include? '*'
|
610
|
+
this_dir = this_dir.dup if this_dir.frozen?
|
611
|
+
this_dir << '*'
|
612
|
+
end
|
613
|
+
all_files = Dir[this_dir]
|
614
|
+
|
615
|
+
if traverse_into_subdirectories_as_well
|
616
|
+
this_dir << '/' unless this_dir.end_with? '/' # Let's ensure we have a directory here.
|
617
|
+
all_files = Dir[this_dir+'/*/**']
|
618
|
+
end
|
619
|
+
|
620
|
+
return all_files # Finally, return all of our results.
|
621
|
+
end; self.instance_eval { alias get_all_files_from get_files_from } # === Cyberweb.get_all_files_from
|
622
|
+
self.instance_eval { alias get_files get_files_from } # === Cyberweb.get_files
|
623
|
+
|
624
|
+
# ========================================================================= #
|
625
|
+
# === make_row
|
626
|
+
#
|
627
|
+
# Use this method to make an entry. It is generally used within a form.
|
628
|
+
#
|
629
|
+
# Usage examples:
|
630
|
+
#
|
631
|
+
# make_row 'Base Dir:','base_dir','BG_Black lightblue'
|
632
|
+
# make_row 'Description:','description','BG_Black lightgreen'
|
633
|
+
# ========================================================================= #
|
634
|
+
def make_row(
|
635
|
+
description,
|
636
|
+
input_id,
|
637
|
+
optional_css = '',
|
638
|
+
colour_for_border = 'mediumslateblue'
|
639
|
+
)
|
640
|
+
trtd description
|
641
|
+
# s2 description
|
642
|
+
ctd
|
643
|
+
td
|
644
|
+
input_br :text,'','s0_1em mar1px pad1px s4px marl1_5em '+optional_css,
|
645
|
+
input_id, 'border:1px solid '+colour_for_border # RAND_COLOUR
|
646
|
+
ctdctr
|
647
|
+
end
|
648
|
+
|
649
|
+
# ========================================================================= #
|
650
|
+
# === ibr
|
651
|
+
#
|
652
|
+
# Italic with linebreak.
|
653
|
+
# ========================================================================= #
|
654
|
+
def ibr(
|
655
|
+
text,
|
656
|
+
css_class = '',
|
657
|
+
the_id = '',
|
658
|
+
css_style = ''
|
659
|
+
)
|
660
|
+
text = sanitize_for_colours(text).to_s.dup
|
661
|
+
css_class = css_class.to_s.dup
|
662
|
+
i text, css_class, the_id, css_style
|
663
|
+
nbr
|
664
|
+
end
|
665
|
+
|
666
|
+
# ========================================================================= #
|
667
|
+
# === escaped_html
|
668
|
+
#
|
669
|
+
# Like escape_html(), but will output it. ehtml() is the more common
|
670
|
+
# variant.
|
671
|
+
# ========================================================================= #
|
672
|
+
def escaped_html(text)
|
673
|
+
ee escape_html(text)
|
674
|
+
end; alias ehtml escaped_html # === ehtml
|
675
|
+
|
676
|
+
# ========================================================================= #
|
677
|
+
# === colourize_nim_code
|
678
|
+
# ========================================================================= #
|
679
|
+
def colourize_nim_code(_)
|
680
|
+
_.gsub!(/discard/,
|
681
|
+
'<span class="BG_Black pad1px red bold">discard</span>')
|
682
|
+
_.gsub!(/^if/,
|
683
|
+
'<span class="BG_Black pad1px red bold">if</span>')
|
684
|
+
_.gsub!(/^else/,
|
685
|
+
'<span class="BG_Black pad1px red bold">else</span>')
|
686
|
+
_.gsub!(/#/,
|
687
|
+
'<span class="BG_Black pad1px grey bold">#</span>')
|
688
|
+
return _
|
689
|
+
end
|
690
|
+
|
691
|
+
# ========================================================================= #
|
692
|
+
# === return_random_image
|
693
|
+
#
|
694
|
+
# Default will be to return from Wallpaper directory.
|
695
|
+
# ========================================================================= #
|
696
|
+
def return_random_image(
|
697
|
+
directory = "#{IMAGE_DIRECTORY}/WALLPAPERS/"
|
698
|
+
)
|
699
|
+
directory = directory.dup if directory.frozen?
|
700
|
+
directory[0,0] = 'WALLPAPERS/' unless directory.include? 'WALLPAPERS'
|
701
|
+
return get_files_from(directory).sample
|
702
|
+
end
|
703
|
+
|
704
|
+
# ========================================================================= #
|
705
|
+
# === read_file (read file tag)
|
706
|
+
#
|
707
|
+
# Reads in a file. Nothing more, nothing less. If you need only a
|
708
|
+
# specific range from that file, you need to manipulate the
|
709
|
+
# resulting array on your own.
|
710
|
+
# ========================================================================= #
|
711
|
+
def read_file(i)
|
712
|
+
if i.is_a? Symbol # Assume in this case that we want to use BeautifulUrl.
|
713
|
+
i = sanitize_url(i, true)
|
714
|
+
end
|
715
|
+
if File.directory?(i)
|
716
|
+
i = get_files_from(i, true)
|
717
|
+
i.each { |dir|
|
718
|
+
unless File.zero?(dir) # unless it is empty.
|
719
|
+
link dir, sg(:square_green,
|
720
|
+
'marr4px wid5px bblack1')+dir,1,'slateblue'
|
721
|
+
end
|
722
|
+
}
|
723
|
+
else
|
724
|
+
i = readlines(i)
|
725
|
+
end
|
726
|
+
return i
|
727
|
+
end
|
728
|
+
|
729
|
+
# ========================================================================= #
|
730
|
+
# === print_html_start
|
731
|
+
# ========================================================================= #
|
732
|
+
def print_html_start
|
733
|
+
ee return_html_start
|
734
|
+
end
|
735
|
+
|
736
|
+
# ========================================================================= #
|
737
|
+
# === print_html_to_head_start
|
738
|
+
# ========================================================================= #
|
739
|
+
def print_html_to_head_start
|
740
|
+
ee return_html_to_head_start
|
741
|
+
end
|
742
|
+
|
743
|
+
# ========================================================================= #
|
744
|
+
# === return_head_start
|
745
|
+
# ========================================================================= #
|
746
|
+
def return_head_start
|
747
|
+
::Cyberweb.return_head_start
|
748
|
+
end
|
749
|
+
|
750
|
+
# ========================================================================= #
|
751
|
+
# === bbrud
|
752
|
+
#
|
753
|
+
# This method combines bold (b), with breakline (br), and underline (ud).
|
754
|
+
#
|
755
|
+
# It is not often needed.
|
756
|
+
# ========================================================================= #
|
757
|
+
def bbrud(text, css_class = '', the_id = '', css_style = '')
|
758
|
+
boldbr(text, 'ud '+css_class, the_id, css_style)
|
759
|
+
end
|
760
|
+
|
761
|
+
# ========================================================================= #
|
762
|
+
# === read_and_display_for_ruby
|
763
|
+
#
|
764
|
+
# It is however unspecific to any programming language.
|
765
|
+
# ========================================================================= #
|
766
|
+
def read_and_display_for_ruby(f,
|
767
|
+
c = 'bblack2',
|
768
|
+
i = '',
|
769
|
+
style = '',
|
770
|
+
colourize_me = true,
|
771
|
+
do_escape_html = false
|
772
|
+
)
|
773
|
+
read_and_display(f, c, i, style, colourize_me, do_escape_html)
|
774
|
+
end; alias read_display_with_ruby read_and_display_for_ruby # === read_display_with_ruby
|
775
|
+
alias read_display_for_nimrod read_and_display_for_ruby # === read_display_for_nimrod
|
776
|
+
alias read_display_ruby read_and_display_for_ruby # === read_display_ruby
|
777
|
+
|
778
|
+
# ========================================================================= #
|
779
|
+
# === add_ruby_code
|
780
|
+
#
|
781
|
+
# This method depends on CodeRay. It will simply parse some ruby code.
|
782
|
+
# ========================================================================= #
|
783
|
+
def add_ruby_code(i)
|
784
|
+
CodeRay.scan(i, :ruby).div
|
785
|
+
end
|
786
|
+
|
787
|
+
# ========================================================================= #
|
788
|
+
# === show_ip
|
789
|
+
#
|
790
|
+
# This shows the ip of the visitor, by invoking the method get_ip().
|
791
|
+
# ========================================================================= #
|
792
|
+
def show_ip
|
793
|
+
e 'The IP is:'
|
794
|
+
e get_ip,'yel'
|
795
|
+
end
|
796
|
+
|
797
|
+
# ========================================================================= #
|
798
|
+
# === localhost_to_data
|
799
|
+
#
|
800
|
+
# This will replace localhost with the corresponding entry.
|
801
|
+
# ========================================================================= #
|
802
|
+
def localhost_to_data(i)
|
803
|
+
i.sub(/localhost/, '/')
|
804
|
+
end
|
805
|
+
|
806
|
+
# ========================================================================= #
|
807
|
+
# === no_http
|
808
|
+
#
|
809
|
+
# Returns a variant without leading "http://" string. Please use this
|
810
|
+
# method whenever getting rid of http.
|
811
|
+
# ========================================================================= #
|
812
|
+
def no_http(i)
|
813
|
+
return i.gsub(/^http:\/\//, '')
|
814
|
+
end
|
815
|
+
|
816
|
+
# ========================================================================= #
|
817
|
+
# === print_meta_collection
|
818
|
+
#
|
819
|
+
# Print meta stuff like robots info etc.
|
820
|
+
# ========================================================================= #
|
821
|
+
def print_meta_collection
|
822
|
+
ee return_meta_collection
|
823
|
+
end
|
824
|
+
|
825
|
+
# ========================================================================= #
|
826
|
+
# === show_image_checkbox
|
827
|
+
#
|
828
|
+
# This will display a small cute little checkbox. It omits the id tag
|
829
|
+
# because I think there is no point in using an id for such a small
|
830
|
+
# checkbox.
|
831
|
+
#
|
832
|
+
# Usage example:
|
833
|
+
#
|
834
|
+
# show_image_checkbox :on, 'posab','top:10em;right:18%'
|
835
|
+
#
|
836
|
+
# ========================================================================= #
|
837
|
+
def show_image_checkbox(
|
838
|
+
mode = :on,
|
839
|
+
css_class = '',
|
840
|
+
css_style = ''
|
841
|
+
)
|
842
|
+
case mode
|
843
|
+
when :off
|
844
|
+
img 'STD/CHECKBOX_OFF.png',css_class, '', css_style
|
845
|
+
when :on
|
846
|
+
img 'STD/CHECKBOX_ON.png', css_class, '', css_style
|
847
|
+
end
|
848
|
+
end
|
849
|
+
|
850
|
+
# ========================================================================= #
|
851
|
+
# === navgroup
|
852
|
+
#
|
853
|
+
# Make a simple navgroup.
|
854
|
+
# ========================================================================= #
|
855
|
+
def navgroup(*args)
|
856
|
+
ee '<nav>'
|
857
|
+
ee '<ul>'
|
858
|
+
args.flatten.each { |i|
|
859
|
+
ee '<li><a href="#">'+i+'</a></li>'
|
860
|
+
}
|
861
|
+
cul
|
862
|
+
cnav
|
863
|
+
end
|
864
|
+
|
865
|
+
# ========================================================================= #
|
866
|
+
# === valid_html
|
867
|
+
#
|
868
|
+
# W3, valid, validator
|
869
|
+
#
|
870
|
+
# Usage example:
|
871
|
+
#
|
872
|
+
# valid_html 's1em','s1px'
|
873
|
+
#
|
874
|
+
# ========================================================================= #
|
875
|
+
def valid_html(
|
876
|
+
div_class = '',
|
877
|
+
div_style = ''
|
878
|
+
)
|
879
|
+
div('FS0_8em Z100 '+div_class, '',div_style,'onmousedown="start_dragging(this)"'){
|
880
|
+
ee '<a href="http://validator.w3.org/check/referer">'
|
881
|
+
img 'STD/VALID_HTML.jpg','s1px','Valid_html_4.0'
|
882
|
+
c 'a'
|
883
|
+
ee '<a href="http://jigsaw.w3.org/css-validator/check/referer">'
|
884
|
+
img 'STD/VALID_CSS.jpg','s1px','Valid_css_4.0'
|
885
|
+
c 'a'
|
886
|
+
}
|
887
|
+
end
|
888
|
+
|
889
|
+
# ========================================================================= #
|
890
|
+
# === get_ip
|
891
|
+
#
|
892
|
+
# This returns the ip.
|
893
|
+
# ========================================================================= #
|
894
|
+
def get_ip
|
895
|
+
ENV['REMOTE_ADDR']
|
896
|
+
end
|
897
|
+
|
898
|
+
# ========================================================================= #
|
899
|
+
# === display_environmental_variables
|
900
|
+
#
|
901
|
+
# Show the CGI variables.
|
902
|
+
# ========================================================================= #
|
903
|
+
def display_environmental_variables
|
904
|
+
::Cyberweb.display_environmental_variables
|
905
|
+
end; alias show_environment display_environmental_variables # === show_environment
|
906
|
+
|
907
|
+
# ========================================================================= #
|
908
|
+
# === block
|
909
|
+
# ========================================================================= #
|
910
|
+
def block(text, css_class = '', the_id = '', css_style = '')
|
911
|
+
e text, 'BLOCK '+css_class, the_id, css_style
|
912
|
+
end
|
913
|
+
|
914
|
+
# ========================================================================= #
|
915
|
+
# === websave_what_to
|
916
|
+
#
|
917
|
+
# Use this method to save the file somewhere.
|
918
|
+
# rfind web_foundation.log
|
919
|
+
# ========================================================================= #
|
920
|
+
def websave_what_to(
|
921
|
+
what,
|
922
|
+
where_to = "#{log_dir?}web_foundation.log",
|
923
|
+
mode = 'a+'
|
924
|
+
)
|
925
|
+
unless where_to.include? '/'
|
926
|
+
where_to = "#{log_dir?}#{where_to}"
|
927
|
+
end
|
928
|
+
# ======================================================================= #
|
929
|
+
# We may have to check for the file permissions first.
|
930
|
+
# ======================================================================= #
|
931
|
+
begin
|
932
|
+
if File.writable? where_to
|
933
|
+
File.open(where_to, mode) {|f| f.print(what, N) }
|
934
|
+
else
|
935
|
+
raise 'File not writable.'
|
936
|
+
end
|
937
|
+
rescue; end # silent rescue.
|
938
|
+
end; alias save_what websave_what_to # === save_what
|
939
|
+
alias save_what_to websave_what_to # === save_what_to
|
940
|
+
|
941
|
+
# ========================================================================= #
|
942
|
+
# === send_email
|
943
|
+
#
|
944
|
+
# Use this method to send an email.
|
945
|
+
# ========================================================================= #
|
946
|
+
def send_email
|
947
|
+
w.mail.deliver
|
948
|
+
end
|
949
|
+
|
950
|
+
# ========================================================================= #
|
951
|
+
# === right
|
952
|
+
# ========================================================================= #
|
953
|
+
def right(i)
|
954
|
+
e i,'FLR'
|
955
|
+
end
|
956
|
+
|
957
|
+
# ========================================================================= #
|
958
|
+
# === brbr
|
959
|
+
# ========================================================================= #
|
960
|
+
def brbr
|
961
|
+
br; br
|
962
|
+
end
|
963
|
+
|
964
|
+
# ========================================================================= #
|
965
|
+
# === get_all_directories_from
|
966
|
+
#
|
967
|
+
# Obtain all directories from a target path.
|
968
|
+
# ========================================================================= #
|
969
|
+
def get_all_directories_from(
|
970
|
+
where = Dir.pwd,
|
971
|
+
return_full_path = false
|
972
|
+
)
|
973
|
+
return Dir["#{where}/*"].reject {|entry| ! File.directory? entry }
|
974
|
+
end
|
975
|
+
|
976
|
+
# ========================================================================= #
|
977
|
+
# === warn
|
978
|
+
#
|
979
|
+
# A warning displayed via the <pre> tag.
|
980
|
+
# ========================================================================= #
|
981
|
+
def warn(i)
|
982
|
+
pre i,'red'
|
983
|
+
end; alias ewarn warn # === ewarn
|
984
|
+
|
985
|
+
# ========================================================================= #
|
986
|
+
# === rating
|
987
|
+
#
|
988
|
+
# Use this for a simple rating, so that we can display one star,
|
989
|
+
# two stars, three, four or five stars.
|
990
|
+
# ========================================================================= #
|
991
|
+
def rating(which_rating = 1)
|
992
|
+
case which_rating
|
993
|
+
when 0, 1, :one
|
994
|
+
_ = sg :one_star
|
995
|
+
when 2, :two
|
996
|
+
_ = sg :two_stars
|
997
|
+
when 3, :three
|
998
|
+
_ = sg :three_stars
|
999
|
+
when 4, :four
|
1000
|
+
_ = sg :four_stars
|
1001
|
+
when 5, :five
|
1002
|
+
_ = sg :five_stars
|
1003
|
+
end
|
1004
|
+
return _
|
1005
|
+
end
|
1006
|
+
|
1007
|
+
# ========================================================================= #
|
1008
|
+
# === content
|
1009
|
+
#
|
1010
|
+
# This is a nice little method, like I used to use e() in my old PHP
|
1011
|
+
# scripts. An alias to it is cont().
|
1012
|
+
# ========================================================================= #
|
1013
|
+
def content(inp)
|
1014
|
+
ee string_cont(inp)
|
1015
|
+
end; alias cont content # === cont
|
1016
|
+
|
1017
|
+
# ========================================================================= #
|
1018
|
+
# === object_frame
|
1019
|
+
#
|
1020
|
+
# This method generates an <object> tag, but in context of a passed src.
|
1021
|
+
#
|
1022
|
+
# Usage example:
|
1023
|
+
#
|
1024
|
+
# object_frame('../index.html')
|
1025
|
+
# div('mart10em'){ object_frame('../PC/PC.cgi') }
|
1026
|
+
# div('mar4em'){ object_frame('../PC/OS/LINUX/LINUX_COMMANDS.cgi','800','400') }
|
1027
|
+
#
|
1028
|
+
# ========================================================================= #
|
1029
|
+
def object_frame(
|
1030
|
+
src,
|
1031
|
+
optional_width = '95%',
|
1032
|
+
optional_height = '440',
|
1033
|
+
optional_css_class = 'bblack1 pad0_5em',
|
1034
|
+
optional_id = '',
|
1035
|
+
optional_css_style = ''
|
1036
|
+
)
|
1037
|
+
if src.is_a? Symbol # Intercept symbols here.
|
1038
|
+
src = sanitize_url(src)
|
1039
|
+
end
|
1040
|
+
if optional_width.is_a? Hash
|
1041
|
+
optional_width = optional_width.delete(:width) if optional_width.has_key? :width
|
1042
|
+
end
|
1043
|
+
ee '<object class="'+optional_css_class+'" data="'+src+
|
1044
|
+
'" type="text/html" name="framesPage" width="'+
|
1045
|
+
optional_width+'" height="'+optional_height+'" id="'+optional_id+'">'
|
1046
|
+
ee '<a href="/html-tutorials/verticalframes.php">Missing '+src+' frameset.</a>'
|
1047
|
+
c :object
|
1048
|
+
end; alias frame object_frame # === frame
|
1049
|
+
alias embedded_frame object_frame # We can also embed other pages.
|
1050
|
+
|
1051
|
+
# ========================================================================= #
|
1052
|
+
# === clear_list
|
1053
|
+
#
|
1054
|
+
# This method resets the listing counter again. It makes use of
|
1055
|
+
# web_object listing counter method.
|
1056
|
+
# ========================================================================= #
|
1057
|
+
def clear_list
|
1058
|
+
web_object.reset_counter
|
1059
|
+
end; alias reset_listing clear_list # === reset_listing
|
1060
|
+
|
1061
|
+
# ========================================================================= #
|
1062
|
+
# === l4em
|
1063
|
+
# ========================================================================= #
|
1064
|
+
def l4em(text, css_class = '', the_id = '', css_style = '')
|
1065
|
+
e text,'marl4em '+css_class, the_id, css_style
|
1066
|
+
end; alias marl4em l4em # === marl4em
|
1067
|
+
alias l4 l4em # === l4
|
1068
|
+
alias le4 l4em # === le4
|
1069
|
+
|
1070
|
+
# ========================================================================= #
|
1071
|
+
# === l5em
|
1072
|
+
# ========================================================================= #
|
1073
|
+
def l5em(text, css_class = '', the_id = '', css_style = '')
|
1074
|
+
e text,'marl5em '+css_class, the_id, css_style
|
1075
|
+
end; alias marl5em l5em # === marl5em
|
1076
|
+
alias l5 l5em # === l5
|
1077
|
+
alias le5 l5em # === le5
|
1078
|
+
|
1079
|
+
# ========================================================================= #
|
1080
|
+
# === Cyberweb.name_of_served_page?
|
1081
|
+
#
|
1082
|
+
# This method will return the name of the page that is served, which
|
1083
|
+
# is stored in the environment variable SCRIPT_NAME.
|
1084
|
+
#
|
1085
|
+
# The method will thus return something such as 'ADMIN.cgi'.
|
1086
|
+
# ========================================================================= #
|
1087
|
+
def self.name_of_served_page?(return_full_path = false)
|
1088
|
+
_ = ENV['SCRIPT_NAME'] # This value here will be returned.
|
1089
|
+
case return_full_path
|
1090
|
+
when :full_path
|
1091
|
+
return_full_path = true
|
1092
|
+
end
|
1093
|
+
if return_full_path
|
1094
|
+
::Cyberweb.rds(server_directory?+_)
|
1095
|
+
else
|
1096
|
+
File.basename(_)
|
1097
|
+
end
|
1098
|
+
end
|
1099
|
+
|
1100
|
+
# ========================================================================= #
|
1101
|
+
# === name_of_served_page?
|
1102
|
+
# ========================================================================= #
|
1103
|
+
def name_of_served_page?(return_full_path = false)
|
1104
|
+
::Cyberweb.name_of_served_page?(return_full_path)
|
1105
|
+
end; alias this_file? name_of_served_page? # === this_file?
|
1106
|
+
|
1107
|
+
# ========================================================================= #
|
1108
|
+
# === embed
|
1109
|
+
#
|
1110
|
+
# Allows you to embed SVG files, for instance.
|
1111
|
+
# ========================================================================= #
|
1112
|
+
def embed(svg_src = '',width = '150',height = '150')
|
1113
|
+
ee '<embed src="'+svg_src+'.svg" width="'+width+'" height="'+height+'">'
|
1114
|
+
end
|
1115
|
+
|
1116
|
+
# ========================================================================= #
|
1117
|
+
# === show_inhalt
|
1118
|
+
#
|
1119
|
+
# We show a file called INHALT here.
|
1120
|
+
# ========================================================================= #
|
1121
|
+
def show_inhalt(
|
1122
|
+
css_to_use = ''
|
1123
|
+
)
|
1124
|
+
read_and_display 'INHALT.md', css_to_use
|
1125
|
+
end
|
1126
|
+
|
1127
|
+
# ========================================================================= #
|
1128
|
+
# === pfeil_rechts
|
1129
|
+
# ========================================================================= #
|
1130
|
+
def pfeil_rechts(use_this_css_class = 'marr4px')
|
1131
|
+
sg(:pfeil_rechts, use_this_css_class)
|
1132
|
+
end
|
1133
|
+
|
1134
|
+
# ========================================================================= #
|
1135
|
+
# === sysinfo_header
|
1136
|
+
# ========================================================================= #
|
1137
|
+
def sysinfo_header(
|
1138
|
+
i, use_this_colour = 'cyan'
|
1139
|
+
)
|
1140
|
+
h2 sg(:chronik,'marr5px')+i, use_this_colour
|
1141
|
+
end
|
1142
|
+
|
1143
|
+
# ========================================================================= #
|
1144
|
+
# === l2em
|
1145
|
+
# ========================================================================= #
|
1146
|
+
def l2em(text, css_class = '', the_id = '', css_style = '')
|
1147
|
+
e text,'marl2em '+css_class, the_id, css_style
|
1148
|
+
end; alias marl2em l2em # === marl2em
|
1149
|
+
alias l2 l2em # === l2
|
1150
|
+
alias le2 l2em # === le2
|
1151
|
+
alias lee l2em # === lee
|
1152
|
+
|
1153
|
+
# ========================================================================= #
|
1154
|
+
# === read_file_into_array
|
1155
|
+
#
|
1156
|
+
# Read a file into an Array.
|
1157
|
+
# ========================================================================= #
|
1158
|
+
def read_file_into_array(i)
|
1159
|
+
result = []
|
1160
|
+
if File.exist? i
|
1161
|
+
result << readlines(i)
|
1162
|
+
end
|
1163
|
+
result.flatten
|
1164
|
+
end
|
1165
|
+
|
1166
|
+
# ========================================================================= #
|
1167
|
+
# === div_fin
|
1168
|
+
#
|
1169
|
+
# Supports yield since 29.11.2011.
|
1170
|
+
# ========================================================================= #
|
1171
|
+
def div_fin(
|
1172
|
+
css_class = '',
|
1173
|
+
the_id = '',
|
1174
|
+
css_style = '',
|
1175
|
+
javascript = ''
|
1176
|
+
)
|
1177
|
+
div(css_class = '', the_id = '', css_style = '', javascript = '')
|
1178
|
+
yield if block_given?
|
1179
|
+
cdiv # close the div tag properly.
|
1180
|
+
hfin
|
1181
|
+
end
|
1182
|
+
|
1183
|
+
# ========================================================================= #
|
1184
|
+
# === Cyberweb.string_bold
|
1185
|
+
# ========================================================================= #
|
1186
|
+
def self.string_bold(
|
1187
|
+
content = '',
|
1188
|
+
css_class = '',
|
1189
|
+
the_id = '',
|
1190
|
+
css_style = '',
|
1191
|
+
javascript = ''
|
1192
|
+
)
|
1193
|
+
string_s(
|
1194
|
+
content, 'b', css_class, the_id, css_style, javascript
|
1195
|
+
)
|
1196
|
+
end; self.instance_eval { alias string_b string_bold } # === Cyberweb.string_b
|
1197
|
+
|
1198
|
+
# ========================================================================= #
|
1199
|
+
# === string_bold
|
1200
|
+
# ========================================================================= #
|
1201
|
+
def string_bold(
|
1202
|
+
content = '',
|
1203
|
+
css_class = '',
|
1204
|
+
the_id = '',
|
1205
|
+
css_style = '',
|
1206
|
+
javascript = ''
|
1207
|
+
)
|
1208
|
+
::Cyberweb.string_s(
|
1209
|
+
content, 'b', css_class, the_id, css_style, javascript
|
1210
|
+
)
|
1211
|
+
end; alias string_b string_bold # === string_b
|
1212
|
+
|
1213
|
+
# ========================================================================= #
|
1214
|
+
# === Cyberweb.left_arrow
|
1215
|
+
# ========================================================================= #
|
1216
|
+
def self.left_arrow
|
1217
|
+
'←'
|
1218
|
+
end
|
1219
|
+
|
1220
|
+
# ========================================================================= #
|
1221
|
+
# === italic
|
1222
|
+
# ========================================================================= #
|
1223
|
+
def italic(
|
1224
|
+
text,
|
1225
|
+
css_class = '',
|
1226
|
+
the_id = '',
|
1227
|
+
css_style = ''
|
1228
|
+
)
|
1229
|
+
if css_class.frozen?
|
1230
|
+
css_class = css_class.dup
|
1231
|
+
end
|
1232
|
+
unless css_class.include? 'italic'
|
1233
|
+
# ===================================================================== #
|
1234
|
+
# In this case we will append 'italic'.
|
1235
|
+
# ===================================================================== #
|
1236
|
+
unless css_class.empty?
|
1237
|
+
css_class << ' '
|
1238
|
+
end
|
1239
|
+
css_class << 'italic'
|
1240
|
+
end
|
1241
|
+
ee string_span(
|
1242
|
+
text, css_class, the_id, css_style
|
1243
|
+
)
|
1244
|
+
end
|
1245
|
+
|
1246
|
+
# ========================================================================= #
|
1247
|
+
# === italicbrlem
|
1248
|
+
# ========================================================================= #
|
1249
|
+
def italicbrlem(
|
1250
|
+
text,
|
1251
|
+
css_class = '',
|
1252
|
+
the_id = '',
|
1253
|
+
css_style = ''
|
1254
|
+
)
|
1255
|
+
italicbr(text, css_class+' padl1em', the_id, css_style)
|
1256
|
+
end
|
1257
|
+
|
1258
|
+
# ========================================================================= #
|
1259
|
+
# === italicbr
|
1260
|
+
# ========================================================================= #
|
1261
|
+
def italicbr(
|
1262
|
+
text,
|
1263
|
+
css_class = '',
|
1264
|
+
the_id = '',
|
1265
|
+
css_style = ''
|
1266
|
+
)
|
1267
|
+
italic(text, css_class, the_id, css_style)
|
1268
|
+
br
|
1269
|
+
end
|
1270
|
+
|
1271
|
+
# ========================================================================= #
|
1272
|
+
# === Cyberweb.arrow_right
|
1273
|
+
# ========================================================================= #
|
1274
|
+
def self.arrow_right
|
1275
|
+
'→'
|
1276
|
+
end
|
1277
|
+
|
1278
|
+
# ========================================================================= #
|
1279
|
+
# === Cyberweb.generate_simple_webpage
|
1280
|
+
#
|
1281
|
+
# This ad-hoc method will just generate a .html page with all images
|
1282
|
+
# in this directory.
|
1283
|
+
# ========================================================================= #
|
1284
|
+
def self.generate_simple_webpage(
|
1285
|
+
from_this_directory = Dir.pwd
|
1286
|
+
)
|
1287
|
+
require 'cyberweb/toplevel_methods/images.rb'
|
1288
|
+
all_images = Dir["#{from_this_directory}/*"].select {|entry|
|
1289
|
+
File.file?(entry) and is_this_an_image?(entry)
|
1290
|
+
}
|
1291
|
+
_ = "<html><head><title>Simple Webpage</title></head><body><div>\n\n".dup
|
1292
|
+
_ << "<h2>All the images</h2>\n"
|
1293
|
+
all_images.each {|this_image|
|
1294
|
+
basename = File.basename(this_image)
|
1295
|
+
_ << '<img src="'+basename+'" alt="'+basename.downcase+'">'+"\n"
|
1296
|
+
}
|
1297
|
+
_ << '</div></body></html>'
|
1298
|
+
what = _
|
1299
|
+
into = 'simple_webpage.html'
|
1300
|
+
puts 'Creating the file '+into+' next.'
|
1301
|
+
write_what_into(what, into)
|
1302
|
+
if is_on_roebe?
|
1303
|
+
require 'open'
|
1304
|
+
Open.in_browser(into)
|
1305
|
+
end
|
1306
|
+
end
|
1307
|
+
|
1308
|
+
# ========================================================================= #
|
1309
|
+
# === Cyberweb.return_dataset_without_any_comments
|
1310
|
+
#
|
1311
|
+
# Note that this method will return a String.
|
1312
|
+
# ========================================================================= #
|
1313
|
+
def self.return_dataset_without_any_comments(i)
|
1314
|
+
i = i.split(N).map {|entry|
|
1315
|
+
if entry.include? ' #'
|
1316
|
+
entry = entry[0 .. (entry.index(' #') - 1)]
|
1317
|
+
end
|
1318
|
+
if entry.start_with? '#'
|
1319
|
+
entry = nil
|
1320
|
+
end
|
1321
|
+
entry
|
1322
|
+
}.compact.join(N) # The .compact is necessary since the code may return nil values.
|
1323
|
+
return i
|
1324
|
+
end
|
1325
|
+
|
1326
|
+
# ========================================================================= #
|
1327
|
+
# === Cyberweb.path_to_the_internal_javascript_directory?
|
1328
|
+
# ========================================================================= #
|
1329
|
+
def self.path_to_the_internal_javascript_directory?
|
1330
|
+
Cyberweb.project_base_directory?+'javascript_code/'
|
1331
|
+
end
|
1332
|
+
|
1333
|
+
# ========================================================================= #
|
1334
|
+
# === Cyberweb.try_to_open_this_URL_via_the_browser
|
1335
|
+
#
|
1336
|
+
# Usage example:
|
1337
|
+
#
|
1338
|
+
# Cyberweb.try_to_open_this_URL_via_the_browser(target, USE_THIS_PORT)
|
1339
|
+
#
|
1340
|
+
# ========================================================================= #
|
1341
|
+
def self.try_to_open_this_URL_via_the_browser(
|
1342
|
+
target, use_this_port = '4567'
|
1343
|
+
)
|
1344
|
+
begin
|
1345
|
+
require 'open'
|
1346
|
+
target = "http://localhost:#{use_this_port}/"
|
1347
|
+
if block_given? and (yield == :be_quiet)
|
1348
|
+
else
|
1349
|
+
puts ::Colours.sfancy(target)
|
1350
|
+
end
|
1351
|
+
Thread.new {
|
1352
|
+
Open.in_browser(target) {{ delay: '1.0 seconds' }}
|
1353
|
+
}
|
1354
|
+
rescue LoadError => error
|
1355
|
+
pp error
|
1356
|
+
end
|
1357
|
+
end
|
1358
|
+
|
1359
|
+
# ========================================================================= #
|
1360
|
+
# === Cyberweb.window (window tag)
|
1361
|
+
#
|
1362
|
+
# This method is ultimately just a wrapper over a <div> element with
|
1363
|
+
# a specified width and height setting. It is assumed to be used
|
1364
|
+
# in conjunction with the SimpleWidgets project.
|
1365
|
+
#
|
1366
|
+
# Usage example:
|
1367
|
+
#
|
1368
|
+
# x = Cyberweb.window
|
1369
|
+
#
|
1370
|
+
# ========================================================================= #
|
1371
|
+
def self.window(
|
1372
|
+
optional_title = 'Test',
|
1373
|
+
optional_width = 1024,
|
1374
|
+
optional_height = 800,
|
1375
|
+
options = {} # Additional options. Currently not in use.
|
1376
|
+
)
|
1377
|
+
style_content = 'width: '+optional_width.to_s+'px; height: '+optional_height.to_s+'px;'.dup
|
1378
|
+
# ======================================================================= #
|
1379
|
+
# === Handle Hashes next
|
1380
|
+
# ======================================================================= #
|
1381
|
+
if options.is_a? Hash
|
1382
|
+
# ===================================================================== #
|
1383
|
+
# === :css_style
|
1384
|
+
# ===================================================================== #
|
1385
|
+
if options.has_key? :css_style
|
1386
|
+
style_content << " #{options[:css_style]};".squeeze(';')
|
1387
|
+
end
|
1388
|
+
end
|
1389
|
+
result = '<div style="'+style_content+'">'+"\n"+
|
1390
|
+
'</div>'+"\n"
|
1391
|
+
return result
|
1392
|
+
end
|
1393
|
+
|
1394
|
+
end
|
1395
|
+
|
1396
|
+
if __FILE__ == $PROGRAM_NAME
|
1397
|
+
Cyberweb.generate_simple_webpage
|
1398
|
+
end # webobjectmisc
|