cyberweb 0.12.35
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +6429 -0
- data/bin/cyberweb +27 -0
- data/bin/cyberweb_sanitize +10 -0
- data/bin/download_webpage +7 -0
- data/bin/html_to_cyberweb_converter +7 -0
- data/bin/images_from_this_webpage +11 -0
- data/cyberweb.gemspec +104 -0
- data/doc/README.gen +6367 -0
- data/doc/authors/authors.md +13 -0
- data/doc/configuration/configuration.md +34 -0
- data/doc/cybersprawl/documentation_for_cybersprawl.md +58 -0
- data/doc/deprecations/deprecations.md +412 -0
- data/doc/future_design_goals/future_design_goals.md +32 -0
- data/doc/html_characters/html_characters.md +23 -0
- data/doc/jquery/jquery.md +138 -0
- data/doc/mouse/mouse.md +49 -0
- data/doc/render_web_base/render_web_base.md +53 -0
- data/doc/todo/todo_for_the_cyberweb_project.md +785 -0
- data/examples/README.md +4 -0
- data/examples/advanced/animated_colourful_border/animated_colourful_border.cgi +149 -0
- data/examples/advanced/animated_css_example/animated_css_example.html +47 -0
- data/examples/advanced/animated_submarine/animated_submarine.html +511 -0
- data/examples/advanced/animated_windmill/animated_windmill.html +468 -0
- data/examples/advanced/background_gradient_colour_example/background_gradient_colour_example.cgi +24 -0
- data/examples/advanced/count_down_timer/count_down_timer.cgi +25 -0
- data/examples/advanced/css_grid_example/css_grid_example.cgi +67 -0
- data/examples/advanced/cursor_example/cursor_example.cgi +29 -0
- data/examples/advanced/delayed_update_of_the_body_via_javascript.cgi +41 -0
- data/examples/advanced/drag_all_images/drag_all_images.cgi +33 -0
- data/examples/advanced/draw_circle/draw_circle.cgi +45 -0
- data/examples/advanced/drop_shadow_examples/drop_shadow_examples.cgi +37 -0
- data/examples/advanced/flex_example/flex_example.cgi +53 -0
- data/examples/advanced/games/snake/food.png +0 -0
- data/examples/advanced/games/snake/ground.png +0 -0
- data/examples/advanced/games/snake/snake.cgi +28 -0
- data/examples/advanced/games/tetris/tetris.cgi +7 -0
- data/examples/advanced/games/tetris/tetris.rb +17 -0
- data/examples/advanced/games/tetris/tetris.sinatra +58 -0
- data/examples/advanced/games/tic-tac-toe/tic-tac-toe.cgi +123 -0
- data/examples/advanced/get_some_coffee/get_some_coffee.html +293 -0
- data/examples/advanced/glow_on_hover_example/glow_on_hover_example.cgi +27 -0
- data/examples/advanced/hybrid_experiment.cgi +130 -0
- data/examples/advanced/images/global_css_rules_for_the_images.cgi +32 -0
- data/examples/advanced/larger_image_on_mouse_over_example.cgi +35 -0
- data/examples/advanced/misc/misc.cgi +44 -0
- data/examples/advanced/no_right_click.cgi +26 -0
- data/examples/advanced/objectified_html_tags/objectified_html_tags.cgi +44 -0
- data/examples/advanced/objectified_html_tags/testing_objectified_html_tags_with_the_webobject.cgi +28 -0
- data/examples/advanced/random_background/random_background.cgi +70 -0
- data/examples/advanced/random_glow_effects.cgi +34 -0
- data/examples/advanced/sausage_dog_example/sausage_dog_example.cgi +24 -0
- data/examples/advanced/select_everything_example/select_everything_example.cgi +25 -0
- data/examples/advanced/simple_calculator.cgi +34 -0
- data/examples/advanced/simple_form_example.cgi +38 -0
- data/examples/advanced/text_shadow_example/text_shadow_example.cgi +37 -0
- data/examples/advanced/traffic_light/traffic_light.html +163 -0
- data/examples/advanced/video_related_example/video_related_example.cgi +38 -0
- data/examples/advanced/weather_animation/weather_animation.html +560 -0
- data/examples/advanced/webamp_example/webamp_example.html +12 -0
- data/examples/css/animated_3D_cube_example/animated_3D_cube_example.html +265 -0
- data/examples/css/animated_bird_example/animated_bird_example.html +207 -0
- data/examples/css/animated_border_gradient/animated_border_gradient.html +53 -0
- data/examples/css/animated_border_gradient/animated_border_gradient_via_standalone_box.html +43 -0
- data/examples/css/animated_desk_example/animated_desk_example.html +120 -0
- data/examples/css/animated_dodecahedron_example/animated_dodecahedron_example.html +107 -0
- data/examples/css/animated_dog_example/animated_dog_example.html +432 -0
- data/examples/css/animated_police_box/animated_police_box.html +639 -0
- data/examples/css/animated_solar_system/animated_solar_system.html +168 -0
- data/examples/css/animated_solar_system/css/styles.css +1592 -0
- data/examples/css/animated_solar_system/img/bg-glow.png +0 -0
- data/examples/css/animated_solar_system/img/bg-stars.png +0 -0
- data/examples/css/animated_solar_system/img/p-earth.png +0 -0
- data/examples/css/animated_solar_system/img/p-jupiter.png +0 -0
- data/examples/css/animated_solar_system/img/p-mars.png +0 -0
- data/examples/css/animated_solar_system/img/p-mercury.png +0 -0
- data/examples/css/animated_solar_system/img/p-neptune.png +0 -0
- data/examples/css/animated_solar_system/img/p-saturn.png +0 -0
- data/examples/css/animated_solar_system/img/p-uranus.png +0 -0
- data/examples/css/animated_solar_system/img/p-venus.png +0 -0
- data/examples/css/animated_solar_system/img/sun.png +0 -0
- data/examples/css/animated_solar_system/js/jquery.min.js +4 -0
- data/examples/css/animated_solar_system/js/scripts.js +42 -0
- data/examples/css/animated_solar_system/js/scripts.min.js +1 -0
- data/examples/css/animated_sphere_in_3D/animated_sphere_in_3D.html +107 -0
- data/examples/css/animated_submit_button.html +190 -0
- data/examples/css/animated_text_colour_change/animated_text_colour_change.html +41 -0
- data/examples/css/animations/README.md +2 -0
- data/examples/css/animations/colour_transition_example/colour_transition_example.html +29 -0
- data/examples/css/blooming_flowers_with_falling_leaves/blooming_flowers_with_falling_leaves.html +413 -0
- data/examples/css/blue_border.html +30 -0
- data/examples/css/book_page_flipping_animation/book_page_flipping_animation.html +286 -0
- data/examples/css/border_image_example/border_image_example.html +40 -0
- data/examples/css/box_shadow/box_shadow_example.html +18 -0
- data/examples/css/caret_colour_example.html +22 -0
- data/examples/css/changing_border_colours_animation/changing_border_colours_animation.html +134 -0
- data/examples/css/christmas_snow_globe_animation.html +596 -0
- data/examples/css/css_border_spacing_example.html +69 -0
- data/examples/css/css_bubbles.html +51 -0
- data/examples/css/css_checkboxes_example/css_checkboxes_example.html +110 -0
- data/examples/css/css_clock.html +344 -0
- data/examples/css/css_drag_and_drop.html +85 -0
- data/examples/css/css_grid_feline_style/css_grid_feline_style.html +164 -0
- data/examples/css/css_neon_glow_effects.html +317 -0
- data/examples/css/css_rotate_these_words.html +83 -0
- data/examples/css/css_text_decoration_example.html +70 -0
- data/examples/css/css_thermometer/css_thermometer.html +91 -0
- data/examples/css/css_tooltip/css_tooltip.html +46 -0
- data/examples/css/css_typewriter_example/css_typewriter_example.html +226 -0
- data/examples/css/cyberweb_animated_logo/cyberweb_animated_logo.html +179 -0
- data/examples/css/daily_coffee/daily_coffee.html +1110 -0
- data/examples/css/day_night_toggle/day_night_toggle.html +202 -0
- data/examples/css/different_colour_on_selected_text/different_colour_on_selected_text.html +31 -0
- data/examples/css/differentially_glowing_text_example/differentially_glowing_text_example.html +82 -0
- data/examples/css/dozing_bird_example/dozing_bird_example.html +358 -0
- data/examples/css/editable_boxes_example/editable_boxes_example.html +75 -0
- data/examples/css/examples_with_borders/examples_with_borders.html +33 -0
- data/examples/css/fade_in_and_fade_out_effect.html +66 -0
- data/examples/css/fleeing_dinosaur_animation/fleeing_dinosaur_animation.html +420 -0
- data/examples/css/flexbox_example/flexbox_example.html +39 -0
- data/examples/css/flying_birds_example/flying_birds_example.html +171 -0
- data/examples/css/folding_cards_example/folding_cards_example.html +624 -0
- data/examples/css/font_size_examples.html +42 -0
- data/examples/css/glowing_on_hover_animation/glowing_on_hover_animation.html +90 -0
- data/examples/css/gradient_examples/README.md +5 -0
- data/examples/css/gradient_examples/gradient_examples.cgi +263 -0
- data/examples/css/gradient_examples/gradient_examples.html +40672 -0
- data/examples/css/grow_example.html +31 -0
- data/examples/css/happy_toaster_example/happy_toaster_example.html +830 -0
- data/examples/css/how_to_style_the_title_attribute_of_a_href_tag/how_to_style_the_title_attribute_of_a_href_tag.html +21 -0
- data/examples/css/important_style/important_style.html +35 -0
- data/examples/css/keyboard_example/keyboard_example.html +238 -0
- data/examples/css/landing_on_mars_animation/landing_on_mars_animation.html +374 -0
- data/examples/css/letter_spacing_example.cgi +40 -0
- data/examples/css/lighthouse_example/lighthouse_example.html +1161 -0
- data/examples/css/line_height_example/line_height_example.html +23 -0
- data/examples/css/magic_card/magic_card.html +110 -0
- data/examples/css/meter_example/meter_example.html +31 -0
- data/examples/css/motorcycle_on_the_go/motorcycle_on_the_go.html +227 -0
- data/examples/css/on_hover_glow_effect/on_hover_glow_effect.html +50 -0
- data/examples/css/on_mouse_button_pressed.html +43 -0
- data/examples/css/our_solar_system/our_solar_system.html +441 -0
- data/examples/css/outline/outline_versus_border_example.html +57 -0
- data/examples/css/overflow_example/overflow_example.html +125 -0
- data/examples/css/planet_earth_is_rotating/planet_earth_is_rotating.html +130 -0
- data/examples/css/planet_example/planet_example.html +34 -0
- data/examples/css/planets/planets.html +187 -0
- data/examples/css/polaroid_card_effect_example/polaroid_card_effect_example.html +130 -0
- data/examples/css/progress_bar_examples/progress_bar_examples.html +316 -0
- data/examples/css/responsive_image_gallery/responsive_image_gallery.html +97 -0
- data/examples/css/rotating_DNA/rotating_DNA.html +626 -0
- data/examples/css/rotating_sphere_example/rotating_sphere_example.html +112 -0
- data/examples/css/sausage_dog_example/sausage_dog_example.html +428 -0
- data/examples/css/scale_example/scale_example.html +24 -0
- data/examples/css/shadow_example_in_CSS/shadow_example_in_CSS.cgi +62 -0
- data/examples/css/shaking_shapes_example/shaking_shapes_example.html +133 -0
- data/examples/css/simple_stars_example/simple_stars_example.html +27 -0
- data/examples/css/simpler_css_clock/simpler_css_clock.html +125 -0
- data/examples/css/single_row_glow/single_row_glow.html +91 -0
- data/examples/css/slide_checkbox_example/slide_checkbox_example.html +564 -0
- data/examples/css/slinky_animation/slinky_animation.html +292 -0
- data/examples/css/speak_bubble_quote_example/speak_bubble_quote_example.html +109 -0
- data/examples/css/speedy_truck_example/speedy_truck_example.html +168 -0
- data/examples/css/sticky_div_example/sticky_div_example.html +56 -0
- data/examples/css/stitched_div/stitched_div.html +45 -0
- data/examples/css/sun_and_clouds_animation/sun_and_clouds_animation.html +296 -0
- data/examples/css/swinging_cat/swinging_cat.html +683 -0
- data/examples/css/talking_candles_example/talking_candles_example.html +550 -0
- data/examples/css/text_decoration_underline_example/text_decoration_underline_example.html +62 -0
- data/examples/css/text_stroke_example/text_stroke_example.html +15 -0
- data/examples/css/this_is_a_cat/this_is_a_cat.html +219 -0
- data/examples/css/three_dots_indicating_page_loading/three_dots_indicating_page_loading.html +65 -0
- data/examples/css/twirling_example/twirling_example.html +207 -0
- data/examples/css/user_select_example/user_select_example.html +24 -0
- data/examples/css/vertically_aligned_flexbox_example/vertically_aligned_flexbox_example.html +41 -0
- data/examples/css/walking_cat/walking_cat.html +128 -0
- data/examples/css/water_wave_text_animation_effect/water_wave_text_animation_effect.html +86 -0
- data/examples/csv/README.md +2 -0
- data/examples/csv/sample.csv +10 -0
- data/examples/examples.html +29833 -0
- data/examples/flip_card_example/flip_card_example.html +79 -0
- data/examples/frames/frame_left.html +1 -0
- data/examples/frames/frame_right.html +1 -0
- data/examples/games/README.md +3 -0
- data/examples/games/gamelet/README.md +1 -0
- data/examples/games/gamelet/gamelet.html +43 -0
- data/examples/games/memory_card_game/images/img-1.png +0 -0
- data/examples/games/memory_card_game/images/img-2.png +0 -0
- data/examples/games/memory_card_game/images/img-3.png +0 -0
- data/examples/games/memory_card_game/images/img-4.png +0 -0
- data/examples/games/memory_card_game/images/img-5.png +0 -0
- data/examples/games/memory_card_game/images/img-6.png +0 -0
- data/examples/games/memory_card_game/images/que_icon.svg +3 -0
- data/examples/games/memory_card_game/memory_card_game.html +399 -0
- data/examples/games/snake/images/food.png +0 -0
- data/examples/games/snake/images/ground.png +0 -0
- data/examples/games/snake/snake.html +16 -0
- data/examples/games/snake/snake.js +117 -0
- data/examples/games/tetris/smaller_tetris_game.html +518 -0
- data/examples/games/tetris/tetris.html +461 -0
- data/examples/games/tic-tac-toe/index.js +125 -0
- data/examples/games/tic-tac-toe/tic-tac-toe.html +120 -0
- data/examples/html/MathML/001_show_a_simple_quadratic_equation.html +22 -0
- data/examples/html/MathML/002_simple_equation.html +7 -0
- data/examples/html/MathML/003_function_of_example.html +17 -0
- data/examples/html/MathML/README.md +2 -0
- data/examples/html/README.md +1 -0
- data/examples/html/abbr_example.html +22 -0
- data/examples/html/accordion/README.md +1 -0
- data/examples/html/accordion/accordion.html +56 -0
- data/examples/html/base64_image_example.html +29 -0
- data/examples/html/buttons_example.html +133 -0
- data/examples/html/canvas_drawing_example.html +54 -0
- data/examples/html/colour_wheel.html +1388 -0
- data/examples/html/column_width_example.html +34 -0
- data/examples/html/custom_cursor.html +106 -0
- data/examples/html/cyberweb_logo/README.md +2 -0
- data/examples/html/cyberweb_logo/cyberweb_logo.html +11 -0
- data/examples/html/draggable_paragraph.html +11 -0
- data/examples/html/email_popup_example/email_popup_example.html +175 -0
- data/examples/html/embed_youtube_video/embed_youtube_video.html +10 -0
- data/examples/html/fieldset_example.html +27 -0
- data/examples/html/font_awesome_example_page/font_awesome_example_page.html +26 -0
- data/examples/html/font_examples/README.md +1 -0
- data/examples/html/font_examples/chancery_text.html +19 -0
- data/examples/html/font_examples/fantasy_text.html +19 -0
- data/examples/html/font_examples/georgia_text.html +19 -0
- data/examples/html/font_size_example/font_size_example.html +85 -0
- data/examples/html/frames_example/frames_example.html +7 -0
- data/examples/html/glyph_example/glyph_example.html +42 -0
- data/examples/html/grayscale_filter_example/grayscale_filter_example.html +15 -0
- data/examples/html/hbox_and_vbox_example.html +65 -0
- data/examples/html/href_examples/href_examples.html +30 -0
- data/examples/html/href_in_pre_tag/href_in_pre_tag.html +39 -0
- data/examples/html/html_links_example.html +61 -0
- data/examples/html/html_slider/html_slider.html +39 -0
- data/examples/html/input_autofocus_example.html +20 -0
- data/examples/html/input_placeholder_example.html +15 -0
- data/examples/html/larger_image_on_mouse_over_example.html +30 -0
- data/examples/html/ordered_and_unordered_bulletsin.html +35 -0
- data/examples/html/overriding_CSS_classes_example/overriding_CSS_classes_example.html +97 -0
- data/examples/html/play_audio_example/play_audio_example.html +10 -0
- data/examples/html/play_video_example/play_video_example.html +14 -0
- data/examples/html/readonly_textarea_example/readonly_textarea_example.html +23 -0
- data/examples/html/remote_image_example/remote_image_example.html +16 -0
- data/examples/html/select_everything_on_mouse_click_event/select_everything_on_mouse_click_event.html +38 -0
- data/examples/html/selected_text_appears_in_another_colour_example.html +40 -0
- data/examples/html/send_email_hyperlink/send_email_hyperlink.html +8 -0
- data/examples/html/simple_show_images_example/simple_show_images_example.html +10 -0
- data/examples/html/simple_unordered_list/simple_unordered_list.html +19 -0
- data/examples/html/spin_button_example/spin_button_example.html +16 -0
- data/examples/html/spinner_example/spinner.html +79 -0
- data/examples/html/table_with_header_example/table_with_header_example.html +44 -0
- data/examples/html/test_mkv_codec/test_mkv_codec.html +11 -0
- data/examples/html/testing_the_bdo_tag/testing_the_bdo_tag.html +14 -0
- data/examples/html/the_aside_tag/the_aside_tag.html +18 -0
- data/examples/html/two_columns_flex_example/two_columns_flex_example.html +42 -0
- data/examples/html_template/simple_html_template_example.cgi +39 -0
- data/examples/javascript_and_jquery/README.md +2 -0
- data/examples/javascript_and_jquery/all_in_one_example/all_in_one_example.cgi +50 -0
- data/examples/javascript_and_jquery/array_filter_example/array_filter_exame.html +30 -0
- data/examples/javascript_and_jquery/arrays/arrays_example_in_javascript.html +16 -0
- data/examples/javascript_and_jquery/autocomplete_on_an_input_field/autocomplete_on_an_input_field.html +295 -0
- data/examples/javascript_and_jquery/change_the_background_colour_dynamically/change_the_background_colour_dynamically.html +41 -0
- data/examples/javascript_and_jquery/class_example/class_example.html +24 -0
- data/examples/javascript_and_jquery/copy_to_the_clipboard_example/copy_to_the_clipboard_example.html +80 -0
- data/examples/javascript_and_jquery/delay_example/delay_example.html +46 -0
- data/examples/javascript_and_jquery/drag_support/drag_support.html +37 -0
- data/examples/javascript_and_jquery/embeddable_javascript_calendar/embeddable_javascript_calendar.html +22 -0
- data/examples/javascript_and_jquery/javascript_count_down_timer/javascript_count_down_timer.html +52 -0
- data/examples/javascript_and_jquery/jquery_bubbling_header/bubbling_header.html +109 -0
- data/examples/javascript_and_jquery/jquery_drag_and_drop/drag_and_drop_image_example.html +33 -0
- data/examples/javascript_and_jquery/jquery_showcase/README.md +6 -0
- data/examples/javascript_and_jquery/jquery_showcase/jquery_001.cgi +23 -0
- data/examples/javascript_and_jquery/jquery_showcase/jquery_002.cgi +34 -0
- data/examples/javascript_and_jquery/jquery_showcase/jquery_003.cgi +24 -0
- data/examples/javascript_and_jquery/jquery_showcase/jquery_004.cgi +33 -0
- data/examples/javascript_and_jquery/jquery_showcase/jquery_005.cgi +45 -0
- data/examples/javascript_and_jquery/json_example/json_example.html +23 -0
- data/examples/javascript_and_jquery/local_storage_example/local_storage_example.html +58 -0
- data/examples/javascript_and_jquery/misc/miscallenous_javascript_examples.html +46 -0
- data/examples/javascript_and_jquery/objectified_html_tags/objectified_html_tags.cgi +50 -0
- data/examples/javascript_and_jquery/on_change_event/on_change_event.html +32 -0
- data/examples/javascript_and_jquery/on_click_colour_change/on_click_colour_change.html +31 -0
- data/examples/javascript_and_jquery/on_click_display_random_number/on_click_display_random_number.html +43 -0
- data/examples/javascript_and_jquery/on_click_event_hello_world/on_click_event_hello_world.html +21 -0
- data/examples/javascript_and_jquery/on_mouse_wheel_event/on_mouse_wheel_event.html +37 -0
- data/examples/javascript_and_jquery/on_right_click_show_a_context_menu/on_right_click_show_a_context_menu.html +130 -0
- data/examples/javascript_and_jquery/popup_example/popup_example.html +90 -0
- data/examples/javascript_and_jquery/read_the_content_of_a_local_file/read_the_content_of_a_local_file.html +35 -0
- data/examples/javascript_and_jquery/rgb_to_hex/rgb_to_hex.html +15 -0
- data/examples/javascript_and_jquery/roll_a_die/roll_a_die.html +48 -0
- data/examples/javascript_and_jquery/screen_resolution/screen_resolution.html +31 -0
- data/examples/javascript_and_jquery/select_everything/select_everything.html +14 -0
- data/examples/javascript_and_jquery/show_the_mouse_coordinates/show_the_mouse_coordinates.html +16 -0
- data/examples/javascript_and_jquery/simple_clock_example/simple_clock_example.html +66 -0
- data/examples/javascript_and_jquery/toggle_visibility_of_elements/toggle_visibility_of_elements.html +35 -0
- data/examples/javascript_and_jquery/tutorial/001_hello_world_example/001_hello_world_example.html +16 -0
- data/examples/javascript_and_jquery/tutorial/002_mixed_example/002_mixed_example.html +16 -0
- data/examples/javascript_and_jquery/video_js_example/video_js_example.html +28 -0
- data/examples/javascript_and_jquery/vue/README.md +1 -0
- data/examples/javascript_and_jquery/vue/showcasing_vue.html +80 -0
- data/examples/javascript_and_jquery/write_into_a_file/write_into_a_file.html +38 -0
- data/examples/misc/table_example.rb +37 -0
- data/examples/objectified/webpage_via_objectified_html_tags.rb +13 -0
- data/examples/rack/README.md +4 -0
- data/examples/rack/example_with_html_template.rb +124 -0
- data/examples/rack/example_with_rack_and_cyberweb_showing_how_to_use_images.rb +57 -0
- data/examples/rack/hello_world_example_with_rack.rb +46 -0
- data/examples/rack/lobster.rb +81 -0
- data/examples/rack/rack_env.rb +10 -0
- data/examples/rack/standalone_example.rb +26 -0
- data/examples/show_greek_letters/show_greek_letters.rb +3 -0
- data/examples/simple/input_example_with_coloured_focus.cgi +32 -0
- data/examples/simple/input_type_examples.cgi +51 -0
- data/examples/simple/on_click_event_hello_world.cgi +34 -0
- data/examples/simple/rotate_these_words.cgi +90 -0
- data/examples/simple/show_how_to_set_a_title.rb +7 -0
- data/examples/simple/simple_gradient.cgi +57 -0
- data/examples/simple/toggle_visibility_example/toggle_visibility_example.cgi +36 -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/sinatra/009_save_into_a_local_file_example.rb +82 -0
- data/examples/test/README.md +1 -0
- data/examples/test/test.cgi +99 -0
- data/examples/web_object/simple_web_object_example.cgi +45 -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/REST/README.md +7 -0
- data/lib/cyberweb/REST/base/accept_entry.rb +96 -0
- data/lib/cyberweb/REST/base/application.rb +37 -0
- data/lib/cyberweb/REST/base/bad_request.rb +11 -0
- data/lib/cyberweb/REST/base/base.rb +1131 -0
- data/lib/cyberweb/REST/base/common_logger.rb +35 -0
- data/lib/cyberweb/REST/base/delegator.rb +75 -0
- data/lib/cyberweb/REST/base/error.rb +13 -0
- data/lib/cyberweb/REST/base/extended_rack.rb +65 -0
- data/lib/cyberweb/REST/base/helpers/helpers.rb +475 -0
- data/lib/cyberweb/REST/base/helpers/stream.rb +92 -0
- data/lib/cyberweb/REST/base/mime_type_entry.rb +66 -0
- data/lib/cyberweb/REST/base/not_found.rb +22 -0
- data/lib/cyberweb/REST/base/request.rb +145 -0
- data/lib/cyberweb/REST/base/response.rb +94 -0
- data/lib/cyberweb/REST/base/templates/templates.rb +213 -0
- data/lib/cyberweb/REST/base/wrapper.rb +33 -0
- data/lib/cyberweb/REST/constants.rb +21 -0
- data/lib/cyberweb/REST/main.rb +109 -0
- data/lib/cyberweb/REST/show_exceptions.rb +396 -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 +534 -0
- data/lib/cyberweb/base_module/base_module/base_module.rb +362 -0
- data/lib/cyberweb/base_module/colours/colours.rb +93 -0
- data/lib/cyberweb/base_module/commandline_arguments/commandline_arguments.rb +71 -0
- data/lib/cyberweb/base_module/content_type/content_type.rb +52 -0
- data/lib/cyberweb/base_module/file_related_functionality/file_related_functionality.rb +90 -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 +345 -0
- data/lib/cyberweb/cascading_style_sheets/border.css +364 -0
- data/lib/cyberweb/cascading_style_sheets/code.css +60 -0
- data/lib/cyberweb/cascading_style_sheets/colours.css +514 -0
- data/lib/cyberweb/cascading_style_sheets/css_reset.css +81 -0
- data/lib/cyberweb/cascading_style_sheets/cursors.css +21 -0
- data/lib/cyberweb/cascading_style_sheets/custom/animated_bike.css +198 -0
- data/lib/cyberweb/cascading_style_sheets/default.css +1114 -0
- data/lib/cyberweb/cascading_style_sheets/display.css +158 -0
- data/lib/cyberweb/cascading_style_sheets/div.css +44 -0
- data/lib/cyberweb/cascading_style_sheets/drop_shadow.css +162 -0
- data/lib/cyberweb/cascading_style_sheets/error_404_css_class.css +26 -0
- data/lib/cyberweb/cascading_style_sheets/fonts.css +435 -0
- data/lib/cyberweb/cascading_style_sheets/glow_effects.css +176 -0
- data/lib/cyberweb/cascading_style_sheets/gradient_effects.css +445 -0
- data/lib/cyberweb/cascading_style_sheets/hover.css +4220 -0
- data/lib/cyberweb/cascading_style_sheets/links.css +212 -0
- data/lib/cyberweb/cascading_style_sheets/margin.css +779 -0
- data/lib/cyberweb/cascading_style_sheets/menu.css +40 -0
- data/lib/cyberweb/cascading_style_sheets/message_boxes.css +51 -0
- data/lib/cyberweb/cascading_style_sheets/misc.css +200 -0
- data/lib/cyberweb/cascading_style_sheets/padding.css +443 -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 +50 -0
- data/lib/cyberweb/cascading_style_sheets/shapes.css +62 -0
- data/lib/cyberweb/cascading_style_sheets/template2.css +22 -0
- data/lib/cyberweb/cascading_style_sheets/text_shadow.css +49 -0
- data/lib/cyberweb/cascading_style_sheets/tooltip.css +109 -0
- data/lib/cyberweb/cascading_style_sheets/width.css +303 -0
- data/lib/cyberweb/cgi/README.md +6 -0
- data/lib/cyberweb/cgi/cgi.rb +340 -0
- data/lib/cyberweb/cgi/constants.rb +122 -0
- data/lib/cyberweb/cgi/cookie.rb +218 -0
- data/lib/cyberweb/cgi/core.rb +638 -0
- data/lib/cyberweb/cgi/exceptions.rb +222 -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 +135 -0
- data/lib/cyberweb/cgi/session/memory_store.rb +90 -0
- data/lib/cyberweb/cgi/session/pstore.rb +130 -0
- data/lib/cyberweb/cgi/session.rb +446 -0
- data/lib/cyberweb/cgi/tag_maker.rb +94 -0
- data/lib/cyberweb/cgi/util.rb +239 -0
- data/lib/cyberweb/classes/simple_form.rb +60 -0
- data/lib/cyberweb/classes/tooltips.rb +172 -0
- data/lib/cyberweb/cmd/README.md +2 -0
- data/lib/cyberweb/cmd/cmd.rb +636 -0
- data/lib/cyberweb/coloured_tags/coloured_tags.rb +3099 -0
- data/lib/cyberweb/colours/colour_chart.rb +71 -0
- data/lib/cyberweb/colours/colours.rb +261 -0
- data/lib/cyberweb/commandline/commandline_interface.rb +60 -0
- data/lib/cyberweb/configuration/configuration.rb +93 -0
- data/lib/cyberweb/configuration/load_the_configuration.rb +79 -0
- data/lib/cyberweb/constants/constants.rb +9 -0
- data/lib/cyberweb/constants/http_status_codes.rb +62 -0
- data/lib/cyberweb/constants/misc.rb +524 -0
- data/lib/cyberweb/constants/registered_html_tags.rb +48 -0
- data/lib/cyberweb/constants/user_x.rb +21 -0
- data/lib/cyberweb/controller/README.md +4 -0
- data/lib/cyberweb/controller/controller.rb +50 -0
- data/lib/cyberweb/css_manager/css_manager.rb +229 -0
- data/lib/cyberweb/cybersprawl +1 -0
- data/lib/cyberweb/databases/sqlite.rb +56 -0
- data/lib/cyberweb/debug/debug.rb +74 -0
- data/lib/cyberweb/enable_objectified_html_tags.rb +21 -0
- data/lib/cyberweb/encoding/encoding.rb +124 -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/experimental/README.md +2 -0
- data/lib/cyberweb/experimental/html_template_powered_by_rack.rb +82 -0
- data/lib/cyberweb/experimental/racky.rb +19 -0
- data/lib/cyberweb/foto_gallery/foto_gallery.rb +150 -0
- data/lib/cyberweb/generator/README.md +2 -0
- data/lib/cyberweb/generator/cgi.rb +239 -0
- data/lib/cyberweb/generator/class.rb +25 -0
- data/lib/cyberweb/generator/static_webpage.rb +172 -0
- data/lib/cyberweb/html_tags/README.md +3 -0
- data/lib/cyberweb/html_tags/a.rb +67 -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 +150 -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 +170 -0
- data/lib/cyberweb/html_tags/fieldset.rb +69 -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 +77 -0
- data/lib/cyberweb/html_tags/h2.rb +81 -0
- data/lib/cyberweb/html_tags/h3.rb +60 -0
- data/lib/cyberweb/html_tags/h4.rb +66 -0
- data/lib/cyberweb/html_tags/h5.rb +64 -0
- data/lib/cyberweb/html_tags/h6.rb +60 -0
- data/lib/cyberweb/html_tags/hr.rb +22 -0
- data/lib/cyberweb/html_tags/html_tags.rb +267 -0
- data/lib/cyberweb/html_tags/i.rb +52 -0
- data/lib/cyberweb/html_tags/img.rb +294 -0
- data/lib/cyberweb/html_tags/input.rb +354 -0
- data/lib/cyberweb/html_tags/label.rb +65 -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 +38 -0
- data/lib/cyberweb/html_tags/nav.rb +63 -0
- data/lib/cyberweb/html_tags/object.rb +57 -0
- data/lib/cyberweb/html_tags/ol.rb +57 -0
- data/lib/cyberweb/html_tags/option.rb +64 -0
- data/lib/cyberweb/html_tags/p.rb +88 -0
- data/lib/cyberweb/html_tags/pre.rb +162 -0
- data/lib/cyberweb/html_tags/section.rb +33 -0
- data/lib/cyberweb/html_tags/select.rb +104 -0
- data/lib/cyberweb/html_tags/span.rb +344 -0
- data/lib/cyberweb/html_tags/strong.rb +42 -0
- data/lib/cyberweb/html_tags/table.rb +284 -0
- data/lib/cyberweb/html_tags/tbody.rb +26 -0
- data/lib/cyberweb/html_tags/td.rb +212 -0
- data/lib/cyberweb/html_tags/textarea.rb +173 -0
- data/lib/cyberweb/html_tags/th.rb +70 -0
- data/lib/cyberweb/html_tags/thead.rb +41 -0
- data/lib/cyberweb/html_tags/tr.rb +99 -0
- data/lib/cyberweb/html_tags/ul.rb +51 -0
- data/lib/cyberweb/html_template/html_template.rb +7035 -0
- data/lib/cyberweb/images/background_images/README.md +2 -0
- data/lib/cyberweb/images/background_images/paper.gif +0 -0
- data/lib/cyberweb/images/background_images/parchment1.gif +0 -0
- data/lib/cyberweb/images/background_images/parchment2.gif +0 -0
- data/lib/cyberweb/images/embed_this_image.rb +39 -0
- data/lib/cyberweb/images/images.rb +58 -0
- data/lib/cyberweb/images/path_to_images.rb +64 -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/standard_images/ADMIN.png +0 -0
- data/lib/cyberweb/images/standard_images/AMBULANZ.png +0 -0
- data/lib/cyberweb/images/standard_images/ANGRY_SMILEY.png +0 -0
- data/lib/cyberweb/images/standard_images/APPROVE.png +0 -0
- data/lib/cyberweb/images/standard_images/ARROW_LEFT.png +0 -0
- data/lib/cyberweb/images/standard_images/ARROW_RIGHT.png +0 -0
- data/lib/cyberweb/images/standard_images/ARROW_TOOLTIP.gif +0 -0
- data/lib/cyberweb/images/standard_images/AUSRUFUNGSZEICHEN.png +0 -0
- data/lib/cyberweb/images/standard_images/AUSRUFUNGSZEICHEN2.png +0 -0
- data/lib/cyberweb/images/standard_images/AUSRUFUNGSZEICHEN3.png +0 -0
- data/lib/cyberweb/images/standard_images/AUSRUFUNGSZEICHEN4.png +0 -0
- data/lib/cyberweb/images/standard_images/AUSTRIA_FAHNE.jpg +0 -0
- data/lib/cyberweb/images/standard_images/AWARD.png +0 -0
- data/lib/cyberweb/images/standard_images/AXE.png +0 -0
- data/lib/cyberweb/images/standard_images/BACKUP_IMAGE.png +0 -0
- data/lib/cyberweb/images/standard_images/BAGGER.png +0 -0
- data/lib/cyberweb/images/standard_images/BARS.gif +0 -0
- data/lib/cyberweb/images/standard_images/BEGINNER.jpg +0 -0
- data/lib/cyberweb/images/standard_images/BEWERTUNG_1.png +0 -0
- data/lib/cyberweb/images/standard_images/BEWERTUNG_2.png +0 -0
- data/lib/cyberweb/images/standard_images/BEWERTUNG_3.png +0 -0
- data/lib/cyberweb/images/standard_images/BEWERTUNG_4.png +0 -0
- data/lib/cyberweb/images/standard_images/BEWERTUNG_5.png +0 -0
- data/lib/cyberweb/images/standard_images/BEWERTUNG_6.png +0 -0
- data/lib/cyberweb/images/standard_images/BIG_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/BIKE.png +0 -0
- data/lib/cyberweb/images/standard_images/BIO.png +0 -0
- data/lib/cyberweb/images/standard_images/BIOS.gif +0 -0
- data/lib/cyberweb/images/standard_images/BLOB.png +0 -0
- data/lib/cyberweb/images/standard_images/BLOG.png +0 -0
- data/lib/cyberweb/images/standard_images/BLUEARROW.png +0 -0
- data/lib/cyberweb/images/standard_images/BLUE_HEAD.gif +0 -0
- data/lib/cyberweb/images/standard_images/BLUE_PILL.png +0 -0
- data/lib/cyberweb/images/standard_images/BLUME.png +0 -0
- data/lib/cyberweb/images/standard_images/BOHRER.png +0 -0
- data/lib/cyberweb/images/standard_images/BOOK_CLOSED.png +0 -0
- data/lib/cyberweb/images/standard_images/BOOK_OPENED.png +0 -0
- data/lib/cyberweb/images/standard_images/BUBBLE.png +0 -0
- data/lib/cyberweb/images/standard_images/BUECHER.jpg +0 -0
- data/lib/cyberweb/images/standard_images/BUERO_KLAMMER.png +0 -0
- data/lib/cyberweb/images/standard_images/BUSINESS.png +0 -0
- data/lib/cyberweb/images/standard_images/BUTTON1.gif +0 -0
- data/lib/cyberweb/images/standard_images/CAMERA.png +0 -0
- data/lib/cyberweb/images/standard_images/CAT.png +0 -0
- data/lib/cyberweb/images/standard_images/CAUTION.png +0 -0
- data/lib/cyberweb/images/standard_images/CHAOTIC_IMAGE.png +0 -0
- data/lib/cyberweb/images/standard_images/CHECKBOX_OFF.png +0 -0
- data/lib/cyberweb/images/standard_images/CHECKBOX_ON.png +0 -0
- data/lib/cyberweb/images/standard_images/CHEERING_PERSON.png +0 -0
- data/lib/cyberweb/images/standard_images/CLOSED.png +0 -0
- data/lib/cyberweb/images/standard_images/COMMAND_ICO.png +0 -0
- data/lib/cyberweb/images/standard_images/COMPLEX.png +0 -0
- data/lib/cyberweb/images/standard_images/COMPONENTS.png +0 -0
- data/lib/cyberweb/images/standard_images/COMPUTER.png +0 -0
- data/lib/cyberweb/images/standard_images/CONNECTED.png +0 -0
- data/lib/cyberweb/images/standard_images/CONTACT.png +0 -0
- data/lib/cyberweb/images/standard_images/COPY.png +0 -0
- data/lib/cyberweb/images/standard_images/CSS.png +0 -0
- data/lib/cyberweb/images/standard_images/CURSOR.png +0 -0
- data/lib/cyberweb/images/standard_images/CUTE_BUBBA.png +0 -0
- data/lib/cyberweb/images/standard_images/CUTE_MOUSE.png +0 -0
- data/lib/cyberweb/images/standard_images/DEVELOP.png +0 -0
- data/lib/cyberweb/images/standard_images/DIAMOND_SHELL.png +0 -0
- data/lib/cyberweb/images/standard_images/DIE_PERFEKTE_AUSBILDUNG.png +0 -0
- data/lib/cyberweb/images/standard_images/DOCUMENTATION.png +0 -0
- data/lib/cyberweb/images/standard_images/DOKUMENT.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_01.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_02.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_03.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_04.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_05.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_06.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_07.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_08.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_09.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_10.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_11.png +0 -0
- data/lib/cyberweb/images/standard_images/DOT_12.png +0 -0
- data/lib/cyberweb/images/standard_images/DOWNLOAD.png +0 -0
- data/lib/cyberweb/images/standard_images/DOWNLOAD2.png +0 -0
- data/lib/cyberweb/images/standard_images/DOWNLOAD_PACKAGE.png +0 -0
- data/lib/cyberweb/images/standard_images/DUCK.png +0 -0
- data/lib/cyberweb/images/standard_images/DUCKY.png +0 -0
- data/lib/cyberweb/images/standard_images/EINKAUFSKORB.png +0 -0
- data/lib/cyberweb/images/standard_images/EINKAUFSWAGEN.png +0 -0
- data/lib/cyberweb/images/standard_images/ELLIPSE.png +0 -0
- data/lib/cyberweb/images/standard_images/EMAIL_FANCY.png +0 -0
- data/lib/cyberweb/images/standard_images/EMAIL_FAVICON.png +0 -0
- data/lib/cyberweb/images/standard_images/EMAIL_FAVICON.xpm +176 -0
- data/lib/cyberweb/images/standard_images/ENGLISH.jpg +0 -0
- data/lib/cyberweb/images/standard_images/ERRORS.png +0 -0
- data/lib/cyberweb/images/standard_images/EURO.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/01_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/02_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/03_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/04_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/05_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/0x_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/1x_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/2x_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/3x_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EVAL/4x_STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/EXTERNAL_LINK.png +0 -0
- data/lib/cyberweb/images/standard_images/EYE.png +0 -0
- data/lib/cyberweb/images/standard_images/FAQ.png +0 -0
- data/lib/cyberweb/images/standard_images/FERNGLAS.png +0 -0
- data/lib/cyberweb/images/standard_images/FLOWER_1.png +0 -0
- data/lib/cyberweb/images/standard_images/FLOWER_2.png +0 -0
- data/lib/cyberweb/images/standard_images/FLUGZEUG1.jpg +0 -0
- data/lib/cyberweb/images/standard_images/FOLDER.png +0 -0
- data/lib/cyberweb/images/standard_images/FORK.png +0 -0
- data/lib/cyberweb/images/standard_images/FORUM.png +0 -0
- data/lib/cyberweb/images/standard_images/FOTOAPPARAT.png +0 -0
- data/lib/cyberweb/images/standard_images/FOTO_FAVICON.png +0 -0
- data/lib/cyberweb/images/standard_images/FRAGEZEICHEN.jpg +0 -0
- data/lib/cyberweb/images/standard_images/FTP.png +0 -0
- data/lib/cyberweb/images/standard_images/FUNNY_ELEPHANT.png +0 -0
- data/lib/cyberweb/images/standard_images/FUSSBALL.png +0 -0
- data/lib/cyberweb/images/standard_images/F/303/204CHER.png +0 -0
- data/lib/cyberweb/images/standard_images/GATEWAY.png +0 -0
- data/lib/cyberweb/images/standard_images/GB.jpg +0 -0
- data/lib/cyberweb/images/standard_images/GENDER_ICON_FEMALE.png +0 -0
- data/lib/cyberweb/images/standard_images/GENDER_ICON_MALE.png +0 -0
- data/lib/cyberweb/images/standard_images/GERMANY_FLAG.png +0 -0
- data/lib/cyberweb/images/standard_images/GERSTE.png +0 -0
- data/lib/cyberweb/images/standard_images/GESCHENKBOX.png +0 -0
- data/lib/cyberweb/images/standard_images/GET_HELP.png +0 -0
- data/lib/cyberweb/images/standard_images/GITARRE.png +0 -0
- data/lib/cyberweb/images/standard_images/GOOGLE.png +0 -0
- data/lib/cyberweb/images/standard_images/GORILLA.gif +0 -0
- data/lib/cyberweb/images/standard_images/GOTHIC_SPACER.png +0 -0
- data/lib/cyberweb/images/standard_images/GRADIENT_FILL.gif +0 -0
- data/lib/cyberweb/images/standard_images/GRAFIK_SMALL.png +0 -0
- data/lib/cyberweb/images/standard_images/GRID_LAYOUT.gif +0 -0
- data/lib/cyberweb/images/standard_images/GRINSEN.jpg +0 -0
- data/lib/cyberweb/images/standard_images/GUN.png +0 -0
- data/lib/cyberweb/images/standard_images/HAKEN.png +0 -0
- data/lib/cyberweb/images/standard_images/HALLOWEEN.png +0 -0
- data/lib/cyberweb/images/standard_images/HAMMER.png +0 -0
- data/lib/cyberweb/images/standard_images/HANGING_MONKEY.png +0 -0
- data/lib/cyberweb/images/standard_images/HANG_MAN.png +0 -0
- data/lib/cyberweb/images/standard_images/HAPPY_BIRD.png +0 -0
- data/lib/cyberweb/images/standard_images/HAPPY_SMILEY.png +0 -0
- data/lib/cyberweb/images/standard_images/HDD_EMPTY.png +0 -0
- data/lib/cyberweb/images/standard_images/HDD_FULL.png +0 -0
- data/lib/cyberweb/images/standard_images/HDD_HALF.png +0 -0
- data/lib/cyberweb/images/standard_images/HDD_ONEFOURTH.png +0 -0
- data/lib/cyberweb/images/standard_images/HDD_THREEEIGHT.png +0 -0
- data/lib/cyberweb/images/standard_images/HDD_THREEFOURTH.png +0 -0
- data/lib/cyberweb/images/standard_images/HEART.png +0 -0
- data/lib/cyberweb/images/standard_images/HELP.png +0 -0
- data/lib/cyberweb/images/standard_images/HOME.gif +0 -0
- data/lib/cyberweb/images/standard_images/HONIG.jpg +0 -0
- data/lib/cyberweb/images/standard_images/HTML40.png +0 -0
- data/lib/cyberweb/images/standard_images/HUHN.gif +0 -0
- data/lib/cyberweb/images/standard_images/HUMAN.gif +0 -0
- data/lib/cyberweb/images/standard_images/ICONS_COLLECTION1.gif +0 -0
- data/lib/cyberweb/images/standard_images/ICONS_COLLECTION2.png +0 -0
- data/lib/cyberweb/images/standard_images/ICOSAHEDRON.jpg +0 -0
- data/lib/cyberweb/images/standard_images/IE.jpg +0 -0
- data/lib/cyberweb/images/standard_images/IMPORTANT_ARROW_LEFT.jpg +0 -0
- data/lib/cyberweb/images/standard_images/INTERNAL_LINKS.png +0 -0
- data/lib/cyberweb/images/standard_images/IPAD.png +0 -0
- data/lib/cyberweb/images/standard_images/ITEM.png +0 -0
- data/lib/cyberweb/images/standard_images/KAFFEE.png +0 -0
- data/lib/cyberweb/images/standard_images/KARMA.png +0 -0
- data/lib/cyberweb/images/standard_images/KEYS.png +0 -0
- data/lib/cyberweb/images/standard_images/KLEBSTOFF.png +0 -0
- data/lib/cyberweb/images/standard_images/KLEE_BLATT.png +0 -0
- data/lib/cyberweb/images/standard_images/KNIFE01.png +0 -0
- data/lib/cyberweb/images/standard_images/LARGER_COMPUTER.png +0 -0
- data/lib/cyberweb/images/standard_images/LCD.png +0 -0
- data/lib/cyberweb/images/standard_images/LEAF.png +0 -0
- data/lib/cyberweb/images/standard_images/LEAF2.png +0 -0
- data/lib/cyberweb/images/standard_images/LEFT_RIGHT_PFEIL.png +0 -0
- data/lib/cyberweb/images/standard_images/LENS.png +0 -0
- data/lib/cyberweb/images/standard_images/LEXIKON1.jpg +0 -0
- data/lib/cyberweb/images/standard_images/LOCK.png +0 -0
- data/lib/cyberweb/images/standard_images/LOSER.gif +0 -0
- data/lib/cyberweb/images/standard_images/LUPE.gif +0 -0
- data/lib/cyberweb/images/standard_images/MANTIS.png +0 -0
- data/lib/cyberweb/images/standard_images/MAXERL.png +0 -0
- data/lib/cyberweb/images/standard_images/MESSAGE_BOX_ERROR.png +0 -0
- data/lib/cyberweb/images/standard_images/MESSAGE_BOX_INFO.png +0 -0
- data/lib/cyberweb/images/standard_images/MESSAGE_BOX_SUCCESS.png +0 -0
- data/lib/cyberweb/images/standard_images/MESSAGE_BOX_WARNING.png +0 -0
- data/lib/cyberweb/images/standard_images/MICROSOFT.png +0 -0
- data/lib/cyberweb/images/standard_images/MINE.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_BAUM1.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_BAUM2.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_BAUM3.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_BAUM4.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_BAUM5.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_BAUM6.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_CUBE.png +0 -0
- data/lib/cyberweb/images/standard_images/MINI_DOT.png +0 -0
- data/lib/cyberweb/images/standard_images/MINUS.png +0 -0
- data/lib/cyberweb/images/standard_images/MONEY.png +0 -0
- data/lib/cyberweb/images/standard_images/MOUSE.png +0 -0
- data/lib/cyberweb/images/standard_images/MUSIK_NOTE.png +0 -0
- data/lib/cyberweb/images/standard_images/NAGEL.jpg +0 -0
- data/lib/cyberweb/images/standard_images/NASHORN.png +0 -0
- data/lib/cyberweb/images/standard_images/NEW.png +0 -0
- data/lib/cyberweb/images/standard_images/NEWS.png +0 -0
- data/lib/cyberweb/images/standard_images/NOBODY.png +0 -0
- data/lib/cyberweb/images/standard_images/NOTE.png +0 -0
- data/lib/cyberweb/images/standard_images/NOTEPAD.png +0 -0
- data/lib/cyberweb/images/standard_images/NOTIZ.png +0 -0
- data/lib/cyberweb/images/standard_images/NO_PATENTS.png +0 -0
- data/lib/cyberweb/images/standard_images/OBSOLETE.png +0 -0
- data/lib/cyberweb/images/standard_images/OFFICIAL_HOME.png +0 -0
- data/lib/cyberweb/images/standard_images/PDF.png +0 -0
- data/lib/cyberweb/images/standard_images/PERGAMENT_TILER1.jpg +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL1.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL10.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL11.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL12.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL2.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL3.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL4.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL5.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL6.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL6_red.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL7.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL8_OUT.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL9.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL_LINKS_OBEN.png +0 -0
- data/lib/cyberweb/images/standard_images/PFEIL_VERTICAL.png +0 -0
- data/lib/cyberweb/images/standard_images/PHONE.png +0 -0
- data/lib/cyberweb/images/standard_images/PHP_FORUM.jpg +0 -0
- data/lib/cyberweb/images/standard_images/PIN.png +0 -0
- data/lib/cyberweb/images/standard_images/PIN_POINTER_RED.png +0 -0
- data/lib/cyberweb/images/standard_images/PIPETTE.png +0 -0
- data/lib/cyberweb/images/standard_images/PLUS.png +0 -0
- data/lib/cyberweb/images/standard_images/POSAUNE.png +0 -0
- data/lib/cyberweb/images/standard_images/PRESENT.png +0 -0
- data/lib/cyberweb/images/standard_images/PRINT.png +0 -0
- data/lib/cyberweb/images/standard_images/PRINTER.png +0 -0
- data/lib/cyberweb/images/standard_images/PROTOKOLL.png +0 -0
- data/lib/cyberweb/images/standard_images/QUADRAT01.png +0 -0
- data/lib/cyberweb/images/standard_images/QUOTE.png +0 -0
- data/lib/cyberweb/images/standard_images/RADIO_ACTIVE.png +0 -0
- data/lib/cyberweb/images/standard_images/RAINBOW_CIRCLE.png +0 -0
- data/lib/cyberweb/images/standard_images/RED_PILL.png +0 -0
- data/lib/cyberweb/images/standard_images/RIP.png +0 -0
- data/lib/cyberweb/images/standard_images/ROBERT.png +0 -0
- data/lib/cyberweb/images/standard_images/ROCKET.png +0 -0
- data/lib/cyberweb/images/standard_images/ROSE.png +0 -0
- data/lib/cyberweb/images/standard_images/ROSE2.png +0 -0
- data/lib/cyberweb/images/standard_images/RUNNING.png +0 -0
- data/lib/cyberweb/images/standard_images/SAVE.png +0 -0
- data/lib/cyberweb/images/standard_images/SCANNER.png +0 -0
- data/lib/cyberweb/images/standard_images/SCHERE.png +0 -0
- data/lib/cyberweb/images/standard_images/SCHNEEMANN.png +0 -0
- data/lib/cyberweb/images/standard_images/SCISSORS.png +0 -0
- data/lib/cyberweb/images/standard_images/SHOPPING.png +0 -0
- data/lib/cyberweb/images/standard_images/SKULL.png +0 -0
- data/lib/cyberweb/images/standard_images/SMALL_CAT.png +0 -0
- data/lib/cyberweb/images/standard_images/SMALL_DOCUMENT.png +0 -0
- data/lib/cyberweb/images/standard_images/SMALL_HOUSE.png +0 -0
- data/lib/cyberweb/images/standard_images/SMALL_PLANE.png +0 -0
- data/lib/cyberweb/images/standard_images/SMILEY1.png +0 -0
- data/lib/cyberweb/images/standard_images/SMILEY2.png +0 -0
- data/lib/cyberweb/images/standard_images/SMILEY3.png +0 -0
- data/lib/cyberweb/images/standard_images/SMILEY4.png +0 -0
- data/lib/cyberweb/images/standard_images/SMILEY5.png +0 -0
- data/lib/cyberweb/images/standard_images/SNAIL.png +0 -0
- data/lib/cyberweb/images/standard_images/SNOWFLAKE.png +0 -0
- data/lib/cyberweb/images/standard_images/SPACER.png +0 -0
- data/lib/cyberweb/images/standard_images/SPECIAL_PFEIL.png +0 -0
- data/lib/cyberweb/images/standard_images/SPIDERMAN_HEAD.png +0 -0
- data/lib/cyberweb/images/standard_images/SPIRAL_CROSS.png +0 -0
- data/lib/cyberweb/images/standard_images/SPOON.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_BLACK.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_BLUE.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_CADETBLUE.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_CHAOS.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_DARKGOLDENROD.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_GREEN.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_GREY.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_RED.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_VIOLET.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_WHITE.png +0 -0
- data/lib/cyberweb/images/standard_images/SQUARE_YEL.png +0 -0
- data/lib/cyberweb/images/standard_images/STANDARDS_FAVICON.png +0 -0
- data/lib/cyberweb/images/standard_images/STAR.png +0 -0
- data/lib/cyberweb/images/standard_images/STAR_FANCY.png +0 -0
- data/lib/cyberweb/images/standard_images/STATUS_IN_PROGRESS.png +0 -0
- data/lib/cyberweb/images/standard_images/STD_COLOURS.png +0 -0
- data/lib/cyberweb/images/standard_images/SUN.png +0 -0
- data/lib/cyberweb/images/standard_images/SYMBOL_FRAU.png +0 -0
- data/lib/cyberweb/images/standard_images/SYMBOL_MANN.png +0 -0
- data/lib/cyberweb/images/standard_images/SYNC.png +0 -0
- data/lib/cyberweb/images/standard_images/TASCHENLAMPE.jpg +0 -0
- data/lib/cyberweb/images/standard_images/TASTATUR.png +0 -0
- data/lib/cyberweb/images/standard_images/TECHNICOLOR_TWIRL.png +0 -0
- data/lib/cyberweb/images/standard_images/TELEFON.png +0 -0
- data/lib/cyberweb/images/standard_images/TEST.bmp +0 -0
- data/lib/cyberweb/images/standard_images/TEUFELCHEN.png +0 -0
- data/lib/cyberweb/images/standard_images/THERMOMETER.png +0 -0
- data/lib/cyberweb/images/standard_images/THINKING_HUMAN.png +0 -0
- data/lib/cyberweb/images/standard_images/TODO.jpg +0 -0
- data/lib/cyberweb/images/standard_images/TODO.png +0 -0
- data/lib/cyberweb/images/standard_images/TOOLS.png +0 -0
- data/lib/cyberweb/images/standard_images/TRANSPORT.png +0 -0
- data/lib/cyberweb/images/standard_images/TRIANGLE.png +0 -0
- data/lib/cyberweb/images/standard_images/TURM.png +0 -0
- data/lib/cyberweb/images/standard_images/UHR.png +0 -0
- data/lib/cyberweb/images/standard_images/UPLOAD2.png +0 -0
- data/lib/cyberweb/images/standard_images/USB_CONNECTION_DEVICE.png +0 -0
- data/lib/cyberweb/images/standard_images/VALID_CSS.jpg +0 -0
- data/lib/cyberweb/images/standard_images/VALID_HTML.jpg +0 -0
- data/lib/cyberweb/images/standard_images/VIDEOCAMERA.png +0 -0
- data/lib/cyberweb/images/standard_images/VOGEL.png +0 -0
- data/lib/cyberweb/images/standard_images/VS_TCPA.gif +0 -0
- data/lib/cyberweb/images/standard_images/WARNSCHILD.png +0 -0
- data/lib/cyberweb/images/standard_images/WEBSERVER.png +0 -0
- data/lib/cyberweb/images/standard_images/WECKER.jpg +0 -0
- data/lib/cyberweb/images/standard_images/WINGS.png +0 -0
- data/lib/cyberweb/images/standard_images/WORD.png +0 -0
- data/lib/cyberweb/images/standard_images/WURZEL_ZEICHEN.png +0 -0
- data/lib/cyberweb/images/standard_images/YIN_YANG.png +0 -0
- data/lib/cyberweb/images/standard_images/Yin__Yang.gif +0 -0
- data/lib/cyberweb/images/standard_images/ZAHNRAD.png +0 -0
- data/lib/cyberweb/images/standard_images/ZAUBERHUT.png +0 -0
- data/lib/cyberweb/images/standard_images/ZITRONE.png +0 -0
- data/lib/cyberweb/images/standard_images/ZURUECK.jpg +0 -0
- data/lib/cyberweb/images/standard_images/blue_gallery.png +0 -0
- data/lib/cyberweb/images/standard_images/checked_checkbox.png +0 -0
- data/lib/cyberweb/images/standard_images/chk_off.png +0 -0
- data/lib/cyberweb/images/standard_images/chk_on.png +0 -0
- data/lib/cyberweb/images/standard_images/outdated.png +0 -0
- data/lib/cyberweb/images/standard_images/rdo_off.png +0 -0
- data/lib/cyberweb/images/standard_images/rdo_on.png +0 -0
- data/lib/cyberweb/images/standard_images/round_checked_checkbox.png +0 -0
- data/lib/cyberweb/images/standard_images/simple_camera.png +0 -0
- data/lib/cyberweb/images/standard_images/sneaky_ninja_face.png +0 -0
- data/lib/cyberweb/images/standard_images/standard_images.html +31644 -0
- data/lib/cyberweb/images/standard_images/text_editor.png +0 -0
- data/lib/cyberweb/images/standard_images/windows_key.png +0 -0
- data/lib/cyberweb/images/standard_images/zoom.png +0 -0
- data/lib/cyberweb/images/string_image.rb +402 -0
- data/lib/cyberweb/images_base64_encoded/404_ERROR.png.md +1 -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/SIX_SIDED_DICE.png.md +1 -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/information/README.md +2 -0
- data/lib/cyberweb/information/information.cgi +23 -0
- data/lib/cyberweb/javascript/drag_and_drop.rb +108 -0
- data/lib/cyberweb/javascript/dragula_collection.rb +54 -0
- data/lib/cyberweb/javascript/javascript.rb +259 -0
- data/lib/cyberweb/javascript/javascript_bundle.rb +223 -0
- data/lib/cyberweb/javascript/javascript_clock.rb +162 -0
- data/lib/cyberweb/javascript/javascript_helper/javascript_helper.rb +59 -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 +34 -0
- data/lib/cyberweb/javascript/on_click_change_opacity.rb +103 -0
- data/lib/cyberweb/javascript/on_click_hide.rb +65 -0
- data/lib/cyberweb/javascript/popup.rb +83 -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 +31 -0
- data/lib/cyberweb/javascript/return_javascript.rb +48 -0
- data/lib/cyberweb/javascript/snoweffect.rb +122 -0
- data/lib/cyberweb/javascript_code/README.md +6 -0
- data/lib/cyberweb/javascript_code/a_simple_clock.js +57 -0
- data/lib/cyberweb/javascript_code/chmod_displayer.js +74 -0
- data/lib/cyberweb/javascript_code/copy_to_the_clipboard.js +12 -0
- data/lib/cyberweb/javascript_code/custom_functions.js +698 -0
- data/lib/cyberweb/javascript_code/disable_right_click.js +5 -0
- data/lib/cyberweb/javascript_code/games/snake.js +113 -0
- data/lib/cyberweb/javascript_code/games/tetris.js +491 -0
- data/lib/cyberweb/javascript_code/games/tic-tac-toe.js +125 -0
- data/lib/cyberweb/javascript_code/html_colours.js +149 -0
- data/lib/cyberweb/javascript_code/jquery/jquery-3.7.0.js +10704 -0
- data/lib/cyberweb/javascript_code/jquery/jquery-ui-1.12.1.js +18706 -0
- data/lib/cyberweb/javascript_code/math.js +18 -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/select_everything_on_mouse_click_event.js +23 -0
- data/lib/cyberweb/javascript_code/simple_calculator.js +15 -0
- data/lib/cyberweb/javascript_code/simulate_a_dice.js +28 -0
- data/lib/cyberweb/javascript_code/sleep.js +6 -0
- data/lib/cyberweb/javascript_code/to_celsius.js +8 -0
- data/lib/cyberweb/jquery_module/jquery_module.rb +57 -0
- data/lib/cyberweb/modules/css_style.rb +29 -0
- data/lib/cyberweb/modules/favicon.rb +326 -0
- data/lib/cyberweb/mouse/README.md +3 -0
- data/lib/cyberweb/mouse/libxdo.rb +321 -0
- data/lib/cyberweb/mouse/mouse.rb +267 -0
- data/lib/cyberweb/objectified/html_tags/README.md +14 -0
- data/lib/cyberweb/objectified/html_tags/a.rb +75 -0
- data/lib/cyberweb/objectified/html_tags/abbr.rb +84 -0
- data/lib/cyberweb/objectified/html_tags/audio.rb +77 -0
- data/lib/cyberweb/objectified/html_tags/base.rb +1211 -0
- data/lib/cyberweb/objectified/html_tags/blockquote.rb +92 -0
- data/lib/cyberweb/objectified/html_tags/body.rb +129 -0
- data/lib/cyberweb/objectified/html_tags/button.rb +112 -0
- data/lib/cyberweb/objectified/html_tags/canvas.rb +159 -0
- data/lib/cyberweb/objectified/html_tags/cite.rb +76 -0
- data/lib/cyberweb/objectified/html_tags/div.rb +206 -0
- data/lib/cyberweb/objectified/html_tags/embed.rb +111 -0
- data/lib/cyberweb/objectified/html_tags/fieldset.rb +95 -0
- data/lib/cyberweb/objectified/html_tags/figure.rb +117 -0
- data/lib/cyberweb/objectified/html_tags/form.rb +116 -0
- data/lib/cyberweb/objectified/html_tags/h1.rb +128 -0
- data/lib/cyberweb/objectified/html_tags/h2.rb +75 -0
- data/lib/cyberweb/objectified/html_tags/h3.rb +71 -0
- data/lib/cyberweb/objectified/html_tags/h4.rb +75 -0
- data/lib/cyberweb/objectified/html_tags/h5.rb +75 -0
- data/lib/cyberweb/objectified/html_tags/h6.rb +74 -0
- data/lib/cyberweb/objectified/html_tags/head.rb +137 -0
- data/lib/cyberweb/objectified/html_tags/img.rb +182 -0
- data/lib/cyberweb/objectified/html_tags/input.rb +168 -0
- data/lib/cyberweb/objectified/html_tags/map.rb +86 -0
- data/lib/cyberweb/objectified/html_tags/meta.rb +85 -0
- data/lib/cyberweb/objectified/html_tags/object.rb +102 -0
- data/lib/cyberweb/objectified/html_tags/p.rb +73 -0
- data/lib/cyberweb/objectified/html_tags/pre.rb +80 -0
- data/lib/cyberweb/objectified/html_tags/progress.rb +152 -0
- data/lib/cyberweb/objectified/html_tags/select.rb +129 -0
- data/lib/cyberweb/objectified/html_tags/span.rb +95 -0
- data/lib/cyberweb/objectified/html_tags/style.rb +91 -0
- data/lib/cyberweb/objectified/html_tags/table.rb +229 -0
- data/lib/cyberweb/objectified/html_tags/textarea.rb +123 -0
- data/lib/cyberweb/objectified/html_tags/title.rb +61 -0
- data/lib/cyberweb/objectified/html_tags/ul.rb +86 -0
- data/lib/cyberweb/objectified/shorter_helper_methods/shorter_helper_methods.rb +620 -0
- data/lib/cyberweb/objectified/web_object/README.md +4 -0
- data/lib/cyberweb/objectified/web_object/web_object.rb +120 -0
- data/lib/cyberweb/predefined_and_freeform_methods/README.md +1 -0
- data/lib/cyberweb/predefined_and_freeform_methods/frage.rb +47 -0
- data/lib/cyberweb/predefined_and_freeform_methods/hash_registered_extra_tags.rb +35 -0
- data/lib/cyberweb/predefined_and_freeform_methods/header.rb +83 -0
- data/lib/cyberweb/predefined_and_freeform_methods/predefined_methods.rb +136 -0
- data/lib/cyberweb/project/project.rb +82 -0
- data/lib/cyberweb/rack/README.md +1 -0
- data/lib/cyberweb/rack/request.rb +31 -0
- data/lib/cyberweb/raw_images/404.png +0 -0
- data/lib/cyberweb/raw_images/500.png +0 -0
- data/lib/cyberweb/raw_images/README.md +2 -0
- data/lib/cyberweb/raw_images/a_dice.png +0 -0
- data/lib/cyberweb/raw_images/food.png +0 -0
- data/lib/cyberweb/raw_images/ground.png +0 -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_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 +41 -0
- data/lib/cyberweb/requires/require_sinatra.rb +7 -0
- data/lib/cyberweb/requires/require_the_constants.rb +28 -0
- data/lib/cyberweb/requires/require_the_cyberweb_project.rb +174 -0
- data/lib/cyberweb/requires/require_the_html_template.rb +7 -0
- data/lib/cyberweb/requires/require_the_toplevel_methods_files.rb +29 -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/rest +1 -0
- data/lib/cyberweb/route_handler/class_based_test.rb +43 -0
- data/lib/cyberweb/route_handler/module/misc.rb +108 -0
- data/lib/cyberweb/route_handler/module/route_handler_module.rb +215 -0
- data/lib/cyberweb/route_handler/module/verbs.rb +53 -0
- data/lib/cyberweb/route_handler/route_handler.rb +56 -0
- data/lib/cyberweb/route_handler/test.rb +43 -0
- data/lib/cyberweb/sinatra/README.md +11 -0
- data/lib/cyberweb/sinatra/base/set_use_this_port.rb +30 -0
- data/lib/cyberweb/sinatra/base/use_this_port.rb +40 -0
- data/lib/cyberweb/sinatra/base.rb +160 -0
- data/lib/cyberweb/sinatra/custom_extensions.rb +160 -0
- data/lib/cyberweb/skeleton/README.md +2 -0
- data/lib/cyberweb/skeleton/html_keyboard.md +140 -0
- data/lib/cyberweb/standalone_classes/all_css_classes.rb +255 -0
- data/lib/cyberweb/standalone_classes/calculator.rb +133 -0
- data/lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb +204 -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 +176 -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/standalone/README.md +2 -0
- data/lib/cyberweb/svg/standalone/amusement_park.svg +738 -0
- data/lib/cyberweb/svg/svg.cgi +60 -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/audio.rb +59 -0
- data/lib/cyberweb/toplevel_methods/cgi.rb +65 -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 +2194 -0
- data/lib/cyberweb/toplevel_methods/csv.rb +61 -0
- data/lib/cyberweb/toplevel_methods/custom_error_page.rb +30 -0
- data/lib/cyberweb/toplevel_methods/date_and_time.rb +58 -0
- data/lib/cyberweb/toplevel_methods/doctype.rb +94 -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 +48 -0
- data/lib/cyberweb/toplevel_methods/filename.rb +35 -0
- data/lib/cyberweb/toplevel_methods/frames.rb +129 -0
- data/lib/cyberweb/toplevel_methods/greek_letters/greek_letters.rb +225 -0
- data/lib/cyberweb/toplevel_methods/help.rb +30 -0
- data/lib/cyberweb/toplevel_methods/hfin.rb +80 -0
- data/lib/cyberweb/toplevel_methods/html_tags/README.md +7 -0
- data/lib/cyberweb/toplevel_methods/html_tags/html_tags.rb +4530 -0
- data/lib/cyberweb/toplevel_methods/internal_hash.rb +46 -0
- data/lib/cyberweb/toplevel_methods/is_an_image.rb +30 -0
- data/lib/cyberweb/toplevel_methods/javascript.rb +43 -0
- data/lib/cyberweb/toplevel_methods/jquery.rb +100 -0
- data/lib/cyberweb/toplevel_methods/log_directory.rb +89 -0
- data/lib/cyberweb/toplevel_methods/logging.rb +42 -0
- data/lib/cyberweb/toplevel_methods/markdown.rb +119 -0
- data/lib/cyberweb/toplevel_methods/mathml.rb +132 -0
- data/lib/cyberweb/toplevel_methods/misc.rb +1962 -0
- data/lib/cyberweb/toplevel_methods/name_of_img_dir.rb +63 -0
- data/lib/cyberweb/toplevel_methods/params.rb +64 -0
- data/lib/cyberweb/toplevel_methods/path.rb +103 -0
- data/lib/cyberweb/toplevel_methods/pdf.rb +102 -0
- data/lib/cyberweb/toplevel_methods/process_content.rb +114 -0
- data/lib/cyberweb/toplevel_methods/rack.rb +53 -0
- data/lib/cyberweb/toplevel_methods/random.rb +79 -0
- data/lib/cyberweb/toplevel_methods/rds.rb +44 -0
- data/lib/cyberweb/toplevel_methods/registered_ids.rb +205 -0
- data/lib/cyberweb/toplevel_methods/return_head_start.rb +34 -0
- data/lib/cyberweb/toplevel_methods/return_html_header.rb +44 -0
- data/lib/cyberweb/toplevel_methods/return_html_start.rb +32 -0
- data/lib/cyberweb/toplevel_methods/return_html_to_head_start.rb +43 -0
- data/lib/cyberweb/toplevel_methods/return_pwd.rb +30 -0
- data/lib/cyberweb/toplevel_methods/roebe.rb +48 -0
- data/lib/cyberweb/toplevel_methods/sanitize_url.rb +62 -0
- data/lib/cyberweb/toplevel_methods/server_base_directory.rb +156 -0
- data/lib/cyberweb/toplevel_methods/sitemap.rb +112 -0
- data/lib/cyberweb/toplevel_methods/sort_this_array_by_time.rb +67 -0
- data/lib/cyberweb/toplevel_methods/svg.rb +211 -0
- data/lib/cyberweb/toplevel_methods/temp_directory.rb +80 -0
- data/lib/cyberweb/toplevel_methods/textile.rb +45 -0
- data/lib/cyberweb/toplevel_methods/umlaute.rb +90 -0
- data/lib/cyberweb/toplevel_methods/video.rb +433 -0
- data/lib/cyberweb/toplevel_methods/write_what_into.rb +31 -0
- data/lib/cyberweb/utility_scripts/README.md +3 -0
- data/lib/cyberweb/utility_scripts/autogenerate_drop_shadow_rules/autogenerate_drop_shadow_rules.rb +71 -0
- data/lib/cyberweb/utility_scripts/booklet/README.md +3 -0
- data/lib/cyberweb/utility_scripts/booklet/booklet.rb +134 -0
- data/lib/cyberweb/utility_scripts/copy_all_images_from_this_webpage_to_the_current_working_directory.rb +135 -0
- data/lib/cyberweb/utility_scripts/create_coloured_tags/create_coloured_tags.rb +161 -0
- data/lib/cyberweb/utility_scripts/create_standalone_html_page.rb +215 -0
- data/lib/cyberweb/utility_scripts/download_all_images_from_this_website.rb +139 -0
- data/lib/cyberweb/utility_scripts/download_balloon_css.rb +156 -0
- data/lib/cyberweb/utility_scripts/fix_incorrect_links_to_locally_existing_images_in_this_file.rb +111 -0
- data/lib/cyberweb/utility_scripts/html_to_cyberweb_converter.rb +235 -0
- data/lib/cyberweb/utility_scripts/html_to_html/html_to_html.rb +98 -0
- data/lib/cyberweb/utility_scripts/hyperlink_all_images_from.rb +137 -0
- data/lib/cyberweb/utility_scripts/images_to_html/images_to_html.rb +643 -0
- data/lib/cyberweb/utility_scripts/new_tags.rb +105 -0
- data/lib/cyberweb/utility_scripts/obtain_css_rules/obtain_css_rules.rb +169 -0
- data/lib/cyberweb/utility_scripts/obtain_files_and_directories_from_this_path/obtain_files_and_directories_from_this_path.rb +1322 -0
- data/lib/cyberweb/utility_scripts/pdf_to_html/pdf_to_html.rb +201 -0
- data/lib/cyberweb/utility_scripts/remove_this_image_from_that_webpage.rb +124 -0
- data/lib/cyberweb/utility_scripts/simple_index/README.md +8 -0
- data/lib/cyberweb/utility_scripts/simple_index/simple_index.rb +141 -0
- data/lib/cyberweb/utility_scripts/try_to_map_this_input_to_that_local_image.rb +96 -0
- data/lib/cyberweb/utility_scripts/video_to_html/video_to_html.rb +196 -0
- data/lib/cyberweb/version/version.rb +25 -0
- data/lib/cyberweb/vue/README.md +2 -0
- data/lib/cyberweb/vue/vue.rb +83 -0
- data/lib/cyberweb/web_base/web_base.rb +33 -0
- data/lib/cyberweb/web_images/array_listing_all_project_images.rb +59 -0
- data/lib/cyberweb/web_images/map_symbol_to_image_location.rb +1820 -0
- data/lib/cyberweb/web_images/web_images.rb +291 -0
- data/lib/cyberweb/web_object/javascript_and_jquery.rb +37 -0
- data/lib/cyberweb/web_object/toplevel_instantiation_of_the_web_object.rb +116 -0
- data/lib/cyberweb/web_object/toplevel_web_object.rb +42 -0
- data/lib/cyberweb/web_object/web_object.rb +9739 -0
- data/lib/cyberweb/web_scraper/README.md +8 -0
- data/lib/cyberweb/web_scraper/scrape_this_url.rb +181 -0
- data/lib/cyberweb/webmin/biology_server.cgi +254 -0
- data/lib/cyberweb/webmin/calculator.cgi +52 -0
- data/lib/cyberweb/webmin/colour_chart.cgi +32 -0
- data/lib/cyberweb/webmin/comments.cgi +138 -0
- data/lib/cyberweb/webmin/comments_data +18 -0
- data/lib/cyberweb/webmin/constants.rb +45 -0
- data/lib/cyberweb/webmin/dictionary.cgi +38 -0
- data/lib/cyberweb/webmin/simple_forum/index.cgi +31 -0
- data/lib/cyberweb/webmin/simple_forum/simple_forum.rb +134 -0
- data/lib/cyberweb/webmin/sys_info.cgi +25 -0
- data/lib/cyberweb/webmin/webforum.cgi +57 -0
- data/lib/cyberweb/webmin/webmin.cgi +678 -0
- data/lib/cyberweb/webrick/clone/README.md +1 -0
- data/lib/cyberweb/webrick/clone/webrick/accesslog.rb +144 -0
- data/lib/cyberweb/webrick/clone/webrick/cgi.rb +313 -0
- data/lib/cyberweb/webrick/clone/webrick/compat.rb +36 -0
- data/lib/cyberweb/webrick/clone/webrick/config.rb +158 -0
- data/lib/cyberweb/webrick/clone/webrick/cookie.rb +172 -0
- data/lib/cyberweb/webrick/clone/webrick/htmlutils.rb +30 -0
- data/lib/cyberweb/webrick/clone/webrick/httpauth/authenticator.rb +117 -0
- data/lib/cyberweb/webrick/clone/webrick/httpauth/basicauth.rb +116 -0
- data/lib/cyberweb/webrick/clone/webrick/httpauth/digestauth.rb +395 -0
- data/lib/cyberweb/webrick/clone/webrick/httpauth/htdigest.rb +132 -0
- data/lib/cyberweb/webrick/clone/webrick/httpauth/htgroup.rb +97 -0
- data/lib/cyberweb/webrick/clone/webrick/httpauth/htpasswd.rb +158 -0
- data/lib/cyberweb/webrick/clone/webrick/httpauth/userdb.rb +53 -0
- data/lib/cyberweb/webrick/clone/webrick/httpauth.rb +96 -0
- data/lib/cyberweb/webrick/clone/webrick/httpproxy.rb +354 -0
- data/lib/cyberweb/webrick/clone/webrick/httprequest.rb +640 -0
- data/lib/cyberweb/webrick/clone/webrick/httpresponse.rb +588 -0
- data/lib/cyberweb/webrick/clone/webrick/https.rb +152 -0
- data/lib/cyberweb/webrick/clone/webrick/httpserver.rb +294 -0
- data/lib/cyberweb/webrick/clone/webrick/httpservlet/abstract.rb +152 -0
- data/lib/cyberweb/webrick/clone/webrick/httpservlet/cgi_runner.rb +47 -0
- data/lib/cyberweb/webrick/clone/webrick/httpservlet/cgihandler.rb +126 -0
- data/lib/cyberweb/webrick/clone/webrick/httpservlet/erbhandler.rb +88 -0
- data/lib/cyberweb/webrick/clone/webrick/httpservlet/filehandler.rb +552 -0
- data/lib/cyberweb/webrick/clone/webrick/httpservlet/prochandler.rb +48 -0
- data/lib/cyberweb/webrick/clone/webrick/httpservlet.rb +23 -0
- data/lib/cyberweb/webrick/clone/webrick/httpstatus.rb +194 -0
- data/lib/cyberweb/webrick/clone/webrick/httputils.rb +523 -0
- data/lib/cyberweb/webrick/clone/webrick/httpversion.rb +65 -0
- data/lib/cyberweb/webrick/clone/webrick/log.rb +150 -0
- data/lib/cyberweb/webrick/clone/webrick/server.rb +381 -0
- data/lib/cyberweb/webrick/clone/webrick/ssl.rb +221 -0
- data/lib/cyberweb/webrick/clone/webrick/utils.rb +265 -0
- data/lib/cyberweb/webrick/clone/webrick.rb +201 -0
- data/lib/cyberweb/webrick/servlets/parameters_servlet.rb +28 -0
- data/lib/cyberweb/webrick/webrick_wrapper.rb +120 -0
- data/lib/cyberweb/yaml/autogenerated_system_settings.yml +14 -0
- data/lib/cyberweb/yaml/custom_tags.yml +9 -0
- data/lib/cyberweb/yaml/debug.yml +1 -0
- data/lib/cyberweb/yaml/default_resolution.md +2 -0
- data/lib/cyberweb/yaml/html5_global_attributes.yml +16 -0
- data/lib/cyberweb/yaml/html5_new_elements.yml +108 -0
- data/lib/cyberweb/yaml/html_tag_legend.yml +14 -0
- data/lib/cyberweb/yaml/http_status_codes.yml +44 -0
- data/lib/cyberweb/yaml/js_files_to_load.yml +44 -0
- data/lib/cyberweb/yaml/load_these_CSS_files_by_default.yml +39 -0
- data/lib/cyberweb/yaml/project_configuration/project_configuration.yml +269 -0
- data/lib/cyberweb/yaml/registered_html_tags.yml +31 -0
- data/lib/cyberweb/yaml/video_attributes.yml +37 -0
- data/lib/cyberweb/yaml/web_images.yml +306 -0
- data/lib/cyberweb.rb +5 -0
- data/test/README.md +5 -0
- data/test/REST/simple.rb +7 -0
- data/test/complex_tests/all_tests_in_one_page/all_tests_in_one_page.cgi +672 -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 +64 -0
- data/test/complex_tests/testing_frames/testing_frames.cgi +40 -0
- data/test/complex_tests/testing_objectified_html_tags/simple_tests_for_objectified_html_tags.rb +51 -0
- data/test/complex_tests/testing_objectified_html_tags/testing_a_standalone_webpage_described_via_objectied_html_tags_as_cgi_file.cgi +30 -0
- data/test/complex_tests/testing_objectified_html_tags/testing_a_standalone_webpage_described_via_objectified_html_tags.rb +11 -0
- data/test/complex_tests/testing_objectified_html_tags/testing_objectified_html_tags.html +28 -0
- data/test/complex_tests/testing_objectified_html_tags/testing_objectified_html_tags.rb +176 -0
- data/test/complex_tests/testing_style_variants/README.md +2 -0
- data/test/complex_tests/testing_style_variants/show_coloured_boxes.cgi +62 -0
- data/test/complex_tests/testing_tables/testing_tables.cgi +67 -0
- data/test/complex_tests/testing_the_cyberweb_shell/testing_the_cyberweb_shell.rb +190 -0
- data/test/css/README.md +6 -0
- data/test/css/return_the_content_of_these_css_classes.rb +11 -0
- data/test/css/test_hover_css/test_hover_css.cgi +59 -0
- data/test/css/test_ordered_list/test_ordered_list.cgi +31 -0
- data/test/css/testing_css_effects.cgi +158 -0
- data/test/css/testing_css_masking.cgi +35 -0
- data/test/dummy.pdf +0 -0
- data/test/hello_world/hello_world.cgi +27 -0
- data/test/html_template/html_template.rb +43 -0
- data/test/javascript/README.md +2 -0
- data/test/javascript/testing_custom_functions.js +24 -0
- data/test/javascript/testing_different_javascript_functions_available_in_the_cyberweb_project.cgi +27 -0
- data/test/javascript/testing_drag_and_drop_support.cgi +33 -0
- data/test/javascript/testing_javascript_custom_functions.html +44 -0
- data/test/javascript/testing_on_click_change_opacity.cgi +25 -0
- data/test/javascript/testing_snowflakes.cgi +20 -0
- data/test/javascript/testing_various_javascript_related_APIs.html +17 -0
- data/test/simple_tests/README.md +3 -0
- data/test/simple_tests/ad-hoc-test.cgi +58 -0
- data/test/simple_tests/cgi/hello_world_with_cyberweb.cgi +14 -0
- data/test/simple_tests/commandline_tests.rb +76 -0
- data/test/simple_tests/display_this_file.cgi +11 -0
- data/test/simple_tests/simple_html_example.cgi +30 -0
- data/test/simple_tests/simple_html_test_page/simple_html_test_page.html +20 -0
- data/test/simple_tests/simple_status_page.cgi +52 -0
- data/test/simple_tests/string_s2_test.rb +16 -0
- data/test/simple_tests/test_simple_string_as_input.rb +14 -0
- data/test/simple_tests/testing_ad_hoc_aspects_of_the_cyberweb_project.rb +29 -0
- data/test/simple_tests/testing_base64_images.cgi +25 -0
- data/test/simple_tests/testing_checkboxes.cgi +22 -0
- data/test/simple_tests/testing_dragging_an_image.cgi +24 -0
- data/test/simple_tests/testing_editable_text.cgi +15 -0
- data/test/simple_tests/testing_email.cgi +30 -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 +15 -0
- data/test/simple_tests/testing_p_default_versus_p_default_le.cgi +69 -0
- data/test/simple_tests/testing_popup_div.cgi +21 -0
- data/test/simple_tests/testing_return_dataset_without_any_comments.rb +13 -0
- data/test/simple_tests/testing_the_cap_box.cgi +19 -0
- data/test/simple_tests/testing_the_div_tag.cgi +20 -0
- data/test/simple_tests/testing_the_headers_tag.cgi +35 -0
- data/test/simple_tests/testing_the_html_colours.cgi +18 -0
- data/test/simple_tests/testing_the_info_box.cgi +18 -0
- data/test/simple_tests/testing_the_javascript_component.cgi +32 -0
- data/test/simple_tests/testing_the_li_tag.cgi +25 -0
- data/test/simple_tests/testing_the_s2_method.rb +12 -0
- data/test/simple_tests/testing_the_select_tag.cgi +37 -0
- data/test/simple_tests/testing_the_span_tag.cgi +35 -0
- data/test/simple_tests/testing_uniform_css_rules_for_all_images.cgi +25 -0
- data/test/simple_tests/testing_web_images.rb +14 -0
- data/test/testing_base_module/testing_base_module.rb +13 -0
- data/test/testing_html_tags/README.md +7 -0
- data/test/testing_html_tags/button_example.cgi +41 -0
- data/test/testing_support_for_universal_widgets/README.md +4 -0
- data/test/testing_support_for_universal_widgets/testing_a_calculator.cgi +38 -0
- data/test/testing_support_for_universal_widgets/testing_button.rb +13 -0
- data/test/testing_support_for_universal_widgets/testing_button_and_entry.rb +18 -0
- data/test/testing_the_web_object/simple_test.cgi +58 -0
- data/test/testing_the_web_object/testing_base64_image.cgi +38 -0
- data/test/testing_the_web_object/testing_the_web_object.rb +101 -0
- data/test/testing_the_web_object/testing_the_web_object_in_a_simple_and_linear_verbose_manner.rb +126 -0
- data/test/testing_toplevel_methods/README.md +2 -0
- data/test/testing_toplevel_methods/testing_cyberweb_video.rb +9 -0
- metadata +1422 -0
@@ -0,0 +1,2194 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'cyberweb/toplevel_methods/css.rb'
|
6
|
+
# Cyberweb.css_comment
|
7
|
+
# =========================================================================== #
|
8
|
+
module Cyberweb
|
9
|
+
|
10
|
+
require 'cyberweb/project/project.rb'
|
11
|
+
require 'cyberweb/constants/constants.rb'
|
12
|
+
require 'cyberweb/encoding/encoding.rb'
|
13
|
+
|
14
|
+
# ========================================================================= #
|
15
|
+
# === Cyberweb::ARRAY_RANDOM_COLOUR
|
16
|
+
#
|
17
|
+
# For random colour macros, add to this array here.
|
18
|
+
# ========================================================================= #
|
19
|
+
ARRAY_RANDOM_COLOUR = %w(
|
20
|
+
RCOL
|
21
|
+
RAND_COL
|
22
|
+
RCOLOUR
|
23
|
+
RANDOM_COLOUR
|
24
|
+
RAND
|
25
|
+
)
|
26
|
+
|
27
|
+
# ========================================================================= #
|
28
|
+
# === Cyberweb.found_these_css_classes
|
29
|
+
# ========================================================================= #
|
30
|
+
def self.found_these_css_classes
|
31
|
+
@array_found_these_css_classes
|
32
|
+
end
|
33
|
+
|
34
|
+
# ========================================================================= #
|
35
|
+
# === Cyberweb.container_for_the_CSS_coffee_animation
|
36
|
+
# ========================================================================= #
|
37
|
+
def self.container_for_the_CSS_coffee_animation
|
38
|
+
return '<h2 style="color: gold; text-align: center">Get some coffee!</h2>
|
39
|
+
|
40
|
+
<div class="container_for_coffee">
|
41
|
+
<div class="coffee-header">
|
42
|
+
<div class="coffee-header__buttons coffee-header__button-one"></div>
|
43
|
+
<div class="coffee-header__buttons coffee-header__button-two"></div>
|
44
|
+
<div class="coffee-header__display"></div>
|
45
|
+
<div class="coffee-header__details"></div>
|
46
|
+
</div>
|
47
|
+
<div class="coffee-medium">
|
48
|
+
<div class="coffe-medium__exit"></div>
|
49
|
+
<div class="coffee-medium__arm"></div>
|
50
|
+
<div class="coffee-medium__liquid"></div>
|
51
|
+
<div class="coffee-medium__smoke coffee-medium__smoke-one"></div>
|
52
|
+
<div class="coffee-medium__smoke coffee-medium__smoke-two"></div>
|
53
|
+
<div class="coffee-medium__smoke coffee-medium__smoke-three"></div>
|
54
|
+
<div class="coffee-medium__smoke coffee-medium__smoke-for"></div>
|
55
|
+
<div class="coffee-medium__cup"></div>
|
56
|
+
</div>
|
57
|
+
<div class="coffee-footer"></div>
|
58
|
+
</div>
|
59
|
+
|
60
|
+
'
|
61
|
+
end
|
62
|
+
|
63
|
+
# ========================================================================= #
|
64
|
+
# === Cyberweb.css_rules_for_the_coffee_animation
|
65
|
+
# ========================================================================= #
|
66
|
+
def self.css_rules_for_the_coffee_animation
|
67
|
+
return '.container_for_coffee {
|
68
|
+
width: 300px;
|
69
|
+
height: 280px;
|
70
|
+
position: absolute;
|
71
|
+
top: calc(25% - 140px);
|
72
|
+
left: calc(50% - 150px);
|
73
|
+
}
|
74
|
+
.coffee-header {
|
75
|
+
width: 100%;
|
76
|
+
height: 80px;
|
77
|
+
position: absolute;
|
78
|
+
top: 0;
|
79
|
+
left: 0;
|
80
|
+
background-color: #ddcfcc;
|
81
|
+
border-radius: 10px;
|
82
|
+
}
|
83
|
+
.coffee-header__buttons {
|
84
|
+
width: 25px;
|
85
|
+
height: 25px;
|
86
|
+
position: absolute;
|
87
|
+
top: 25px;
|
88
|
+
background-color: #282323;
|
89
|
+
border-radius: 50%;
|
90
|
+
}
|
91
|
+
.coffee-header__buttons::after {
|
92
|
+
content: "";
|
93
|
+
width: 8px;
|
94
|
+
height: 8px;
|
95
|
+
position: absolute;
|
96
|
+
bottom: -8px;
|
97
|
+
left: calc(50% - 4px);
|
98
|
+
background-color: #615e5e;
|
99
|
+
}
|
100
|
+
.coffee-header__button-one {
|
101
|
+
left: 15px;
|
102
|
+
}
|
103
|
+
.coffee-header__button-two {
|
104
|
+
left: 50px;
|
105
|
+
}
|
106
|
+
.coffee-header__display {
|
107
|
+
width: 50px;
|
108
|
+
height: 50px;
|
109
|
+
position: absolute;
|
110
|
+
top: calc(50% - 25px);
|
111
|
+
left: calc(50% - 25px);
|
112
|
+
border-radius: 50%;
|
113
|
+
background-color: #9acfc5;
|
114
|
+
border: 5px solid #43beae;
|
115
|
+
box-sizing: border-box;
|
116
|
+
}
|
117
|
+
.coffee-header__details {
|
118
|
+
width: 8px;
|
119
|
+
height: 20px;
|
120
|
+
position: absolute;
|
121
|
+
top: 10px;
|
122
|
+
right: 10px;
|
123
|
+
background-color: #9b9091;
|
124
|
+
box-shadow: -12px 0 0 #9b9091, -24px 0 0 #9b9091;
|
125
|
+
}
|
126
|
+
.coffee-medium {
|
127
|
+
width: 90%;
|
128
|
+
height: 160px;
|
129
|
+
position: absolute;
|
130
|
+
top: 80px;
|
131
|
+
left: calc(50% - 45%);
|
132
|
+
background-color: #bcb0af;
|
133
|
+
}
|
134
|
+
.coffee-medium:before {
|
135
|
+
content: "";
|
136
|
+
width: 90%;
|
137
|
+
height: 100px;
|
138
|
+
background-color: #776f6e;
|
139
|
+
position: absolute;
|
140
|
+
bottom: 0;
|
141
|
+
left: calc(50% - 45%);
|
142
|
+
border-radius: 20px 20px 0 0;
|
143
|
+
}
|
144
|
+
.coffe-medium__exit {
|
145
|
+
width: 60px;
|
146
|
+
height: 20px;
|
147
|
+
position: absolute;
|
148
|
+
top: 0;
|
149
|
+
left: calc(50% - 30px);
|
150
|
+
background-color: #231f20;
|
151
|
+
}
|
152
|
+
.coffe-medium__exit::before {
|
153
|
+
content: "";
|
154
|
+
width: 50px;
|
155
|
+
height: 20px;
|
156
|
+
border-radius: 0 0 50% 50%;
|
157
|
+
position: absolute;
|
158
|
+
bottom: -20px;
|
159
|
+
left: calc(50% - 25px);
|
160
|
+
background-color: #231f20;
|
161
|
+
}
|
162
|
+
.coffe-medium__exit::after {
|
163
|
+
content: "";
|
164
|
+
width: 10px;
|
165
|
+
height: 10px;
|
166
|
+
position: absolute;
|
167
|
+
bottom: -30px;
|
168
|
+
left: calc(50% - 5px);
|
169
|
+
background-color: #231f20;
|
170
|
+
}
|
171
|
+
.coffee-medium__arm {
|
172
|
+
width: 70px;
|
173
|
+
height: 20px;
|
174
|
+
position: absolute;
|
175
|
+
top: 15px;
|
176
|
+
right: 25px;
|
177
|
+
background-color: #231f20;
|
178
|
+
}
|
179
|
+
.coffee-medium__arm::before {
|
180
|
+
content: "";
|
181
|
+
width: 15px;
|
182
|
+
height: 5px;
|
183
|
+
position: absolute;
|
184
|
+
top: 7px;
|
185
|
+
left: -15px;
|
186
|
+
background-color: #9e9495;
|
187
|
+
}
|
188
|
+
.coffee-medium__cup {
|
189
|
+
width: 80px;
|
190
|
+
height: 47px;
|
191
|
+
position: absolute;
|
192
|
+
bottom: 0;
|
193
|
+
left: calc(50% - 40px);
|
194
|
+
background-color: #FFF;
|
195
|
+
border-radius: 0 0 70px 70px / 0 0 110px 110px;
|
196
|
+
}
|
197
|
+
.coffee-medium__cup::after {
|
198
|
+
content: "";
|
199
|
+
width: 20px;
|
200
|
+
height: 20px;
|
201
|
+
position: absolute;
|
202
|
+
top: 6px;
|
203
|
+
right: -13px;
|
204
|
+
border: 5px solid #FFF;
|
205
|
+
border-radius: 50%;
|
206
|
+
}
|
207
|
+
@keyframes liquid {
|
208
|
+
0% {
|
209
|
+
height: 0px;
|
210
|
+
opacity: 1;
|
211
|
+
}
|
212
|
+
5% {
|
213
|
+
height: 0px;
|
214
|
+
opacity: 1;
|
215
|
+
}
|
216
|
+
20% {
|
217
|
+
height: 62px;
|
218
|
+
opacity: 1;
|
219
|
+
}
|
220
|
+
95% {
|
221
|
+
height: 62px;
|
222
|
+
opacity: 1;
|
223
|
+
}
|
224
|
+
100% {
|
225
|
+
height: 62px;
|
226
|
+
opacity: 0;
|
227
|
+
}
|
228
|
+
}
|
229
|
+
.coffee-medium__liquid {
|
230
|
+
width: 6px;
|
231
|
+
height: 63px;
|
232
|
+
opacity: 0;
|
233
|
+
position: absolute;
|
234
|
+
top: 50px;
|
235
|
+
left: calc(50% - 3px);
|
236
|
+
background-color: #74372b;
|
237
|
+
animation: liquid 3s 3s linear infinite;
|
238
|
+
}
|
239
|
+
.coffee-medium__smoke {
|
240
|
+
width: 8px;
|
241
|
+
height: 20px;
|
242
|
+
position: absolute;
|
243
|
+
border-radius: 5px;
|
244
|
+
background-color: #b3aeae;
|
245
|
+
}
|
246
|
+
|
247
|
+
@keyframes smokeOne {
|
248
|
+
0% {
|
249
|
+
bottom: 20px;
|
250
|
+
opacity: 0;
|
251
|
+
}
|
252
|
+
40% {
|
253
|
+
bottom: 50px;
|
254
|
+
opacity: .5;
|
255
|
+
}
|
256
|
+
80% {
|
257
|
+
bottom: 80px;
|
258
|
+
opacity: .3;
|
259
|
+
}
|
260
|
+
100% {
|
261
|
+
bottom: 80px;
|
262
|
+
opacity: 0;
|
263
|
+
}
|
264
|
+
}
|
265
|
+
|
266
|
+
@keyframes smokeTwo {
|
267
|
+
0% {
|
268
|
+
bottom: 40px;
|
269
|
+
opacity: 0;
|
270
|
+
}
|
271
|
+
40% {
|
272
|
+
bottom: 70px;
|
273
|
+
opacity: .5;
|
274
|
+
}
|
275
|
+
80% {
|
276
|
+
bottom: 80px;
|
277
|
+
opacity: .3;
|
278
|
+
}
|
279
|
+
100% {
|
280
|
+
bottom: 80px;
|
281
|
+
opacity: 0;
|
282
|
+
}
|
283
|
+
}
|
284
|
+
.coffee-medium__smoke-one {
|
285
|
+
opacity: 0;
|
286
|
+
bottom: 50px;
|
287
|
+
left: 102px;
|
288
|
+
animation: smokeOne 3s 4s linear infinite;
|
289
|
+
}
|
290
|
+
.coffee-medium__smoke-two {
|
291
|
+
opacity: 0;
|
292
|
+
bottom: 70px;
|
293
|
+
left: 118px;
|
294
|
+
animation: smokeTwo 3s 5s linear infinite;
|
295
|
+
}
|
296
|
+
.coffee-medium__smoke-three {
|
297
|
+
opacity: 0;
|
298
|
+
bottom: 65px;
|
299
|
+
right: 118px;
|
300
|
+
animation: smokeTwo 3s 6s linear infinite;
|
301
|
+
}
|
302
|
+
.coffee-medium__smoke-for {
|
303
|
+
opacity: 0;
|
304
|
+
bottom: 50px;
|
305
|
+
right: 102px;
|
306
|
+
animation: smokeOne 3s 5s linear infinite;
|
307
|
+
}
|
308
|
+
.coffee-footer {
|
309
|
+
width: 95%;
|
310
|
+
height: 15px;
|
311
|
+
position: absolute;
|
312
|
+
bottom: 25px;
|
313
|
+
left: calc(50% - 47.5%);
|
314
|
+
background-color: #41bdad;
|
315
|
+
border-radius: 10px;
|
316
|
+
}
|
317
|
+
.coffee-footer::after {
|
318
|
+
content: "";
|
319
|
+
width: 106%;
|
320
|
+
height: 26px;
|
321
|
+
position: absolute;
|
322
|
+
bottom: -25px;
|
323
|
+
left: -8px;
|
324
|
+
background-color: #000;
|
325
|
+
}
|
326
|
+
'
|
327
|
+
end
|
328
|
+
|
329
|
+
# ========================================================================= #
|
330
|
+
# === Cyberweb.test_css
|
331
|
+
# ========================================================================= #
|
332
|
+
def self.test_css
|
333
|
+
puts 'h1 {
|
334
|
+
text-decoration: underline red;
|
335
|
+
text-decoration-thickness: 3px;
|
336
|
+
text-underline-offset: 6px;
|
337
|
+
}'
|
338
|
+
end
|
339
|
+
|
340
|
+
require 'cyberweb/colours/colours.rb'
|
341
|
+
# ========================================================================= #
|
342
|
+
# === Cyberweb.return_css_class
|
343
|
+
#
|
344
|
+
# This method will return a css class - but only when the input
|
345
|
+
# given to this method is NOT empty. In other words: empty arguments
|
346
|
+
# will be ignored.
|
347
|
+
#
|
348
|
+
# ARRAY_RANDOM_COLOUR also includes RAND.
|
349
|
+
# ========================================================================= #
|
350
|
+
def self.return_css_class(
|
351
|
+
css_class = ''
|
352
|
+
)
|
353
|
+
# ======================================================================= #
|
354
|
+
# Ensure that we have a String from this point.
|
355
|
+
# ======================================================================= #
|
356
|
+
css_class = css_class.to_s.strip
|
357
|
+
unless css_class.empty?
|
358
|
+
ARRAY_RANDOM_COLOUR.each {|word|
|
359
|
+
css_class.gsub!(/#{word}/, 'color: '+return_random_colour)
|
360
|
+
} if css_class.include? 'COL'
|
361
|
+
# ===================================================================== #
|
362
|
+
# Handle colour input next.
|
363
|
+
# ===================================================================== #
|
364
|
+
css_class = ::Cyberweb.sanitize_for_colours(css_class) # Since as of Nov 2014.
|
365
|
+
css_class.strip!
|
366
|
+
result = ''.dup
|
367
|
+
# ===================================================================== #
|
368
|
+
# Append onto the Array that keeps track of which CSS classes were
|
369
|
+
# found.
|
370
|
+
# ===================================================================== #
|
371
|
+
(
|
372
|
+
::Cyberweb.found_these_css_classes << css_class.split(' ')
|
373
|
+
).flatten!.uniq!
|
374
|
+
result << ' class="' << css_class << '"'
|
375
|
+
return result # Early return in this case.
|
376
|
+
end
|
377
|
+
'' # Otherwise an empty String will be returned.
|
378
|
+
end; self.instance_eval { alias css_class= return_css_class } # === Cyberweb.css_class=
|
379
|
+
|
380
|
+
# ========================================================================= #
|
381
|
+
# === return_unique_css_id
|
382
|
+
# ========================================================================= #
|
383
|
+
def return_unique_css_id
|
384
|
+
_ = ''.dup
|
385
|
+
20.times {
|
386
|
+
_ << ALPHABET.sample
|
387
|
+
}
|
388
|
+
_
|
389
|
+
end
|
390
|
+
|
391
|
+
# ========================================================================= #
|
392
|
+
# === Cyberweb.generate_animated_border_gradient_box
|
393
|
+
#
|
394
|
+
# Usage example:
|
395
|
+
#
|
396
|
+
# Cyberweb.generate_animated_border_gradient_box(inner_border_size: '12px')
|
397
|
+
# Cyberweb.generate_animated_border_gradient_box(inner_border_size: '12px', border_radius: '10px')
|
398
|
+
#
|
399
|
+
# ========================================================================= #
|
400
|
+
def self.generate_animated_border_gradient_box(
|
401
|
+
hash = {
|
402
|
+
inner_border_size: '3px;',
|
403
|
+
border_radius: '10px;',
|
404
|
+
animation_speed: '12s'
|
405
|
+
}
|
406
|
+
)
|
407
|
+
if hash.is_a?(String)
|
408
|
+
hash = {inner_border_size: hash}
|
409
|
+
end
|
410
|
+
# ======================================================================= #
|
411
|
+
# Use a default Hash:
|
412
|
+
# ======================================================================= #
|
413
|
+
default_hash = {
|
414
|
+
inner_border_size: '3px;',
|
415
|
+
border_radius: '10px',
|
416
|
+
animation_speed: '12s',
|
417
|
+
gradient_colour1: '#213', # This is some darkblue default colour here.
|
418
|
+
gradient_colour_for_the_border1: '#08f'
|
419
|
+
}
|
420
|
+
default_hash.merge!(hash)
|
421
|
+
result = <<-EOF
|
422
|
+
.animated_border_gradient_box {
|
423
|
+
--border-size: #{default_hash[:inner_border_size].delete(';')};
|
424
|
+
--border-angle: 0turn;
|
425
|
+
background-image: conic-gradient(from var(--border-angle), #{default_hash[:gradient_colour1]}, #112 50%, #{default_hash[:gradient_colour1]}),
|
426
|
+
conic-gradient(from var(--border-angle), transparent 20%, #{default_hash[:gradient_colour_for_the_border1]}, #f03);
|
427
|
+
background-size: calc(100% - (var(--border-size) * 5)) calc(100% - (var(--border-size) * 5)), cover;
|
428
|
+
background-position: center center;
|
429
|
+
background-repeat: no-repeat;
|
430
|
+
border-radius: #{default_hash[:border_radius].delete(';')};
|
431
|
+
-webkit-animation: animated_background_spin #{default_hash[:animation_speed]} linear infinite;
|
432
|
+
animation: animated_background_spin #{default_hash[:animation_speed]} linear infinite;
|
433
|
+
}
|
434
|
+
@-webkit-keyframes animated_background_spin {
|
435
|
+
to {
|
436
|
+
--border-angle: 1turn;
|
437
|
+
}
|
438
|
+
}
|
439
|
+
@keyframes animated_background_spin {
|
440
|
+
to {
|
441
|
+
--border-angle: 1turn;
|
442
|
+
}
|
443
|
+
}
|
444
|
+
|
445
|
+
@property --border-angle {
|
446
|
+
syntax: "<angle>";
|
447
|
+
inherits: true;
|
448
|
+
initial-value: 0turn;
|
449
|
+
}
|
450
|
+
EOF
|
451
|
+
return result
|
452
|
+
end; self.instance_eval { alias return_animated_border_gradient_box generate_animated_border_gradient_box } # === Cyberweb return_animated_border_gradient_box
|
453
|
+
|
454
|
+
# ========================================================================= #
|
455
|
+
# === Cyberweb.return_css_for_the_sausage_dog
|
456
|
+
#
|
457
|
+
# Usage example:
|
458
|
+
#
|
459
|
+
# x = Cyberweb.return_css_for_the_sausage_dog
|
460
|
+
#
|
461
|
+
# ========================================================================= #
|
462
|
+
def self.return_css_for_the_sausage_dog
|
463
|
+
result = <<-EOF
|
464
|
+
|
465
|
+
/* Support for CSS `d` property is required. */
|
466
|
+
|
467
|
+
.sausage-dog-animation {
|
468
|
+
height: 25rem;
|
469
|
+
max-height: 80vh;
|
470
|
+
max-width: 80vw;
|
471
|
+
}
|
472
|
+
|
473
|
+
.ear,
|
474
|
+
.closed-eye,
|
475
|
+
.lean,
|
476
|
+
.front-legs,
|
477
|
+
.leg,
|
478
|
+
.head,
|
479
|
+
.tail,
|
480
|
+
.tail-blur,
|
481
|
+
.shadow {
|
482
|
+
animation-duration: 3s;
|
483
|
+
animation-iteration-count: infinite;
|
484
|
+
animation-timing-function: linear;
|
485
|
+
}
|
486
|
+
|
487
|
+
.ball,
|
488
|
+
.ball-decoration,
|
489
|
+
.ball-sound {
|
490
|
+
animation-duration: 3s;
|
491
|
+
animation-iteration-count: infinite;
|
492
|
+
animation-timing-function: ease-in-out;
|
493
|
+
}
|
494
|
+
|
495
|
+
.ball {
|
496
|
+
animation-name: squishBall;
|
497
|
+
transform: matrix(
|
498
|
+
1.0951654,
|
499
|
+
0.52195853,
|
500
|
+
-0.52866476,
|
501
|
+
1.2371611,
|
502
|
+
208.27138,
|
503
|
+
-632.28196
|
504
|
+
);
|
505
|
+
}
|
506
|
+
|
507
|
+
@keyframes squishBall {
|
508
|
+
0%,
|
509
|
+
50%,
|
510
|
+
72%,
|
511
|
+
80%,
|
512
|
+
92%,
|
513
|
+
100% {
|
514
|
+
d: path(
|
515
|
+
"m 930.80242,477.19065 c -13.05851,3.00801 -24.77881,15.97694 -26.81485,30.67673 -2.03603,14.69979 5.61282,31.12503 15.54844,43.47271 9.93563,12.34768 22.15522,20.61485 36.12779,24.29677 13.97258,3.68192 29.69644,2.77869 42.91157,-2.81649 13.21513,-5.59518 23.92113,-15.88139 30.65943,-28.14324 6.7383,-12.26185 9.5079,-26.49697 5.7369,-38.5172 -3.771,-12.02022 -14.0825,-21.82316 -25.5603,-24.46605 -11.47786,-2.6429 -24.12011,1.87601 -37.63861,0.6591 -13.5185,-1.21691 -27.91187,-8.17033 -40.97037,-5.16233 z"
|
516
|
+
);
|
517
|
+
transform: matrix(
|
518
|
+
1.0951654,
|
519
|
+
0.52195853,
|
520
|
+
-0.52866476,
|
521
|
+
1.2371611,
|
522
|
+
208.27138,
|
523
|
+
-632.28196
|
524
|
+
);
|
525
|
+
}
|
526
|
+
65%,
|
527
|
+
85% {
|
528
|
+
d: path(
|
529
|
+
"m 932.4158,479.26229 c -14.67189,0.93637 -26.39219,13.9053 -28.42823,28.60509 -2.03603,14.69979 5.61282,31.12503 15.94228,38.97676 10.32947,7.85173 23.3365,7.12856 34.39281,10.90173 11.0563,3.77318 20.16082,12.04166 33.72906,12.76579 13.56828,0.72414 31.59878,-6.09489 42.72528,-18.16177 11.1265,-12.06689 15.3474,-29.37891 10.9229,-43.93943 -4.4245,-14.56052 -17.4943,-26.36654 -28.8312,-27.22343 -11.337,-0.85689 -20.93852,9.23684 -34.54977,8.73602 -13.61125,-0.50082 -31.23124,-11.59712 -45.90313,-10.66076 z"
|
530
|
+
);
|
531
|
+
transform: matrix(
|
532
|
+
1.0951654,
|
533
|
+
0.52195853,
|
534
|
+
-0.52866476,
|
535
|
+
1.2371611,
|
536
|
+
208.27138,
|
537
|
+
-642.28196
|
538
|
+
);
|
539
|
+
}
|
540
|
+
}
|
541
|
+
|
542
|
+
.ball-decoration {
|
543
|
+
animation-name: ballDecorationAnimation;
|
544
|
+
}
|
545
|
+
|
546
|
+
@keyframes ballDecorationAnimation {
|
547
|
+
0%,
|
548
|
+
50%,
|
549
|
+
72%,
|
550
|
+
80%,
|
551
|
+
92%,
|
552
|
+
100% {
|
553
|
+
d: path(
|
554
|
+
"m 963.39546,597.71943 c 21.49913,-19.30313 4.80913,-64.80408 16.71919,-83.46282 16.19467,-25.37116 67.93925,-22.92156 89.43095,-47.68524"
|
555
|
+
);
|
556
|
+
}
|
557
|
+
65%,
|
558
|
+
85% {
|
559
|
+
d: path(
|
560
|
+
"m 978.40243,581.77452 c 21.49916,-19.30313 -15.82546,-51.20401 -3.9154,-69.86275 16.19467,-25.37116 63.71847,-19.16982 85.21017,-43.9335"
|
561
|
+
);
|
562
|
+
}
|
563
|
+
}
|
564
|
+
|
565
|
+
.ball-sound {
|
566
|
+
animation-name: ballSound;
|
567
|
+
visibility: hidden;
|
568
|
+
}
|
569
|
+
|
570
|
+
@keyframes ballSound {
|
571
|
+
0%,
|
572
|
+
60%,
|
573
|
+
70%,
|
574
|
+
80%,
|
575
|
+
90%,
|
576
|
+
100% {
|
577
|
+
visibility: hidden;
|
578
|
+
transform: translateY(0);
|
579
|
+
}
|
580
|
+
65%,
|
581
|
+
67%,
|
582
|
+
69%,
|
583
|
+
85%,
|
584
|
+
87%,
|
585
|
+
89% {
|
586
|
+
visibility: visible;
|
587
|
+
transform: translateY(-3px);
|
588
|
+
}
|
589
|
+
66%,
|
590
|
+
68%,
|
591
|
+
86%,
|
592
|
+
88% {
|
593
|
+
visibility: visible;
|
594
|
+
transform: translateY(3px);
|
595
|
+
}
|
596
|
+
}
|
597
|
+
|
598
|
+
.ear {
|
599
|
+
animation-name: moveEar;
|
600
|
+
transform-origin: top center;
|
601
|
+
transform-box: fill-box;
|
602
|
+
}
|
603
|
+
|
604
|
+
@keyframes moveEar {
|
605
|
+
0%,
|
606
|
+
12%,
|
607
|
+
21%,
|
608
|
+
31%,
|
609
|
+
35%,
|
610
|
+
100% {
|
611
|
+
transform: rotateZ(0);
|
612
|
+
}
|
613
|
+
9%,
|
614
|
+
19%,
|
615
|
+
29% {
|
616
|
+
transform: rotateZ(-5deg);
|
617
|
+
transform: rotateZ(-10deg);
|
618
|
+
}
|
619
|
+
13%,
|
620
|
+
23%,
|
621
|
+
33% {
|
622
|
+
transform: rotateZ(5deg);
|
623
|
+
transform: rotateZ(10deg);
|
624
|
+
}
|
625
|
+
}
|
626
|
+
|
627
|
+
.closed-eye {
|
628
|
+
animation-name: closeEye;
|
629
|
+
}
|
630
|
+
|
631
|
+
@keyframes closeEye {
|
632
|
+
0%,
|
633
|
+
50%,
|
634
|
+
100% {
|
635
|
+
visibility: hidden;
|
636
|
+
}
|
637
|
+
10% {
|
638
|
+
visibility: visible;
|
639
|
+
}
|
640
|
+
}
|
641
|
+
|
642
|
+
.lean {
|
643
|
+
animation-name: leanDown;
|
644
|
+
transform-origin: center;
|
645
|
+
}
|
646
|
+
|
647
|
+
@keyframes leanDown {
|
648
|
+
0%,
|
649
|
+
50%,
|
650
|
+
100% {
|
651
|
+
transform: rotateZ(0) translateY(0);
|
652
|
+
}
|
653
|
+
60%,
|
654
|
+
90% {
|
655
|
+
transform: rotateZ(10deg) translateY(5%);
|
656
|
+
}
|
657
|
+
}
|
658
|
+
|
659
|
+
.front-legs {
|
660
|
+
animation-name: flexLegs;
|
661
|
+
}
|
662
|
+
|
663
|
+
@keyframes flexLegs {
|
664
|
+
0%,
|
665
|
+
50%,
|
666
|
+
100% {
|
667
|
+
transform: translateX(0);
|
668
|
+
}
|
669
|
+
60%,
|
670
|
+
90% {
|
671
|
+
transform: translateX(12%);
|
672
|
+
}
|
673
|
+
}
|
674
|
+
|
675
|
+
.leg {
|
676
|
+
animation-name: rotateLegs;
|
677
|
+
transform-origin: bottom left;
|
678
|
+
transform-box: fill-box;
|
679
|
+
transform: translateX(16%) rotate(-10deg);
|
680
|
+
}
|
681
|
+
|
682
|
+
@keyframes rotateLegs {
|
683
|
+
0%,
|
684
|
+
50%,
|
685
|
+
100% {
|
686
|
+
transform: translateX(16%) rotate(-10deg);
|
687
|
+
}
|
688
|
+
60%,
|
689
|
+
90% {
|
690
|
+
transform: translateX(35%) rotate(-83deg);
|
691
|
+
}
|
692
|
+
}
|
693
|
+
|
694
|
+
.head {
|
695
|
+
animation-name: lookDown;
|
696
|
+
transform-origin: top right;
|
697
|
+
transform-box: fill-box;
|
698
|
+
}
|
699
|
+
|
700
|
+
@keyframes lookDown {
|
701
|
+
0%,
|
702
|
+
55%,
|
703
|
+
100% {
|
704
|
+
transform: rotateZ(0) translate(0, 0);
|
705
|
+
}
|
706
|
+
60%,
|
707
|
+
90% {
|
708
|
+
transform: rotateZ(5deg) translate(2.5%, 6%);
|
709
|
+
}
|
710
|
+
}
|
711
|
+
|
712
|
+
.tail {
|
713
|
+
animation-name: moveTail;
|
714
|
+
transform-origin: bottom center;
|
715
|
+
}
|
716
|
+
|
717
|
+
@keyframes moveTail {
|
718
|
+
0%,
|
719
|
+
50%,
|
720
|
+
90%,
|
721
|
+
100% {
|
722
|
+
d: path(
|
723
|
+
"m 161.6285,568.63016 20.92664,-20.00034 C 151.50961,521.73829 14.092,504.432 14.092,504.432 c 0,0 128.8135,26.71916 147.5365,64.19816 z"
|
724
|
+
);
|
725
|
+
}
|
726
|
+
64%,
|
727
|
+
70%,
|
728
|
+
76%,
|
729
|
+
82% {
|
730
|
+
d: path(
|
731
|
+
"m 161.6285,568.63016 20.92664,-20.00034 C 151.50961,521.73829 77.565044,422.94078 77.565044,422.94078 c 0,0 65.340456,108.21038 84.063456,145.68938 z"
|
732
|
+
);
|
733
|
+
}
|
734
|
+
60%,
|
735
|
+
66%,
|
736
|
+
72%,
|
737
|
+
78%,
|
738
|
+
84% {
|
739
|
+
d: path(
|
740
|
+
"m 161.6285,568.63016 20.92664,-20.00034 C 151.50961,521.73829 14.092,504.432 14.092,504.432 c 0,0 128.8135,26.71916 147.5365,64.19816 z"
|
741
|
+
);
|
742
|
+
}
|
743
|
+
62%,
|
744
|
+
68%,
|
745
|
+
74%,
|
746
|
+
80%,
|
747
|
+
86% {
|
748
|
+
d: path(
|
749
|
+
"m 161.6285,568.63016 20.92664,-20.00034 C 151.50961,521.73829 159.419,390.74 159.419,390.74 c 0,0 -16.5135,140.41116 2.2095,177.89016 z"
|
750
|
+
);
|
751
|
+
}
|
752
|
+
}
|
753
|
+
|
754
|
+
.tail-blur {
|
755
|
+
animation-name: tailBlur;
|
756
|
+
transform-origin: bottom center;
|
757
|
+
}
|
758
|
+
|
759
|
+
@keyframes tailBlur {
|
760
|
+
0%,
|
761
|
+
59%,
|
762
|
+
90%,
|
763
|
+
100% {
|
764
|
+
opacity: 0;
|
765
|
+
}
|
766
|
+
64%,
|
767
|
+
70%,
|
768
|
+
76%,
|
769
|
+
82% {
|
770
|
+
transform: rotate(-2deg);
|
771
|
+
opacity: 0;
|
772
|
+
}
|
773
|
+
60%,
|
774
|
+
66%,
|
775
|
+
72%,
|
776
|
+
78%,
|
777
|
+
84% {
|
778
|
+
opacity: 0.3;
|
779
|
+
}
|
780
|
+
62%,
|
781
|
+
68%,
|
782
|
+
74%,
|
783
|
+
80%,
|
784
|
+
86% {
|
785
|
+
transform: rotate(2deg);
|
786
|
+
opacity: 0;
|
787
|
+
}
|
788
|
+
}
|
789
|
+
|
790
|
+
.shadow {
|
791
|
+
animation-name: scaleShadow;
|
792
|
+
transform-origin: center center;
|
793
|
+
}
|
794
|
+
|
795
|
+
@keyframes scaleShadow {
|
796
|
+
0%,
|
797
|
+
55%,
|
798
|
+
100% {
|
799
|
+
transform: scaleX(1) translateX(0);
|
800
|
+
}
|
801
|
+
60%,
|
802
|
+
90% {
|
803
|
+
transform: scaleX(1.1) translateX(4%);
|
804
|
+
}
|
805
|
+
}
|
806
|
+
|
807
|
+
EOF
|
808
|
+
return result
|
809
|
+
end
|
810
|
+
|
811
|
+
# ========================================================================= #
|
812
|
+
# === Cyberweb.return_css_for_the_simple_calculator
|
813
|
+
#
|
814
|
+
# This is the CSS that handles the simple calculator. This calculator
|
815
|
+
# can be easily embedded "into" a given webpage.
|
816
|
+
#
|
817
|
+
# The first argument can be a Hash - this explains why the body of
|
818
|
+
# the method has to remain somewhat flexible.
|
819
|
+
# ========================================================================= #
|
820
|
+
def self.return_css_for_the_simple_calculator(
|
821
|
+
font_size_to_use = '16px',
|
822
|
+
background_colour_to_use = '#538fbe'
|
823
|
+
)
|
824
|
+
# ======================================================================= #
|
825
|
+
# === Handle Hashes given to this method first:
|
826
|
+
# ======================================================================= #
|
827
|
+
if font_size_to_use.is_a?(Hash)
|
828
|
+
_ = font_size_to_use
|
829
|
+
# ===================================================================== #
|
830
|
+
# === :background_colour
|
831
|
+
# ===================================================================== #
|
832
|
+
if _.has_key?(:background_colour)
|
833
|
+
background_colour_to_use = _.delete(:background_colour)
|
834
|
+
end
|
835
|
+
# ===================================================================== #
|
836
|
+
# === :font_size_to_use
|
837
|
+
# ===================================================================== #
|
838
|
+
if _.has_key?(:font_size_to_use)
|
839
|
+
font_size_to_use = _.delete(:font_size_to_use)
|
840
|
+
end
|
841
|
+
end
|
842
|
+
return '
|
843
|
+
/*
|
844
|
+
* This here is for the default CSS calculator. Each individual clickable
|
845
|
+
* "button" of the calculator will have these CSS rules.
|
846
|
+
*
|
847
|
+
* It is part of the .css file here because we may want to
|
848
|
+
* easily re-use this in sinatra as well.
|
849
|
+
*/
|
850
|
+
.input_for_the_calculator
|
851
|
+
{
|
852
|
+
display: inline-block;
|
853
|
+
text-decoration: none;
|
854
|
+
color: #fff;
|
855
|
+
font-weight: bold;
|
856
|
+
margin: 12px;
|
857
|
+
padding: 12px;
|
858
|
+
width: 60px;
|
859
|
+
text-align: center;
|
860
|
+
background-image: -webkit-linear-gradient(bottom, rgb(73,132,180) 0%, rgb(97,155,203) 100%);
|
861
|
+
box-shadow: 12px 5px 0px #2b638f, 0px 3px 10px rgba(0,0,0,.2);
|
862
|
+
border: 2px dotted #2d6898;
|
863
|
+
font-size: '+font_size_to_use.to_s+';
|
864
|
+
background-color: '+background_colour_to_use.to_s+';
|
865
|
+
}
|
866
|
+
'
|
867
|
+
end
|
868
|
+
|
869
|
+
# ========================================================================= #
|
870
|
+
# === Cyberweb.css_rules_for_the_polaroid_card_effect
|
871
|
+
# ========================================================================= #
|
872
|
+
def self.css_rules_for_the_polaroid_card_effect(
|
873
|
+
width = '300px',
|
874
|
+
min_height = '240px'
|
875
|
+
)
|
876
|
+
return '
|
877
|
+
.polaroid_card {
|
878
|
+
background-color: var(--background);
|
879
|
+
display: block;
|
880
|
+
width: '+width.to_s+';
|
881
|
+
min-height: '+min_height.to_s+';
|
882
|
+
cursor: pointer;
|
883
|
+
padding: 15px;
|
884
|
+
border: 3px solid var(--primary);
|
885
|
+
box-shadow:
|
886
|
+
10px -10px 0 -3px var(--background), 10px -10px var(--green),
|
887
|
+
20px -20px 0 -3px var(--background), 20px -20px var(--yellow),
|
888
|
+
30px -30px 0 -3px var(--background), 30px -30px var(--orange),
|
889
|
+
40px -40px 0 -3px var(--background), 40px -40px var(--red);
|
890
|
+
}
|
891
|
+
|
892
|
+
.polaroid_card:hover {
|
893
|
+
animation: shadow_wave_animation 1s ease infinite;
|
894
|
+
}
|
895
|
+
|
896
|
+
@keyframes shadow_wave_animation {
|
897
|
+
0% {
|
898
|
+
border: 3px solid var(--primary);
|
899
|
+
box-shadow: 10px -10px 0 -3px var(--background), 10px -10px var(--green),
|
900
|
+
20px -20px 0 -3px var(--background), 20px -20px var(--yellow),
|
901
|
+
30px -30px 0 -3px var(--background), 30px -30px var(--orange),
|
902
|
+
40px -40px 0 -3px var(--background), 40px -40px var(--red);
|
903
|
+
}
|
904
|
+
20% {
|
905
|
+
border: 3px solid var(--red);
|
906
|
+
box-shadow: 10px -10px 0 -3px var(--background), 10px -10px var(--primary),
|
907
|
+
20px -20px 0 -3px var(--background), 20px -20px var(--green),
|
908
|
+
30px -30px 0 -3px var(--background), 30px -30px var(--yellow),
|
909
|
+
40px -40px 0 -3px var(--background), 40px -40px var(--orange);
|
910
|
+
}
|
911
|
+
40% {
|
912
|
+
border: 3px solid var(--orange);
|
913
|
+
box-shadow: 10px -10px 0 -3px var(--background), 10px -10px var(--red),
|
914
|
+
20px -20px 0 -3px var(--background), 20px -20px var(--primary),
|
915
|
+
30px -30px 0 -3px var(--background), 30px -30px var(--green),
|
916
|
+
40px -40px 0 -3px var(--background), 40px -40px var(--yellow);
|
917
|
+
}
|
918
|
+
60% {
|
919
|
+
border: 3px solid var(--yellow);
|
920
|
+
box-shadow: 10px -10px 0 -3px var(--background), 10px -10px var(--orange),
|
921
|
+
20px -20px 0 -3px var(--background), 20px -20px var(--red),
|
922
|
+
30px -30px 0 -3px var(--background), 30px -30px var(--primary),
|
923
|
+
40px -40px 0 -3px var(--background), 40px -40px var(--green);
|
924
|
+
}
|
925
|
+
80% {
|
926
|
+
border: 3px solid var(--green);
|
927
|
+
box-shadow: 10px -10px 0 -3px var(--background), 10px -10px var(--yellow),
|
928
|
+
20px -20px 0 -3px var(--background), 20px -20px var(--orange),
|
929
|
+
30px -30px 0 -3px var(--background), 30px -30px var(--red),
|
930
|
+
40px -40px 0 -3px var(--background), 40px -40px var(--primary);
|
931
|
+
}
|
932
|
+
100% {
|
933
|
+
border: 3px solid var(--primary);
|
934
|
+
box-shadow: 10px -10px 0 -3px var(--background), 10px -10px var(--green),
|
935
|
+
20px -20px 0 -3px var(--background), 20px -20px var(--yellow),
|
936
|
+
30px -30px 0 -3px var(--background), 30px -30px var(--orange),
|
937
|
+
40px -40px 0 -3px var(--background), 40px -40px var(--red);
|
938
|
+
}
|
939
|
+
|
940
|
+
}
|
941
|
+
|
942
|
+
:root {
|
943
|
+
--primary: #22D2A0;
|
944
|
+
--secondary: #192824;
|
945
|
+
--background: #192824;
|
946
|
+
--green: #1FC11B;
|
947
|
+
--yellow: #FFD913;
|
948
|
+
--orange: #FF9C55;
|
949
|
+
--red: #FF5555;
|
950
|
+
}
|
951
|
+
|
952
|
+
.polaroid_card p {
|
953
|
+
font-family: "Archivo", sans-serif;
|
954
|
+
font-size: 25px;
|
955
|
+
text-transform: uppercase;
|
956
|
+
letter-spacing: 0.5px;
|
957
|
+
margin-bottom: 10px;
|
958
|
+
color: var(--primary);
|
959
|
+
box-sizing: border-box;
|
960
|
+
}
|
961
|
+
|
962
|
+
.polaroid_card h2 {
|
963
|
+
font-size: 14px;
|
964
|
+
font-family: "Archivo Black", "Archivo", sans-serif;
|
965
|
+
font-weight: normal;
|
966
|
+
color: var(--primary);
|
967
|
+
box-sizing: border-box;
|
968
|
+
}
|
969
|
+
|
970
|
+
'
|
971
|
+
end
|
972
|
+
|
973
|
+
# ========================================================================= #
|
974
|
+
# === Cyberweb.css_rules_for_the_submarine_component
|
975
|
+
# ========================================================================= #
|
976
|
+
def self.css_rules_for_the_submarine_component
|
977
|
+
result = <<-EOF
|
978
|
+
.outer_container_for_the_submarine {
|
979
|
+
position: absolute;
|
980
|
+
top: 0%;
|
981
|
+
left: 0%;
|
982
|
+
width: 100%;
|
983
|
+
height: 100%;
|
984
|
+
background: #130560;
|
985
|
+
overflow: hidden;
|
986
|
+
}
|
987
|
+
.submarine__container {
|
988
|
+
position: absolute;
|
989
|
+
top: 50%;
|
990
|
+
left: 50%;
|
991
|
+
width: 400px;
|
992
|
+
height: 200px;
|
993
|
+
transform: translate(-50%, -50%);
|
994
|
+
}
|
995
|
+
.submarine__body {
|
996
|
+
position: absolute;
|
997
|
+
top: 50%;
|
998
|
+
left: 50%;
|
999
|
+
width: 250px;
|
1000
|
+
height: 80px;
|
1001
|
+
background: #e30449;
|
1002
|
+
border-radius: 50px;
|
1003
|
+
transform: translate(-50%, -50%);
|
1004
|
+
}
|
1005
|
+
.submarine__propeller {
|
1006
|
+
position: absolute;
|
1007
|
+
left: 80%;
|
1008
|
+
top: 50%;
|
1009
|
+
width: 30px;
|
1010
|
+
height: 50px;
|
1011
|
+
transform: translate(0%, -50%);
|
1012
|
+
perspective: 600px;
|
1013
|
+
}
|
1014
|
+
.propeller__perspective {
|
1015
|
+
width: 100%;
|
1016
|
+
height: 100%;
|
1017
|
+
transition: transform 1s;
|
1018
|
+
transform-style: preserve-3d;
|
1019
|
+
animation: rotateInfinite 1s linear infinite;
|
1020
|
+
cursor: pointer;
|
1021
|
+
}
|
1022
|
+
.submarine__propeller-parts {
|
1023
|
+
position: absolute;
|
1024
|
+
left: 0%;
|
1025
|
+
width: 100%;
|
1026
|
+
height: 100%;
|
1027
|
+
top: 0%;
|
1028
|
+
perspective: 1000px;
|
1029
|
+
transform-style: preserve-3d;
|
1030
|
+
}
|
1031
|
+
.darkOne {
|
1032
|
+
top: 0%;
|
1033
|
+
background: #f7ac08;
|
1034
|
+
transform: rotateY(180deg) rotateX(225deg);
|
1035
|
+
}
|
1036
|
+
.lightOne {
|
1037
|
+
top: 0%;
|
1038
|
+
background: #f7e349;
|
1039
|
+
transform: rotateX(45deg);
|
1040
|
+
}
|
1041
|
+
.submarine__sail {
|
1042
|
+
position: absolute;
|
1043
|
+
top: 40%;
|
1044
|
+
left: 50%;
|
1045
|
+
width: 90px;
|
1046
|
+
height: 50px;
|
1047
|
+
transform: translate(-50%, -100%);
|
1048
|
+
background: #c6003d;
|
1049
|
+
clip-path: polygon(0% 0%, 70% 0%, 100% 100%, 0% 100%);
|
1050
|
+
}
|
1051
|
+
.submarine__sail-shadow {
|
1052
|
+
position: absolute;
|
1053
|
+
width: 160%;
|
1054
|
+
height: 10%;
|
1055
|
+
background: #a10532;
|
1056
|
+
border-radius: 5px;
|
1057
|
+
}
|
1058
|
+
.dark1 {
|
1059
|
+
left: 0%;
|
1060
|
+
top: 0%;
|
1061
|
+
transform: translate(0%, -33%);
|
1062
|
+
}
|
1063
|
+
.dark2 {
|
1064
|
+
left: 0%;
|
1065
|
+
top: 50%;
|
1066
|
+
}
|
1067
|
+
.light1 {
|
1068
|
+
left: 20%;
|
1069
|
+
top: 20%;
|
1070
|
+
width: 50%;
|
1071
|
+
background: #ef689e;
|
1072
|
+
}
|
1073
|
+
.submarine__window {
|
1074
|
+
width: 25px;
|
1075
|
+
height: 25px;
|
1076
|
+
border-radius: 100%;
|
1077
|
+
background-image: linear-gradient(45deg, #c9e5d9, #fff);
|
1078
|
+
border: 8px solid #a10532;
|
1079
|
+
z-index: 10;
|
1080
|
+
animation: shadow-change 1s linear infinite;
|
1081
|
+
}
|
1082
|
+
.one,
|
1083
|
+
.two {
|
1084
|
+
position: absolute;
|
1085
|
+
top: 50%;
|
1086
|
+
transform: translate(-50%, -50%);
|
1087
|
+
}
|
1088
|
+
.one {
|
1089
|
+
left: 40%;
|
1090
|
+
}
|
1091
|
+
.two {
|
1092
|
+
left: 20%;
|
1093
|
+
}
|
1094
|
+
.submarine__shadow-dark {
|
1095
|
+
position: absolute;
|
1096
|
+
left: 70%;
|
1097
|
+
top: 50%;
|
1098
|
+
width: 70px;
|
1099
|
+
height: 10px;
|
1100
|
+
border-radius: 5px;
|
1101
|
+
transform: translate(-50%, -50%);
|
1102
|
+
background: #a10532;
|
1103
|
+
}
|
1104
|
+
.submarine__shadow-light {
|
1105
|
+
position: absolute;
|
1106
|
+
left: 35%;
|
1107
|
+
top: 13%;
|
1108
|
+
width: 100px;
|
1109
|
+
height: 6px;
|
1110
|
+
border-radius: 5px;
|
1111
|
+
transform: translate(-50%, -50%);
|
1112
|
+
background: #ef689e;
|
1113
|
+
}
|
1114
|
+
.submarine__shadow-arcLight {
|
1115
|
+
position: absolute;
|
1116
|
+
top: 65%;
|
1117
|
+
left: 80%;
|
1118
|
+
width: 20px;
|
1119
|
+
height: 20px;
|
1120
|
+
border-radius: 50%;
|
1121
|
+
background: #ef689e;
|
1122
|
+
}
|
1123
|
+
.submarine__periscope {
|
1124
|
+
position: absolute;
|
1125
|
+
top: 0%;
|
1126
|
+
left: 40%;
|
1127
|
+
width: 20px;
|
1128
|
+
height: 50px;
|
1129
|
+
border-right: 10px solid #e92d77;
|
1130
|
+
border-top: 10px solid #c6003d;
|
1131
|
+
border-left: 0px solid transparent;
|
1132
|
+
border-bottom: 0px solid transparent;
|
1133
|
+
border-top-right-radius: 10px;
|
1134
|
+
}
|
1135
|
+
.submarine__periscope-glass {
|
1136
|
+
position: absolute;
|
1137
|
+
left: 40%;
|
1138
|
+
top: 0%;
|
1139
|
+
width: 5px;
|
1140
|
+
height: 15px;
|
1141
|
+
background: #f7ac08;
|
1142
|
+
transform: translate(-50%, -15%);
|
1143
|
+
}
|
1144
|
+
.light {
|
1145
|
+
position: absolute;
|
1146
|
+
top: 0%;
|
1147
|
+
left: 0%;
|
1148
|
+
width: 500px;
|
1149
|
+
height: 100px;
|
1150
|
+
background: linear-gradient(to left, #817e97, #130560);
|
1151
|
+
/* The points are: centered top, left bottom, right bottom */
|
1152
|
+
clip-path: polygon(0% 0%, 50% 45%, 50% 55%, 0% 100%);
|
1153
|
+
transform: translate(-18%, -45%);
|
1154
|
+
}
|
1155
|
+
|
1156
|
+
.bubbles__container {
|
1157
|
+
position: absolute;
|
1158
|
+
top: 50%;
|
1159
|
+
left: 55%;
|
1160
|
+
width: 100px;
|
1161
|
+
height: 50px;
|
1162
|
+
transform: translate(100%, -50%);
|
1163
|
+
}
|
1164
|
+
.bubbles {
|
1165
|
+
position: absolute;
|
1166
|
+
width: 10px;
|
1167
|
+
height: 10px;
|
1168
|
+
border-radius: 100%;
|
1169
|
+
left: 5%;
|
1170
|
+
top: 5%;
|
1171
|
+
background: #fff;
|
1172
|
+
opacity: 0.8;
|
1173
|
+
}
|
1174
|
+
.bubble-1 {
|
1175
|
+
top: 15%;
|
1176
|
+
left: 1%;
|
1177
|
+
opacity: 0;
|
1178
|
+
animation: move-right 1s infinite linear;
|
1179
|
+
animation-delay: 0.25s;
|
1180
|
+
}
|
1181
|
+
.bubble-2 {
|
1182
|
+
top: 30%;
|
1183
|
+
left: 1%;
|
1184
|
+
opacity: 0;
|
1185
|
+
animation: move-right 1s infinite linear;
|
1186
|
+
animation-delay: 0.5s;
|
1187
|
+
}
|
1188
|
+
.bubble-3 {
|
1189
|
+
top: 45%;
|
1190
|
+
left: 1%;
|
1191
|
+
opacity: 0;
|
1192
|
+
animation: move-right 1s infinite linear;
|
1193
|
+
animation-delay: 0.75s;
|
1194
|
+
}
|
1195
|
+
.bubble-4 {
|
1196
|
+
top: 60%;
|
1197
|
+
left: 1%;
|
1198
|
+
opacity: 0;
|
1199
|
+
animation: move-right 1s infinite linear;
|
1200
|
+
animation-delay: 1s;
|
1201
|
+
}
|
1202
|
+
.ground__container {
|
1203
|
+
position: absolute;
|
1204
|
+
top: 75%;
|
1205
|
+
left: 0%;
|
1206
|
+
width: 100%;
|
1207
|
+
height: 25%;
|
1208
|
+
background: #08003b;
|
1209
|
+
margin-top: 20px;
|
1210
|
+
}
|
1211
|
+
.ground1 {
|
1212
|
+
top: 75%;
|
1213
|
+
height: 100%;
|
1214
|
+
background: #0c0051;
|
1215
|
+
}
|
1216
|
+
.ground2 {
|
1217
|
+
position: absolute;
|
1218
|
+
top: 35%;
|
1219
|
+
width: 100%;
|
1220
|
+
height: 100%;
|
1221
|
+
background: #08003b;
|
1222
|
+
}
|
1223
|
+
.ground span {
|
1224
|
+
position: absolute;
|
1225
|
+
width: 60px;
|
1226
|
+
height: 60px;
|
1227
|
+
border-radius: 100%;
|
1228
|
+
}
|
1229
|
+
.ground1 span {
|
1230
|
+
background: #0c0051;
|
1231
|
+
}
|
1232
|
+
.ground2 span {
|
1233
|
+
background: #08003b;
|
1234
|
+
width: 80px;
|
1235
|
+
height: 80px;
|
1236
|
+
border-radius: 100%;
|
1237
|
+
transform: translateY(30%);
|
1238
|
+
}
|
1239
|
+
.up-1 {
|
1240
|
+
left: 0%;
|
1241
|
+
top: -2px;
|
1242
|
+
animation: moveThegroundRight 3s infinite linear;
|
1243
|
+
}
|
1244
|
+
.up-2 {
|
1245
|
+
left: -10%;
|
1246
|
+
top: -4px;
|
1247
|
+
animation: moveThegroundRight 4s infinite linear;
|
1248
|
+
}
|
1249
|
+
.up-3 {
|
1250
|
+
left: -20%;
|
1251
|
+
top: -6px;
|
1252
|
+
animation: moveThegroundRight 5s infinite linear;
|
1253
|
+
}
|
1254
|
+
.up-4 {
|
1255
|
+
left: -30%;
|
1256
|
+
top: -8px;
|
1257
|
+
animation: moveThegroundRight 6s infinite linear;
|
1258
|
+
}
|
1259
|
+
.up-5 {
|
1260
|
+
left: -40%;
|
1261
|
+
top: -10px;
|
1262
|
+
animation: moveThegroundRight 7s infinite linear;
|
1263
|
+
}
|
1264
|
+
.up-6 {
|
1265
|
+
left: -50%;
|
1266
|
+
top: -12px;
|
1267
|
+
animation: moveThegroundRight 8s infinite linear;
|
1268
|
+
}
|
1269
|
+
.up-7 {
|
1270
|
+
left: -60%;
|
1271
|
+
top: -14px;
|
1272
|
+
animation: moveThegroundRight 9s infinite linear;
|
1273
|
+
}
|
1274
|
+
.up-8 {
|
1275
|
+
left: -70%;
|
1276
|
+
top: -16px;
|
1277
|
+
animation: moveThegroundRight 10s infinite linear;
|
1278
|
+
}
|
1279
|
+
.up-9 {
|
1280
|
+
left: -80%;
|
1281
|
+
top: -18px;
|
1282
|
+
animation: moveThegroundRight 11s infinite linear;
|
1283
|
+
}
|
1284
|
+
.up-10 {
|
1285
|
+
left: -90%;
|
1286
|
+
top: -20px;
|
1287
|
+
animation: moveThegroundRight 12s infinite linear;
|
1288
|
+
}
|
1289
|
+
.up-11 {
|
1290
|
+
left: -100%;
|
1291
|
+
top: -22px;
|
1292
|
+
animation: moveThegroundRight 13s infinite linear;
|
1293
|
+
}
|
1294
|
+
.up-12 {
|
1295
|
+
left: -110%;
|
1296
|
+
top: -24px;
|
1297
|
+
animation: moveThegroundRight 14s infinite linear;
|
1298
|
+
}
|
1299
|
+
.up-13 {
|
1300
|
+
left: -120%;
|
1301
|
+
top: -26px;
|
1302
|
+
animation: moveThegroundRight 15s infinite linear;
|
1303
|
+
}
|
1304
|
+
.up-14 {
|
1305
|
+
left: -130%;
|
1306
|
+
top: -28px;
|
1307
|
+
animation: moveThegroundRight 16s infinite linear;
|
1308
|
+
}
|
1309
|
+
.up-15 {
|
1310
|
+
left: -140%;
|
1311
|
+
top: -30px;
|
1312
|
+
animation: moveThegroundRight 17s infinite linear;
|
1313
|
+
}
|
1314
|
+
.up-16 {
|
1315
|
+
left: -150%;
|
1316
|
+
top: -32px;
|
1317
|
+
animation: moveThegroundRight 18s infinite linear;
|
1318
|
+
}
|
1319
|
+
.up-17 {
|
1320
|
+
left: -160%;
|
1321
|
+
top: -34px;
|
1322
|
+
animation: moveThegroundRight 19s infinite linear;
|
1323
|
+
}
|
1324
|
+
.up-18 {
|
1325
|
+
left: -170%;
|
1326
|
+
top: -36px;
|
1327
|
+
animation: moveThegroundRight 20s infinite linear;
|
1328
|
+
}
|
1329
|
+
.up-19 {
|
1330
|
+
left: -180%;
|
1331
|
+
top: -38px;
|
1332
|
+
animation: moveThegroundRight 21s infinite linear;
|
1333
|
+
}
|
1334
|
+
.up-20 {
|
1335
|
+
left: -190%;
|
1336
|
+
top: -40px;
|
1337
|
+
animation: moveThegroundRight 22s infinite linear;
|
1338
|
+
}
|
1339
|
+
|
1340
|
+
@keyframes shadow-change {
|
1341
|
+
0%, 100% {
|
1342
|
+
background-image: linear-gradient(45deg, #c9e5d9 0%, #c9e5d9 20%, #fff 21%, #fff 39%, #c9e5d9 40%, #fff 41%, #fff 59%, #c9e5d9 60%);
|
1343
|
+
}
|
1344
|
+
20% {
|
1345
|
+
background-image: linear-gradient(45deg, #c9e5d9 20%, #c9e5d9 40%, #fff 41%, #fff 59%, #c9e5d9 60%, #fff 61%, #fff 79%, #c9e5d9 80%);
|
1346
|
+
}
|
1347
|
+
40% {
|
1348
|
+
background-image: linear-gradient(45deg, #c9e5d9 40%, #c9e5d9 60%, #fff 61%, #fff 79%, #c9e5d9 80%, #fff 81%, #fff 99%, #c9e5d9 0%);
|
1349
|
+
}
|
1350
|
+
60% {
|
1351
|
+
background-image: linear-gradient(45deg, #c9e5d9 60%, #c9e5d9 80%, #fff 81%, #fff 99%, #c9e5d9 0%, #fff 1%, #fff 19%, #c9e5d9 20%);
|
1352
|
+
}
|
1353
|
+
80% {
|
1354
|
+
background-image: linear-gradient(45deg, #c9e5d9 80%, #c9e5d9 0%, #fff 1%, #fff 19%, #c9e5d9 20%, #fff 21%, #fff 39%, #c9e5d9 40%);
|
1355
|
+
}
|
1356
|
+
}
|
1357
|
+
|
1358
|
+
@keyframes move-right {
|
1359
|
+
0% {
|
1360
|
+
opacity: 0;
|
1361
|
+
}
|
1362
|
+
10% {
|
1363
|
+
opacity: 0.4;
|
1364
|
+
transform: translate(10%, 10%);
|
1365
|
+
}
|
1366
|
+
50% {
|
1367
|
+
opacity: 0.2;
|
1368
|
+
transform: translate(450%, 25%);
|
1369
|
+
}
|
1370
|
+
80% {
|
1371
|
+
opacity: 0;
|
1372
|
+
transform: translateX(555%);
|
1373
|
+
}
|
1374
|
+
100% {
|
1375
|
+
opacity: 0;
|
1376
|
+
left: 0%;
|
1377
|
+
top: 0%;
|
1378
|
+
}
|
1379
|
+
}
|
1380
|
+
|
1381
|
+
@keyframes rotateInfinite {
|
1382
|
+
0% {
|
1383
|
+
transform: rotateX(0deg);
|
1384
|
+
}
|
1385
|
+
50% {
|
1386
|
+
transform: rotateX(180deg);
|
1387
|
+
}
|
1388
|
+
100% {
|
1389
|
+
transform: rotateX(360deg);
|
1390
|
+
}
|
1391
|
+
}
|
1392
|
+
@keyframes moveThegroundRight {
|
1393
|
+
90% {
|
1394
|
+
opacity: 1;
|
1395
|
+
left: 100%;
|
1396
|
+
}
|
1397
|
+
95%, 100% {
|
1398
|
+
left: 1050%;
|
1399
|
+
opacity: 0;
|
1400
|
+
}
|
1401
|
+
}
|
1402
|
+
EOF
|
1403
|
+
return result
|
1404
|
+
end
|
1405
|
+
|
1406
|
+
# ========================================================================= #
|
1407
|
+
# === Cyberweb.return_css_for_sunny_weather
|
1408
|
+
# ========================================================================= #
|
1409
|
+
def self.return_css_for_sunny_weather
|
1410
|
+
return '
|
1411
|
+
/* Weather: SUNNY */
|
1412
|
+
.weather_sunny {
|
1413
|
+
animation: animation_sunny 15s linear infinite;
|
1414
|
+
background: linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 50%, rgba(255,255,255,0) 100%);
|
1415
|
+
height: 140px;
|
1416
|
+
width: 20px;
|
1417
|
+
margin-left: -15px;
|
1418
|
+
position: absolute;
|
1419
|
+
left: 90px;
|
1420
|
+
top: 20px;
|
1421
|
+
}
|
1422
|
+
.weather_sunny:before {
|
1423
|
+
background-color: linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 50%, rgba(255,255,255,0) 100%);
|
1424
|
+
content: '';
|
1425
|
+
height: 140px;
|
1426
|
+
width: 20px;
|
1427
|
+
opacity: 1;
|
1428
|
+
position: absolute;
|
1429
|
+
bottom: 0px;
|
1430
|
+
left: 0px;
|
1431
|
+
transform: rotate(90deg);
|
1432
|
+
}
|
1433
|
+
.weather_sunny:after {
|
1434
|
+
background-color: #FFEE44;
|
1435
|
+
border-radius: 50%;
|
1436
|
+
box-shadow: rgba(255,255,0,0.2) 0 0 0 15px;
|
1437
|
+
content: '';
|
1438
|
+
height: 80px;
|
1439
|
+
width: 80px;
|
1440
|
+
position: absolute;
|
1441
|
+
left: -30px;
|
1442
|
+
top: 30px;
|
1443
|
+
}
|
1444
|
+
|
1445
|
+
.weather_container {
|
1446
|
+
background-color: linear-gradient(left, #00BBFF, #00BBFF 14.3%, #2EB5E5 14.3%, #2EB5E5 28.6%, #E6E6E6 28.6%, #E6E6E6 42.9%, #F3D166 42.9%, #F3D166 57.2%, #222233 57.2%, #222233 71.5%, #444444 71.5%, #444444 85.8%, #85DB8C 85.8%);
|
1447
|
+
transform: scale(.9);
|
1448
|
+
width: 1200px;
|
1449
|
+
position: absolute;
|
1450
|
+
height: 210px;
|
1451
|
+
left: 50%;
|
1452
|
+
top: 50%;
|
1453
|
+
margin: -65px -600px;
|
1454
|
+
}
|
1455
|
+
|
1456
|
+
@keyframes animation_sunny {
|
1457
|
+
0% { transform: rotate(0deg); }
|
1458
|
+
100% { transform: rotate(360deg); }
|
1459
|
+
}
|
1460
|
+
|
1461
|
+
'
|
1462
|
+
end
|
1463
|
+
|
1464
|
+
# ========================================================================= #
|
1465
|
+
# === Cyberweb.return_css_for_tetris
|
1466
|
+
#
|
1467
|
+
# This is the CSS that will be returned when we want to enable the small
|
1468
|
+
# tetris-game that is distributed with the cyberweb project.
|
1469
|
+
# ========================================================================= #
|
1470
|
+
def self.return_css_for_tetris
|
1471
|
+
return 'canvas#tetris {
|
1472
|
+
position: absolute;
|
1473
|
+
top: 45%;
|
1474
|
+
left: 50%;
|
1475
|
+
width: 640px;
|
1476
|
+
height: 640px;
|
1477
|
+
margin: -320px 0 0 -320px;
|
1478
|
+
}
|
1479
|
+
'
|
1480
|
+
end
|
1481
|
+
|
1482
|
+
# ========================================================================= #
|
1483
|
+
# === Cyberweb.return_this_css_component
|
1484
|
+
# ========================================================================= #
|
1485
|
+
def self.return_this_css_component(
|
1486
|
+
i = :animated_bike
|
1487
|
+
)
|
1488
|
+
i = i.to_s.dup
|
1489
|
+
unless i.end_with? '.css'
|
1490
|
+
i << '.css'
|
1491
|
+
end
|
1492
|
+
unless i.include? '/'
|
1493
|
+
i.prepend(
|
1494
|
+
Cyberweb.project_base_directory?+
|
1495
|
+
'cascading_style_sheets/custom/'
|
1496
|
+
)
|
1497
|
+
end
|
1498
|
+
# ======================================================================= #
|
1499
|
+
# i will now be something like:
|
1500
|
+
#
|
1501
|
+
# /usr/lib/ruby/site_ruby/3.1.0/cyberweb/cascading_style_sheets/custom/animated_bike.css
|
1502
|
+
#
|
1503
|
+
# ======================================================================= #
|
1504
|
+
if File.exist? i
|
1505
|
+
i = File.read(i)
|
1506
|
+
end
|
1507
|
+
return i
|
1508
|
+
end
|
1509
|
+
|
1510
|
+
# ========================================================================= #
|
1511
|
+
# === Cyberweb.return_the_content_of_these_css_classes
|
1512
|
+
#
|
1513
|
+
# This method will take CSS classes, find the corresponding rule for
|
1514
|
+
# them and then return this rule as a String.
|
1515
|
+
#
|
1516
|
+
# Usage example:
|
1517
|
+
#
|
1518
|
+
# x = Cyberweb.return_the_content_of_these_css_classes('input_for_the_calculator')
|
1519
|
+
#
|
1520
|
+
# ========================================================================= #
|
1521
|
+
def self.return_the_content_of_these_css_classes(
|
1522
|
+
these_css_classes = 'BG_BLACK pad0_4em'
|
1523
|
+
)
|
1524
|
+
original_input = ''.dup
|
1525
|
+
Dir[
|
1526
|
+
DIRECTORY_WITH_CSS_FILES+'*.css'
|
1527
|
+
].each {|this_css_file|
|
1528
|
+
original_input << File.read(this_css_file)
|
1529
|
+
original_input << "\n"
|
1530
|
+
}
|
1531
|
+
_ = ''.dup
|
1532
|
+
these_css_classes = [these_css_classes].flatten.compact.map {|entry|
|
1533
|
+
if entry.include? ' '
|
1534
|
+
entry = entry.split(' ')
|
1535
|
+
end
|
1536
|
+
entry
|
1537
|
+
}
|
1538
|
+
these_css_classes.flatten!
|
1539
|
+
these_css_classes.each {|this_css_class|
|
1540
|
+
use_this_regex = /^(\.#{this_css_class}.+)$/
|
1541
|
+
original_input =~ use_this_regex
|
1542
|
+
_ << $1.to_s.dup+"\n"
|
1543
|
+
}
|
1544
|
+
return _
|
1545
|
+
end; self.instance_eval { alias embed_these_css_classes return_the_content_of_these_css_classes } # === Cyberweb.embed_these_css_classes
|
1546
|
+
|
1547
|
+
# ========================================================================= #
|
1548
|
+
# === Cyberweb.return_content_of_all_the_CSS_files
|
1549
|
+
#
|
1550
|
+
# This method will return, as a String, the content of all .css files
|
1551
|
+
# distributed within the Cyberweb project. (Or, more accurately, those
|
1552
|
+
# that are registered to be distributed.)
|
1553
|
+
#
|
1554
|
+
# The method can only return the content of just one .css file too;
|
1555
|
+
# simply pass it in as the argument to the method, as the following
|
1556
|
+
# example showcases.
|
1557
|
+
#
|
1558
|
+
# Usage example:
|
1559
|
+
#
|
1560
|
+
# x = Cyberweb.return_this_internal_css_file_as_a_string('misc.css')
|
1561
|
+
#
|
1562
|
+
# ========================================================================= #
|
1563
|
+
def self.return_content_of_all_the_CSS_files(
|
1564
|
+
array = Cyberweb::ARRAY_LOCAL_CSS_FILES
|
1565
|
+
)
|
1566
|
+
_ = ''.dup
|
1567
|
+
# ======================================================================= #
|
1568
|
+
# The next [] is necessary because the input may also be a String,
|
1569
|
+
# yet we must use .each on the input.
|
1570
|
+
# ======================================================================= #
|
1571
|
+
[array].flatten.compact.each {|this_css_file|
|
1572
|
+
target_file = DIRECTORY_WITH_CSS_FILES+
|
1573
|
+
this_css_file
|
1574
|
+
target_file << '.css' unless target_file.end_with? '.css'
|
1575
|
+
if File.exist? target_file
|
1576
|
+
_ << File.read(target_file)
|
1577
|
+
_ << "\n"
|
1578
|
+
end
|
1579
|
+
}
|
1580
|
+
return _
|
1581
|
+
end; self.instance_eval { alias return_this_internal_css_file_as_a_string return_content_of_all_the_CSS_files } # === Cyberweb.return_this_internal_css_file_as_a_string
|
1582
|
+
|
1583
|
+
# ========================================================================= #
|
1584
|
+
# === Cyberweb.return_this_css_style (style tag)
|
1585
|
+
#
|
1586
|
+
# This method returns a proper CSS <style> tag, that is one that
|
1587
|
+
# starts with <style> and ends with </style>.
|
1588
|
+
#
|
1589
|
+
# RANDOM_COLOUR is a special "macro" but you may also use RAND or
|
1590
|
+
# similar "macros" to get a random colour. Getting a random colour
|
1591
|
+
# may be useful in the event that you do not want to come up with
|
1592
|
+
# a colour scheme on your own.
|
1593
|
+
#
|
1594
|
+
# Personally I use this when I do not want to lookup a colour name.
|
1595
|
+
#
|
1596
|
+
# Example of what this method may return:
|
1597
|
+
#
|
1598
|
+
# "<style>color: green</style>"
|
1599
|
+
#
|
1600
|
+
# ========================================================================= #
|
1601
|
+
def self.return_this_css_style(
|
1602
|
+
i = '', # This is css_style.
|
1603
|
+
use_newlines = true
|
1604
|
+
)
|
1605
|
+
case use_newlines
|
1606
|
+
when :do_not_use_newlines,
|
1607
|
+
:remove_newlines
|
1608
|
+
use_newlines = false
|
1609
|
+
end
|
1610
|
+
_ = ''.dup # This will be the return result.
|
1611
|
+
i = i.join(N) if i.is_a? Array # Need to convert Arrays.
|
1612
|
+
if i.is_a? Hash
|
1613
|
+
if i.has_key? :style
|
1614
|
+
i = i.delete(:style)
|
1615
|
+
end
|
1616
|
+
end
|
1617
|
+
i = i.to_s
|
1618
|
+
unless i.empty?
|
1619
|
+
if i.include? 'FS'
|
1620
|
+
i.gsub!(/FS(.+)em/, 'font-size:\\1em')
|
1621
|
+
end
|
1622
|
+
# ===================================================================== #
|
1623
|
+
# How to use the following? Simple. Simply add in your css stuff
|
1624
|
+
# a line like this:
|
1625
|
+
# body { RANDOM_BACKGROUND_IMAGE }
|
1626
|
+
# ===================================================================== #
|
1627
|
+
if i.include? 'RANDOM_BACKGROUND_IMAGE'
|
1628
|
+
i.gsub!(/RANDOM_BACKGROUND_IMAGE/,
|
1629
|
+
'background-image: url("'+@fixed_path+'images/'+return_random_image+'");
|
1630
|
+
background-repeat: no-repeat;')
|
1631
|
+
end
|
1632
|
+
# ===================================================================== #
|
1633
|
+
# === Add the <style> opening tag next
|
1634
|
+
#
|
1635
|
+
# Next, add <style> tag, or <style type="text/css">
|
1636
|
+
# ===================================================================== #
|
1637
|
+
if ::Cyberweb.is_html5?
|
1638
|
+
_ << '<style>'
|
1639
|
+
else
|
1640
|
+
_ << '<style type="text/css">'
|
1641
|
+
end
|
1642
|
+
_ << NL if use_newlines
|
1643
|
+
# ===================================================================== #
|
1644
|
+
# i = remove_newlines(i)
|
1645
|
+
# ^^^ We can not remove newlines, as the css style may have
|
1646
|
+
# more than one line.
|
1647
|
+
# ===================================================================== #
|
1648
|
+
# ===================================================================== #
|
1649
|
+
# === Handle border-double pseudo-CSS element
|
1650
|
+
#
|
1651
|
+
# The next construct is a pseudo-CSS element. border double means
|
1652
|
+
# top and bottom border on an element.
|
1653
|
+
# ===================================================================== #
|
1654
|
+
if i.include? 'border-double:'
|
1655
|
+
i.gsub!(/border-double:(.+);/,'border-top: \\1; border-bottom: \\1;')
|
1656
|
+
end
|
1657
|
+
# ===================================================================== #
|
1658
|
+
# === Handle colour-input next
|
1659
|
+
# ===================================================================== #
|
1660
|
+
i = ::Cyberweb.sanitize_for_colours(i) # Since as of Jul 2011. bl $CYBERWEB/colours/colours.rb
|
1661
|
+
# ===================================================================== #
|
1662
|
+
# RANDOM_BORDER
|
1663
|
+
# ===================================================================== #
|
1664
|
+
if i.include? 'RANDOM_BORDER'
|
1665
|
+
regex = /RANDOM_BORDER_(.+)/
|
1666
|
+
match = i.match(regex)[1]
|
1667
|
+
i.gsub!(regex, ::Cyberweb.return_random_border(match))
|
1668
|
+
end
|
1669
|
+
_ << i
|
1670
|
+
_ << NL if use_newlines
|
1671
|
+
_ << '</style>'
|
1672
|
+
_ << NL if use_newlines
|
1673
|
+
end
|
1674
|
+
return _
|
1675
|
+
end; self.instance_eval { alias style_tag return_this_css_style } # === Cyberweb.style_tag
|
1676
|
+
self.instance_eval { alias css_style return_this_css_style } # === Cyberweb.css_style
|
1677
|
+
|
1678
|
+
# ========================================================================= #
|
1679
|
+
# === listing_css=
|
1680
|
+
#
|
1681
|
+
# Use this method to modify the "global" variable @listing_css_object.
|
1682
|
+
#
|
1683
|
+
# You can also use the method listing_css instead.
|
1684
|
+
#
|
1685
|
+
# Usage example:
|
1686
|
+
#
|
1687
|
+
# Cyberweb.listing_css = '<b class="red">'
|
1688
|
+
#
|
1689
|
+
# ========================================================================= #
|
1690
|
+
def listing_css=(i)
|
1691
|
+
::Cyberweb.listing_css_object = i
|
1692
|
+
end; alias listing_css listing_css= # === listing_css
|
1693
|
+
|
1694
|
+
# ========================================================================= #
|
1695
|
+
# === Cyberweb.css_comment
|
1696
|
+
#
|
1697
|
+
# This method will simply make a CSS comment.
|
1698
|
+
# ========================================================================= #
|
1699
|
+
def self.css_comment(i)
|
1700
|
+
return "/* #{i} */#{NL}"
|
1701
|
+
end
|
1702
|
+
|
1703
|
+
# ========================================================================= #
|
1704
|
+
# === TEMPLATES
|
1705
|
+
#
|
1706
|
+
# Next we load up some css templates.
|
1707
|
+
# ========================================================================= #
|
1708
|
+
|
1709
|
+
# ========================================================================= #
|
1710
|
+
# === Cyberweb::TEMPLATE1
|
1711
|
+
# ========================================================================= #
|
1712
|
+
if File.exist? PROJECT_BASE_DIR+CSS_FILES.first
|
1713
|
+
TEMPLATE1 = File.readlines(
|
1714
|
+
PROJECT_BASE_DIR+CSS_FILES.first,
|
1715
|
+
encoding: ::Cyberweb.main_encoding?
|
1716
|
+
).join('') # <- This is cascading_style_sheets/default.css
|
1717
|
+
else
|
1718
|
+
TEMPLATE1 = ''
|
1719
|
+
end
|
1720
|
+
|
1721
|
+
# ========================================================================= #
|
1722
|
+
# === TEMPLATE2
|
1723
|
+
# ========================================================================= #
|
1724
|
+
if File.exist? DIRECTORY_WITH_CSS_FILES+'template2.css'
|
1725
|
+
TEMPLATE2 = File.readlines(
|
1726
|
+
DIRECTORY_WITH_CSS_FILES+'template2.css',
|
1727
|
+
encoding: ::Cyberweb.main_encoding?
|
1728
|
+
).join('')
|
1729
|
+
else
|
1730
|
+
TEMPLATE2 = ''
|
1731
|
+
end
|
1732
|
+
|
1733
|
+
# ========================================================================= #
|
1734
|
+
# === CODE_TEMPLATE
|
1735
|
+
# ========================================================================= #
|
1736
|
+
if File.exist? DIRECTORY_WITH_CSS_FILES+'code.css'
|
1737
|
+
CODE_TEMPLATE = File.readlines(
|
1738
|
+
DIRECTORY_WITH_CSS_FILES+'code.css',
|
1739
|
+
encoding: ::Cyberweb.main_encoding?
|
1740
|
+
).join('')
|
1741
|
+
else
|
1742
|
+
CODE_TEMPLATE = ''
|
1743
|
+
end
|
1744
|
+
|
1745
|
+
# ========================================================================= #
|
1746
|
+
# === TEMPLATE_RUBY_REGEX
|
1747
|
+
# ========================================================================= #
|
1748
|
+
if File.exist? DIRECTORY_WITH_CSS_FILES+'ruby_regexes.css'
|
1749
|
+
TEMPLATE_RUBY_REGEX = File.readlines(
|
1750
|
+
"#{DIRECTORY_WITH_CSS_FILES}ruby_regexes.css",
|
1751
|
+
encoding: ::Cyberweb.main_encoding?
|
1752
|
+
).join('')
|
1753
|
+
else
|
1754
|
+
TEMPLATE_RUBY_REGEX = ''
|
1755
|
+
end
|
1756
|
+
|
1757
|
+
# ========================================================================= #
|
1758
|
+
# === @array_found_these_css_classes
|
1759
|
+
#
|
1760
|
+
# This Array will be populated whenever a css class is used in a
|
1761
|
+
# WebApp.
|
1762
|
+
#
|
1763
|
+
# These css classes will be stored in a unique fashion.
|
1764
|
+
#
|
1765
|
+
# NO duplicates!
|
1766
|
+
# ========================================================================= #
|
1767
|
+
@array_found_these_css_classes = []
|
1768
|
+
|
1769
|
+
# ========================================================================= #
|
1770
|
+
# === Cyberweb.print_this_css
|
1771
|
+
#
|
1772
|
+
# Use this to print your custom css style.
|
1773
|
+
# ========================================================================= #
|
1774
|
+
def self.print_this_css(css)
|
1775
|
+
ee return_this_css_style(css)
|
1776
|
+
end; self.instance_eval { alias add_css_style print_this_css } # === Cyberweb.add_css_style (Added 12.11.2014)
|
1777
|
+
self.instance_eval { alias inline_css print_this_css } # === Cyberweb.inline_css
|
1778
|
+
|
1779
|
+
# ========================================================================= #
|
1780
|
+
# === Cyberweb.output_this_css_style
|
1781
|
+
# ========================================================================= #
|
1782
|
+
def self.output_this_css_style(i)
|
1783
|
+
print return_this_css_style(i)
|
1784
|
+
end
|
1785
|
+
|
1786
|
+
# ========================================================================= #
|
1787
|
+
# === Cyberweb.generate_cap_box
|
1788
|
+
#
|
1789
|
+
# Code in this method can be used to generate a "cap-box", which is
|
1790
|
+
# mostly a div header with some content.
|
1791
|
+
#
|
1792
|
+
# The method also accepts a Block, such as:
|
1793
|
+
#
|
1794
|
+
# {{ width: '80%' }}
|
1795
|
+
#
|
1796
|
+
# ========================================================================= #
|
1797
|
+
def self.generate_cap_box(
|
1798
|
+
use_this_title_for_the_upper_box = 'Hello world!',
|
1799
|
+
# ===================================================================== #
|
1800
|
+
# The next variable is the inner content - by default it will
|
1801
|
+
# be empty.
|
1802
|
+
# ===================================================================== #
|
1803
|
+
title_for_the_content_header = '',
|
1804
|
+
inner_content = '', # This is the inner content.<br>Looks fancy!<br>',
|
1805
|
+
border_to_use = '3px solid #2a2a2a',
|
1806
|
+
box_width = '700px'
|
1807
|
+
)
|
1808
|
+
if block_given?
|
1809
|
+
yielded = yield
|
1810
|
+
if yielded.is_a? Hash
|
1811
|
+
# =================================================================== #
|
1812
|
+
# === :width
|
1813
|
+
# =================================================================== #
|
1814
|
+
if yielded.has_key? :width
|
1815
|
+
box_width = yielded.delete(:width).to_s
|
1816
|
+
end
|
1817
|
+
end
|
1818
|
+
end
|
1819
|
+
css_style_to_use = '#cap_box_container {
|
1820
|
+
border: '+border_to_use+';
|
1821
|
+
background: #ddd;
|
1822
|
+
box-shadow: 0 0 5px #b1b1b1;
|
1823
|
+
}
|
1824
|
+
|
1825
|
+
.cap_box_wrapper {
|
1826
|
+
font-family: Arial, Arial, Helvetica, sans-serif;
|
1827
|
+
width: '+box_width+';
|
1828
|
+
line-height: 1.5;
|
1829
|
+
margin: 0 auto;
|
1830
|
+
}
|
1831
|
+
|
1832
|
+
.cap_box_header {
|
1833
|
+
background: #222;
|
1834
|
+
border: 5px solid #444;
|
1835
|
+
padding: 10px;
|
1836
|
+
margin: 0 -35px 20px;
|
1837
|
+
position: relative;
|
1838
|
+
}
|
1839
|
+
|
1840
|
+
.cap_box_header .cap_box_inner {
|
1841
|
+
overflow: hidden;
|
1842
|
+
color: #fff;
|
1843
|
+
}
|
1844
|
+
|
1845
|
+
#cap_box_top_main_area {
|
1846
|
+
margin-top: 20px;
|
1847
|
+
padding: 0 20px 90px;
|
1848
|
+
background-color: #fff;
|
1849
|
+
}
|
1850
|
+
|
1851
|
+
/* This is the shadow on the left hand side. */
|
1852
|
+
.cap_box_header .triangle_on_the_left_hand_side {
|
1853
|
+
border: 10px solid black;
|
1854
|
+
border-color: transparent transparent black;
|
1855
|
+
width: 0;
|
1856
|
+
height: 0;
|
1857
|
+
display: block;
|
1858
|
+
position: absolute;
|
1859
|
+
bottom: -15px;
|
1860
|
+
left: 0;
|
1861
|
+
transform: rotate(45deg);
|
1862
|
+
-webkit-transform: rotate(45deg);
|
1863
|
+
}
|
1864
|
+
|
1865
|
+
/* This is the shadow on the right hand side. */
|
1866
|
+
.cap_box_header .triangle_on_the_right_hand_side {
|
1867
|
+
border: 10px solid black;
|
1868
|
+
border-color: black transparent transparent;
|
1869
|
+
width: 0;
|
1870
|
+
height: 0;
|
1871
|
+
display: block;
|
1872
|
+
position: absolute;
|
1873
|
+
top: -15px;
|
1874
|
+
right: 0;
|
1875
|
+
transform: rotate(45deg);
|
1876
|
+
}'.dup
|
1877
|
+
return return_this_css_style(
|
1878
|
+
css_style_to_use.to_s
|
1879
|
+
).to_s+
|
1880
|
+
div('cap_box_wrapper', id: 'drag_cap_box_wrapper') {
|
1881
|
+
div(id: 'cap_box_container') {
|
1882
|
+
div(id: 'cap_box_top_main_area') {
|
1883
|
+
div('cap_box_header') {
|
1884
|
+
div('cap_box_inner') {
|
1885
|
+
ee "<b>#{use_this_title_for_the_upper_box}</b>"
|
1886
|
+
}
|
1887
|
+
ee '<span class="triangle_on_the_left_hand_side"></span>
|
1888
|
+
<span class="triangle_on_the_right_hand_side"></span>'
|
1889
|
+
}
|
1890
|
+
if title_for_the_content_header and !title_for_the_content_header.empty?
|
1891
|
+
h1_id(title_for_the_content_header.dup)
|
1892
|
+
end
|
1893
|
+
ee inner_content
|
1894
|
+
}
|
1895
|
+
}
|
1896
|
+
}
|
1897
|
+
end
|
1898
|
+
|
1899
|
+
# ========================================================================= #
|
1900
|
+
# === found_these_css_classes?
|
1901
|
+
#
|
1902
|
+
# Return which CSS classes we found. That array gets populated
|
1903
|
+
# through the method return_css_class() - see below.
|
1904
|
+
# ========================================================================= #
|
1905
|
+
def found_these_css_classes?
|
1906
|
+
::Cyberweb.found_these_css_classes
|
1907
|
+
end
|
1908
|
+
|
1909
|
+
# ========================================================================= #
|
1910
|
+
# === generate_info_box
|
1911
|
+
#
|
1912
|
+
# The original was taken from:
|
1913
|
+
#
|
1914
|
+
# http://aktuell.de.selfhtml.org/artikel/css/infobox/
|
1915
|
+
#
|
1916
|
+
# ========================================================================= #
|
1917
|
+
def generate_info_box(
|
1918
|
+
text_to_be_shown_on_the_popup_box = 'Lorem ipsum dolor sit amet,
|
1919
|
+
consectetuer adipiscing elit, sed diam nonummy nibh euismod
|
1920
|
+
tincidunt ut laoreet dolore magna aliquam erat volutpat.'
|
1921
|
+
)
|
1922
|
+
ee '<style type="text/css">
|
1923
|
+
img {
|
1924
|
+
border:none;
|
1925
|
+
}
|
1926
|
+
|
1927
|
+
#infobox {
|
1928
|
+
height: 80px;
|
1929
|
+
width: 80px;
|
1930
|
+
padding: 0;
|
1931
|
+
margin: 20px;
|
1932
|
+
border: 1px solid black;
|
1933
|
+
font: bold 14px verdana, sans-serif;
|
1934
|
+
}
|
1935
|
+
|
1936
|
+
#infobox div { display:none; }
|
1937
|
+
|
1938
|
+
#infobox:hover div{
|
1939
|
+
display: block;
|
1940
|
+
width: 400px;
|
1941
|
+
position:absolute;
|
1942
|
+
top: 95%;
|
1943
|
+
right:5px;
|
1944
|
+
border:2px dashed black;
|
1945
|
+
padding:18px;
|
1946
|
+
font:normal 15px verdana, sans-serif;
|
1947
|
+
}
|
1948
|
+
|
1949
|
+
</style>
|
1950
|
+
<div id="infobox">
|
1951
|
+
<a href="beispiel3b.htm">
|
1952
|
+
<img src="https://i.imgur.com/nSuF9W9.png" width="80" height="80" alt="schmetterling">
|
1953
|
+
</a>
|
1954
|
+
|
1955
|
+
<div><p><strong>INFO</strong></p>
|
1956
|
+
<p>'+text_to_be_shown_on_the_popup_box+'</p>
|
1957
|
+
<p><img src="https://i.imgur.com/nSuF9W9.png" height="150" alt=""></p>
|
1958
|
+
<ul>
|
1959
|
+
<li>Lorem ipsum dolor sit amet</li>
|
1960
|
+
<li>Lorem ipsum dolor sit amet</li>
|
1961
|
+
<li>Lorem ipsum dolor sit amet</li>
|
1962
|
+
</ul>
|
1963
|
+
</div>'
|
1964
|
+
end; alias add_info_box generate_info_box # === add_info_box
|
1965
|
+
|
1966
|
+
# ========================================================================= #
|
1967
|
+
# === css_comment
|
1968
|
+
# ========================================================================= #
|
1969
|
+
def css_comment(i)
|
1970
|
+
::Cyberweb.css_comment(i)
|
1971
|
+
end
|
1972
|
+
|
1973
|
+
# ========================================================================= #
|
1974
|
+
# === report_which_css_classes_were_found
|
1975
|
+
#
|
1976
|
+
# Report which css classes we have found.
|
1977
|
+
# ========================================================================= #
|
1978
|
+
def report_which_css_classes_were_found(
|
1979
|
+
i = found_these_css_classes?
|
1980
|
+
)
|
1981
|
+
i.each_with_index {|entry, index|
|
1982
|
+
index += 1
|
1983
|
+
e '('+index.to_s+') <b>'+entry+'</b>'
|
1984
|
+
}
|
1985
|
+
end
|
1986
|
+
|
1987
|
+
# ========================================================================= #
|
1988
|
+
# === print_css_class
|
1989
|
+
#
|
1990
|
+
# Prints a CSS class.
|
1991
|
+
# ========================================================================= #
|
1992
|
+
def print_css_class(css_class)
|
1993
|
+
ee return_css_class(css_class)
|
1994
|
+
end
|
1995
|
+
|
1996
|
+
# ========================================================================= #
|
1997
|
+
# === print_css_style
|
1998
|
+
#
|
1999
|
+
# Will simply print the css style to use.
|
2000
|
+
# ========================================================================= #
|
2001
|
+
def print_css_style(css_style = '')
|
2002
|
+
ee return_css_style(css_style)
|
2003
|
+
end
|
2004
|
+
|
2005
|
+
# ========================================================================= #
|
2006
|
+
# === include_css
|
2007
|
+
#
|
2008
|
+
# Use this method to include a CSS file. The first given argument to
|
2009
|
+
# this method, `css_file`, needs to specify the _full_ location to
|
2010
|
+
# the .css file in question.
|
2011
|
+
#
|
2012
|
+
# We will also append '.css' if this is missing.
|
2013
|
+
# ========================================================================= #
|
2014
|
+
def include_css(css_file)
|
2015
|
+
css_file << '.css' unless css_file.end_with? '.css'
|
2016
|
+
css_file = '<link rel="stylesheet" type="text/css" href="'+css_file+'" />'
|
2017
|
+
css_file << NL
|
2018
|
+
return css_file
|
2019
|
+
end; alias include_css_file include_css # === include_css
|
2020
|
+
alias link_to_css_file include_css # === link_to_css_file
|
2021
|
+
|
2022
|
+
# ========================================================================= #
|
2023
|
+
# === string_my_css
|
2024
|
+
#
|
2025
|
+
# This method will return CSS as string
|
2026
|
+
#
|
2027
|
+
# As my_css but will just returns a string.
|
2028
|
+
# string_my_css(input)
|
2029
|
+
# ========================================================================= #
|
2030
|
+
def string_my_css(
|
2031
|
+
input,
|
2032
|
+
use_these_css_files = ARRAY_DEFAULT_CSS_FILES_TO_INCLUDE
|
2033
|
+
)
|
2034
|
+
output = ''
|
2035
|
+
_ = '<link rel="stylesheet" type="text/css" href="'
|
2036
|
+
input << 'cyberweb/cascading_style_sheets/'
|
2037
|
+
use_these_css_files.each {|css_file|
|
2038
|
+
output << (
|
2039
|
+
_+input+css_file+'.css" />' + NL
|
2040
|
+
)
|
2041
|
+
}
|
2042
|
+
return output
|
2043
|
+
end
|
2044
|
+
|
2045
|
+
# ========================================================================= #
|
2046
|
+
# === print_css
|
2047
|
+
#
|
2048
|
+
# Prints generic CSS. Hmmmmm
|
2049
|
+
# ========================================================================= #
|
2050
|
+
def print_css(
|
2051
|
+
change_to = ::Cyberweb.converted_path,
|
2052
|
+
print_all = true
|
2053
|
+
)
|
2054
|
+
ee return_css(change_to, print_all)
|
2055
|
+
end
|
2056
|
+
|
2057
|
+
# ========================================================================= #
|
2058
|
+
# === return_this_css_style
|
2059
|
+
# ========================================================================= #
|
2060
|
+
def return_this_css_style(
|
2061
|
+
i,
|
2062
|
+
use_newlines = true
|
2063
|
+
)
|
2064
|
+
return ::Cyberweb.return_this_css_style(i, use_newlines)
|
2065
|
+
end; alias css_style= return_this_css_style # === css_style=
|
2066
|
+
|
2067
|
+
# ========================================================================= #
|
2068
|
+
# === return_css_style
|
2069
|
+
# ========================================================================= #
|
2070
|
+
def return_css_style(i = '')
|
2071
|
+
::Cyberweb.return_css_style(i)
|
2072
|
+
end
|
2073
|
+
|
2074
|
+
# ========================================================================= #
|
2075
|
+
# === Cyberweb.return_css_style
|
2076
|
+
#
|
2077
|
+
# This method will simply return CSS that can be used in HTML tags.
|
2078
|
+
#
|
2079
|
+
# Something such as:
|
2080
|
+
#
|
2081
|
+
# style="foobar"
|
2082
|
+
#
|
2083
|
+
# ========================================================================= #
|
2084
|
+
def self.return_css_style(
|
2085
|
+
i = ''
|
2086
|
+
)
|
2087
|
+
_ = i.to_s.dup # The result value.
|
2088
|
+
unless _.empty?
|
2089
|
+
_ = ' style="'+_+'"'
|
2090
|
+
end
|
2091
|
+
return _
|
2092
|
+
end; self.instance_eval { alias return_this_css return_css_style } # === Cyberweb.return_this_css
|
2093
|
+
|
2094
|
+
# ========================================================================= #
|
2095
|
+
# === return_css_class
|
2096
|
+
# ========================================================================= #
|
2097
|
+
def return_css_class(
|
2098
|
+
css_class = ''
|
2099
|
+
)
|
2100
|
+
::Cyberweb.return_css_class(css_class)
|
2101
|
+
end; alias css_class= return_css_class # === css_class=
|
2102
|
+
|
2103
|
+
# ========================================================================= #
|
2104
|
+
# === generate_the_id_for_the_coloured_box_background
|
2105
|
+
#
|
2106
|
+
# We need to generate a unique ID because otherwise we can
|
2107
|
+
# not use re-use the same div box on the same box.
|
2108
|
+
# ========================================================================= #
|
2109
|
+
def generate_the_id_for_the_coloured_box_background
|
2110
|
+
return '#coloured_box_background_'+return_unique_css_id
|
2111
|
+
end
|
2112
|
+
|
2113
|
+
# ========================================================================= #
|
2114
|
+
# === generate_coloured_box
|
2115
|
+
#
|
2116
|
+
# This will generate the coloured box.
|
2117
|
+
# ========================================================================= #
|
2118
|
+
def generate_coloured_box(
|
2119
|
+
background_colour_to_use = '#93cde9',
|
2120
|
+
padding_to_use = '25px',
|
2121
|
+
text_to_display = 'Test',
|
2122
|
+
height = '100px'
|
2123
|
+
)
|
2124
|
+
id_for_the_coloured_box = generate_the_id_for_the_coloured_box_background
|
2125
|
+
if background_colour_to_use.empty?
|
2126
|
+
background_colour_to_use = '#93cde9'
|
2127
|
+
end
|
2128
|
+
background_colour_to_use = background_colour_to_use.to_s.dup
|
2129
|
+
if padding_to_use.empty?
|
2130
|
+
padding_to_use = '25px'
|
2131
|
+
end
|
2132
|
+
# The return string is stored in the variable _.
|
2133
|
+
_ = <<-EOF
|
2134
|
+
|
2135
|
+
<style>
|
2136
|
+
|
2137
|
+
#{id_for_the_coloured_box} {
|
2138
|
+
background-color: #{background_colour_to_use};
|
2139
|
+
padding: #{padding_to_use};
|
2140
|
+
}
|
2141
|
+
#{id_for_the_coloured_box}_fg {
|
2142
|
+
background-color: #c4e4f3;
|
2143
|
+
width: 300px;
|
2144
|
+
height: #{height};
|
2145
|
+
box-shadow: 0px 0px 8px #ffffff;
|
2146
|
+
-webkit-box-shadow: 0px 0px 8px #ffffff;
|
2147
|
+
}
|
2148
|
+
</style>
|
2149
|
+
<div id="#{id_for_the_coloured_box}">
|
2150
|
+
<div id="#{id_for_the_coloured_box}_fg">
|
2151
|
+
#{text_to_display}
|
2152
|
+
</div>
|
2153
|
+
</div>
|
2154
|
+
EOF
|
2155
|
+
return _
|
2156
|
+
end
|
2157
|
+
|
2158
|
+
class Css # === Cyberweb::Css
|
2159
|
+
|
2160
|
+
attr_accessor :optional
|
2161
|
+
|
2162
|
+
# ========================================================================= #
|
2163
|
+
# === DEFAULT_CSS_CLASS
|
2164
|
+
# ========================================================================= #
|
2165
|
+
DEFAULT_CSS_CLASS = 'marl1em BO'
|
2166
|
+
|
2167
|
+
# ========================================================================= #
|
2168
|
+
# === initialize
|
2169
|
+
# ========================================================================= #
|
2170
|
+
def initialize
|
2171
|
+
reset
|
2172
|
+
end
|
2173
|
+
|
2174
|
+
# ========================================================================= #
|
2175
|
+
# === _
|
2176
|
+
# ========================================================================= #
|
2177
|
+
def _
|
2178
|
+
@optional
|
2179
|
+
end
|
2180
|
+
|
2181
|
+
# ========================================================================= #
|
2182
|
+
# === reset
|
2183
|
+
# ========================================================================= #
|
2184
|
+
def reset
|
2185
|
+
@optional = DEFAULT_CSS_CLASS
|
2186
|
+
end
|
2187
|
+
|
2188
|
+
end
|
2189
|
+
|
2190
|
+
end
|
2191
|
+
|
2192
|
+
if __FILE__ == $PROGRAM_NAME
|
2193
|
+
Cyberweb.test_css
|
2194
|
+
end
|