scarpe 0.2.2 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +7 -1
- data/.yardopts +1 -0
- data/CHANGELOG.md +52 -6
- data/Gemfile +2 -1
- data/Gemfile.lock +20 -6
- data/LICENSE.txt +7 -1
- data/README.md +100 -21
- data/Rakefile +68 -1
- data/examples/Edit_box_Styles.rb +8 -0
- data/examples/Kerning.rb +7 -0
- data/examples/animate.rb +20 -0
- data/examples/arrow.rb +10 -0
- data/examples/border.rb +11 -0
- data/examples/btn_tooltip.rb +7 -0
- data/examples/button_style_changed.rb +7 -0
- data/examples/button_styles_default.rb +6 -0
- data/examples/check.rb +2 -0
- data/examples/download_and_show_image.rb +3 -0
- data/examples/flags/finland.rb +15 -0
- data/examples/flags/italy.rb +11 -0
- data/examples/flags/mauritius.rb +14 -0
- data/examples/font_family.rb +17 -0
- data/examples/font_shorthand.rb +9 -0
- data/examples/gen.rb +12 -8
- data/examples/highlander.rb +3 -3
- data/examples/legacy/README.md +6 -0
- data/examples/legacy/not_checked/shoes-contrib/basic/shoes-notes.rb +1 -1
- data/examples/legacy/not_checked/shoes-manual/append.rb +10 -0
- data/examples/legacy/not_checked/shoes-manual/background_change.rb +12 -0
- data/examples/legacy/not_checked/shoes-manual/background_pattern.rb +5 -0
- data/examples/legacy/not_checked/shoes-manual/basic_app.rb +8 -0
- data/examples/legacy/not_checked/shoes-manual/border.rb +9 -0
- data/examples/legacy/not_checked/shoes-manual/builtins/FONTS.rb +5 -0
- data/examples/legacy/not_checked/shoes-manual/builtins/ask.rb +2 -0
- data/examples/legacy/not_checked/shoes-manual/builtins/ask_color.rb +5 -0
- data/examples/legacy/not_checked/shoes-manual/builtins/ask_open_file.rb +5 -0
- data/examples/legacy/not_checked/shoes-manual/builtins/ask_save_folder.rb +2 -0
- data/examples/legacy/not_checked/shoes-manual/builtins/confirm.rb +4 -0
- data/examples/legacy/not_checked/shoes-manual/builtins/debug.rb +2 -0
- data/examples/legacy/not_checked/shoes-manual/builtins/info.rb +3 -0
- data/examples/legacy/not_checked/shoes-manual/button.rb +9 -0
- data/examples/legacy/not_checked/shoes-manual/clear.rb +7 -0
- data/examples/legacy/not_checked/shoes-manual/custom_header.rb +13 -0
- data/examples/legacy/not_checked/shoes-manual/displace.rb +14 -0
- data/examples/legacy/not_checked/shoes-manual/edit_box.rb +8 -0
- data/examples/legacy/not_checked/shoes-manual/fill_pattern.rb +5 -0
- data/examples/legacy/not_checked/shoes-manual/fonts.rb +7 -0
- data/examples/legacy/not_checked/shoes-manual/gutter.rb +6 -0
- data/examples/legacy/not_checked/shoes-manual/image_web.rb +4 -0
- data/examples/legacy/not_checked/shoes-manual/keypress.rb +7 -0
- data/examples/legacy/not_checked/shoes-manual/list_box.rb +10 -0
- data/examples/legacy/not_checked/shoes-manual/motion.rb +10 -0
- data/examples/legacy/not_checked/shoes-manual/mouse.rb +8 -0
- data/examples/legacy/not_checked/shoes-manual/move.rb +14 -0
- data/examples/legacy/not_checked/shoes-manual/nested_ovals.rb +8 -0
- data/examples/legacy/not_checked/shoes-manual/oval.rb +7 -0
- data/examples/legacy/not_checked/shoes-manual/ovals.rb +6 -0
- data/examples/legacy/not_checked/shoes-manual/ovals_image.rb +8 -0
- data/examples/legacy/not_checked/shoes-manual/prepend.rb +7 -0
- data/examples/legacy/not_checked/shoes-manual/progress_bar.rb +10 -0
- data/examples/legacy/not_checked/shoes-manual/radio.rb +18 -0
- data/examples/legacy/not_checked/shoes-manual/radio_alternative_1.rb +7 -0
- data/examples/legacy/not_checked/shoes-manual/radio_alternative_2.rb +9 -0
- data/examples/legacy/not_checked/shoes-manual/rotate_rectangle.rb +6 -0
- data/examples/legacy/not_checked/shoes-manual/shape.rb +11 -0
- data/examples/legacy/not_checked/shoes-manual/static/avatar.png +0 -0
- data/examples/legacy/not_checked/shoes-manual/stroke.rb +5 -0
- data/examples/legacy/not_checked/shoes-manual/style.rb +3 -0
- data/examples/legacy/not_checked/shoes-manual/style_alternative_1.rb +4 -0
- data/examples/legacy/not_checked/shoes-manual/style_alternative_2.rb +5 -0
- data/examples/legacy/not_checked/shoes-manual/style_length.rb +5 -0
- data/examples/legacy/not_checked/shoes-manual/timer.rb +6 -0
- data/examples/legacy/not_checked/shoes-manual/trigger_window.rb +8 -0
- data/examples/legacy/not_checked/shoes-manual/window_owner.rb +8 -0
- data/examples/legacy/not_checked/simple/anim-shapes.rb +1 -1
- data/examples/legacy/not_checked/speedometer_app.rb +55 -0
- data/examples/legacy/working/shoes_manual/alert_button.rb +2 -0
- data/examples/legacy/working/shoes_manual/animate.rb +7 -0
- data/examples/legacy/working/shoes_manual/background_para.rb +4 -0
- data/examples/legacy/working/shoes_manual/button_alternative.rb +7 -0
- data/examples/legacy/working/shoes_manual/checkbox.rb +17 -0
- data/examples/legacy/working/shoes_manual/download.rb +12 -0
- data/examples/legacy/working/shoes_manual/edit_box.rb +6 -0
- data/examples/legacy/working/shoes_manual/editline.rb +7 -0
- data/examples/legacy/working/shoes_manual/fixed_height.rb +8 -0
- data/examples/legacy/working/shoes_manual/fixed_width.rb +12 -0
- data/examples/legacy/working/shoes_manual/image.rb +5 -0
- data/examples/legacy/working/shoes_manual/instance_variable_check.rb +10 -0
- data/examples/legacy/working/shoes_manual/message.rb +18 -0
- data/examples/legacy/working/shoes_manual/rectangle.rb +6 -0
- data/examples/legacy/working/shoes_manual/save_download.rb +12 -0
- data/examples/legacy/working/shoes_manual/self_check.rb +10 -0
- data/examples/legacy/working/shoes_manual/stack.rb +7 -0
- data/examples/legacy/working/shoes_manual/style_info.rb +8 -0
- data/examples/legacy/working/shoes_manual/utf8_support.rb +8 -0
- data/examples/legacy/working/shoes_manual/width.rb +4 -0
- data/examples/legacy/working/simple/image-icon.rb +3 -0
- data/examples/legacy/{not_checked → working}/simple/image.rb +1 -1
- data/examples/list_box_choose.rb +17 -0
- data/examples/local_assets/local_file_server.rb +82 -0
- data/examples/local_assets/multi_image.rb +5 -0
- data/examples/local_assets/sample.gif +0 -0
- data/examples/local_assets/sample.mp4 +0 -0
- data/examples/local_assets/small.png +0 -0
- data/examples/local_fonts.rb +5 -2
- data/examples/local_images.rb +2 -3
- data/examples/margin.rb +13 -0
- data/examples/margin_check.rb +27 -0
- data/examples/oval-with-kwargs.rb +3 -0
- data/examples/oval.rb +26 -0
- data/examples/para/para_text.rb +14 -0
- data/examples/para_font_styles.rb +17 -0
- data/examples/para_font_variant.rb +6 -0
- data/examples/para_fontweight.rb +13 -0
- data/examples/parse_xl_funnies.rb +3 -0
- data/examples/progress.rb +31 -0
- data/examples/radio/radio_groups.rb +2 -2
- data/examples/rect.rb +4 -0
- data/examples/rotate_shapes.rb +17 -0
- data/examples/scarpe_ext.rb +3 -0
- data/examples/shapes/star.rb +1 -3
- data/examples/simpler-menu.rb +21 -0
- data/examples/spacing.rb +1 -1
- data/examples/span.rb +4 -2
- data/exe/scarpe +2 -1
- data/lacci/Gemfile +2 -0
- data/lacci/Gemfile.lock +8 -1
- data/lacci/lacci.gemspec +2 -2
- data/lacci/lib/lacci/scarpe_cli.rb +2 -2
- data/lacci/lib/lacci/scarpe_core.rb +2 -1
- data/lacci/lib/lacci/version.rb +1 -1
- data/lacci/lib/scarpe/niente/app.rb +23 -0
- data/lacci/lib/scarpe/niente/display_service.rb +66 -0
- data/lacci/lib/scarpe/niente/drawable.rb +59 -0
- data/lacci/lib/scarpe/niente/shoes_spec.rb +93 -0
- data/lacci/lib/scarpe/niente.rb +32 -0
- data/lacci/lib/shoes/app.rb +111 -72
- data/lacci/lib/shoes/background.rb +2 -2
- data/lacci/lib/shoes/border.rb +2 -2
- data/lacci/lib/shoes/builtins.rb +63 -0
- data/lacci/lib/shoes/changelog.rb +52 -0
- data/lacci/lib/shoes/colors.rb +3 -1
- data/lacci/lib/shoes/constants.rb +41 -2
- data/lacci/lib/shoes/display_service.rb +80 -18
- data/lacci/lib/shoes/download.rb +2 -2
- data/lacci/lib/shoes/drawable.rb +654 -0
- data/lacci/lib/shoes/drawables/arc.rb +27 -0
- data/lacci/lib/shoes/drawables/arrow.rb +21 -0
- data/lacci/lib/shoes/drawables/border.rb +28 -0
- data/lacci/lib/shoes/drawables/button.rb +57 -0
- data/lacci/lib/shoes/drawables/check.rb +33 -0
- data/lacci/lib/shoes/drawables/document_root.rb +20 -0
- data/lacci/lib/shoes/{widgets → drawables}/edit_box.rb +9 -8
- data/lacci/lib/shoes/{widgets → drawables}/edit_line.rb +8 -7
- data/lacci/lib/shoes/drawables/flow.rb +20 -0
- data/lacci/lib/shoes/drawables/font_helper.rb +62 -0
- data/lacci/lib/shoes/{widgets → drawables}/image.rb +7 -7
- data/lacci/lib/shoes/drawables/line.rb +17 -0
- data/lacci/lib/shoes/drawables/link.rb +31 -0
- data/lacci/lib/shoes/drawables/list_box.rb +59 -0
- data/lacci/lib/shoes/drawables/oval.rb +48 -0
- data/lacci/lib/shoes/drawables/para.rb +206 -0
- data/lacci/lib/shoes/drawables/progress.rb +15 -0
- data/lacci/lib/shoes/drawables/radio.rb +35 -0
- data/lacci/lib/shoes/drawables/rect.rb +18 -0
- data/lacci/lib/shoes/{widgets → drawables}/shape.rb +8 -8
- data/lacci/lib/shoes/drawables/slot.rb +178 -0
- data/lacci/lib/shoes/drawables/stack.rb +21 -0
- data/lacci/lib/shoes/drawables/star.rb +28 -0
- data/lacci/lib/shoes/drawables/subscription_item.rb +93 -0
- data/lacci/lib/shoes/drawables/text_drawable.rb +122 -0
- data/lacci/lib/shoes/drawables/video.rb +17 -0
- data/lacci/lib/shoes/drawables/widget.rb +74 -0
- data/lacci/lib/shoes/drawables.rb +32 -0
- data/lacci/lib/shoes/errors.rb +38 -0
- data/lacci/lib/shoes/log.rb +2 -2
- data/lacci/lib/shoes/margin_helper.rb +79 -0
- data/lacci/lib/shoes/ruby_extensions.rb +15 -0
- data/lacci/lib/shoes-spec.rb +93 -0
- data/lacci/lib/shoes.rb +31 -10
- data/lacci/test/.gitignore +1 -0
- data/lacci/test/test_draw_context.rb +167 -0
- data/lacci/test/test_font_helper.rb +57 -0
- data/lacci/test/test_helper.rb +81 -0
- data/lacci/test/test_lacci.rb +99 -3
- data/lacci/test/test_margin_helper.rb +82 -0
- data/lacci/test/test_niente_test_infra.rb +26 -0
- data/lacci/test/test_oval.rb +82 -0
- data/lacci/test/test_parenting.rb +140 -0
- data/lacci/test/test_shoes_errors.rb +49 -0
- data/lacci/test/test_text_drawables.rb +23 -0
- data/lib/scarpe/assets.rb +18 -0
- data/lib/scarpe/cats_cradle.rb +84 -103
- data/lib/scarpe/errors.rb +77 -0
- data/lib/scarpe/shoes_spec.rb +160 -0
- data/lib/scarpe/version.rb +2 -2
- data/lib/scarpe/wv/app.rb +21 -20
- data/lib/scarpe/wv/arc.rb +4 -51
- data/lib/scarpe/wv/arrow.rb +9 -0
- data/lib/scarpe/wv/border.rb +9 -18
- data/lib/scarpe/wv/button.rb +7 -35
- data/lib/scarpe/wv/check.rb +3 -5
- data/lib/scarpe/wv/control_interface.rb +20 -30
- data/lib/scarpe/wv/document_root.rb +81 -4
- data/lib/scarpe/wv/{widget.rb → drawable.rb} +71 -82
- data/lib/scarpe/wv/edit_box.rb +8 -18
- data/lib/scarpe/wv/edit_line.rb +9 -20
- data/lib/scarpe/wv/flow.rb +2 -18
- data/lib/scarpe/wv/image.rb +7 -30
- data/lib/scarpe/wv/line.rb +3 -25
- data/lib/scarpe/wv/link.rb +6 -17
- data/lib/scarpe/wv/list_box.rb +6 -29
- data/lib/scarpe/wv/oval.rb +13 -0
- data/lib/scarpe/wv/para.rb +12 -30
- data/lib/scarpe/wv/progress.rb +19 -0
- data/lib/scarpe/wv/radio.rb +9 -10
- data/lib/scarpe/wv/rect.rb +13 -0
- data/lib/scarpe/wv/scarpe_extensions.rb +8 -0
- data/lib/scarpe/wv/shape.rb +13 -13
- data/lib/scarpe/wv/slot.rb +8 -25
- data/lib/scarpe/wv/stack.rb +2 -18
- data/lib/scarpe/wv/star.rb +3 -53
- data/lib/scarpe/wv/subscription_item.rb +38 -4
- data/lib/scarpe/wv/text_drawable.rb +90 -0
- data/lib/scarpe/wv/video.rb +15 -15
- data/lib/scarpe/wv/web_wrangler.rb +320 -328
- data/lib/scarpe/wv/webview_local_display.rb +52 -33
- data/lib/scarpe/wv/webview_relay_display.rb +12 -12
- data/lib/scarpe/wv/webview_relay_util.rb +7 -10
- data/lib/scarpe/wv/wv_display_worker.rb +2 -2
- data/lib/scarpe/wv.rb +52 -12
- data/lib/scarpe/wv_local.rb +1 -1
- data/lib/scarpe/wv_relay.rb +1 -1
- data/lib/scarpe.rb +1 -0
- data/logger/debug_web_wrangler.json +1 -1
- data/logger/scarpe_wv_test.json +1 -1
- data/scarpe-components/Gemfile +4 -1
- data/scarpe-components/Gemfile.lock +85 -0
- data/scarpe-components/README.md +2 -2
- data/scarpe-components/assets/bootstrap-themes/bootstrap-cerulean.css +12229 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-cosmo.css +11810 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-cyborg.css +12210 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-darkly.css +12153 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-flatly.css +12126 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-icons.min.css +5 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-journal.css +12099 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-litera.css +12211 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-lumen.css +12369 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-lux.css +11928 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-materia.css +13184 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-minty.css +12177 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-morph.css +12750 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-pulse.css +11890 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-quartz.css +12622 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-sandstone.css +12201 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-simplex.css +12186 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-sketchy.css +12451 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-slate.css +12492 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-solar.css +12149 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-spacelab.css +12266 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-superhero.css +12216 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-united.css +12077 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-vapor.css +12549 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-yeti.css +12325 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap-zephyr.css +12283 -0
- data/scarpe-components/assets/bootstrap-themes/bootstrap.bundle.min.js +7 -0
- data/scarpe-components/lib/scarpe/components/asset_server.rb +219 -0
- data/scarpe-components/lib/scarpe/components/base64.rb +23 -5
- data/scarpe-components/lib/scarpe/components/calzini/alert.rb +49 -0
- data/scarpe-components/lib/scarpe/components/calzini/art_drawables.rb +227 -0
- data/scarpe-components/lib/scarpe/components/calzini/border.rb +38 -0
- data/scarpe-components/lib/scarpe/components/calzini/button.rb +37 -0
- data/scarpe-components/lib/scarpe/components/calzini/misc.rb +136 -0
- data/scarpe-components/lib/scarpe/components/calzini/para.rb +237 -0
- data/scarpe-components/lib/scarpe/components/calzini/slots.rb +109 -0
- data/scarpe-components/lib/scarpe/components/calzini.rb +236 -0
- data/scarpe-components/lib/scarpe/components/errors.rb +24 -0
- data/scarpe-components/lib/scarpe/components/file_helpers.rb +1 -0
- data/scarpe-components/lib/scarpe/components/html.rb +134 -0
- data/scarpe-components/lib/scarpe/components/minitest_export_reporter.rb +83 -0
- data/scarpe-components/lib/scarpe/components/minitest_import_runnable.rb +98 -0
- data/scarpe-components/lib/scarpe/components/minitest_result.rb +127 -0
- data/scarpe-components/lib/scarpe/components/modular_logger.rb +5 -5
- data/scarpe-components/lib/scarpe/components/print_logger.rb +22 -3
- data/scarpe-components/lib/scarpe/components/process_helpers.rb +37 -0
- data/scarpe-components/lib/scarpe/components/promises.rb +14 -14
- data/scarpe-components/lib/scarpe/components/segmented_file_loader.rb +36 -17
- data/scarpe-components/lib/scarpe/components/string_helpers.rb +10 -0
- data/scarpe-components/lib/scarpe/components/tiranti.rb +167 -0
- data/scarpe-components/lib/scarpe/components/unit_test_helpers.rb +48 -6
- data/scarpe-components/lib/scarpe/components/version.rb +2 -2
- data/scarpe-components/test/assets/big-image.png +0 -0
- data/scarpe-components/test/assets/big-stylesheet.css +497 -0
- data/scarpe-components/test/assets/little-image.png +0 -0
- data/scarpe-components/test/assets/little-stylesheet.css +1 -0
- data/scarpe-components/test/calzini/test_calzini_alert.rb +30 -0
- data/scarpe-components/test/calzini/test_calzini_art_drawables.rb +105 -0
- data/scarpe-components/test/calzini/test_calzini_button.rb +54 -0
- data/scarpe-components/test/calzini/test_calzini_misc.rb +115 -0
- data/scarpe-components/test/calzini/test_calzini_para.rb +34 -0
- data/scarpe-components/test/calzini/test_calzini_slots.rb +85 -0
- data/scarpe-components/test/calzini/test_calzini_text_drawables.rb +106 -0
- data/scarpe-components/test/calzini/test_various.rb +133 -0
- data/scarpe-components/test/mtr_data/exception.json +1 -0
- data/scarpe-components/test/mtr_data/fail_with_message.json +1 -0
- data/scarpe-components/test/mtr_data/skipped_no_message.json +1 -0
- data/scarpe-components/test/mtr_data/skipped_w_msg.json +1 -0
- data/scarpe-components/test/mtr_data/succeed_2_asserts.json +1 -0
- data/scarpe-components/test/test_asset_server.rb +72 -0
- data/scarpe-components/test/test_components.rb +31 -2
- data/scarpe-components/test/test_dimensions.rb +26 -0
- data/scarpe-components/test/test_helper.rb +20 -1
- data/scarpe-components/test/test_html.rb +65 -0
- data/scarpe-components/test/test_minitest_result.rb +68 -0
- data/scarpe-components/test/test_promises.rb +5 -4
- data/scarpe-components/test/test_segmented_app_files.rb +10 -6
- data/scarpegen.rb +14 -14
- data/sig/scarpe.rbs +1 -1
- data/tasks/check_html_fixtures.rb +140 -0
- data/tasks/regenerate_html_fixtures.rb +104 -0
- data/templates/basic_class_template.erb +13 -14
- data/templates/class_template_with_event_bind.erb +4 -4
- data/templates/class_template_with_shapes.erb +8 -28
- data/templates/example_template.erb +1 -1
- data/templates/module_template.erb +4 -4
- data/templates/webview_template.erb +3 -2
- metadata +286 -80
- data/examples/legacy/not_checked/shoes-contrib/elements/image-icon.rb +0 -3
- data/lacci/lib/shoes/spacing.rb +0 -9
- data/lacci/lib/shoes/widget.rb +0 -218
- data/lacci/lib/shoes/widgets/alert.rb +0 -19
- data/lacci/lib/shoes/widgets/arc.rb +0 -51
- data/lacci/lib/shoes/widgets/button.rb +0 -35
- data/lacci/lib/shoes/widgets/check.rb +0 -28
- data/lacci/lib/shoes/widgets/document_root.rb +0 -20
- data/lacci/lib/shoes/widgets/flow.rb +0 -22
- data/lacci/lib/shoes/widgets/font.rb +0 -14
- data/lacci/lib/shoes/widgets/line.rb +0 -18
- data/lacci/lib/shoes/widgets/link.rb +0 -25
- data/lacci/lib/shoes/widgets/list_box.rb +0 -25
- data/lacci/lib/shoes/widgets/para.rb +0 -68
- data/lacci/lib/shoes/widgets/radio.rb +0 -35
- data/lacci/lib/shoes/widgets/slot.rb +0 -75
- data/lacci/lib/shoes/widgets/span.rb +0 -26
- data/lacci/lib/shoes/widgets/stack.rb +0 -24
- data/lacci/lib/shoes/widgets/star.rb +0 -44
- data/lacci/lib/shoes/widgets/subscription_item.rb +0 -60
- data/lacci/lib/shoes/widgets/text_widget.rb +0 -51
- data/lacci/lib/shoes/widgets/video.rb +0 -15
- data/lacci/lib/shoes/widgets.rb +0 -29
- data/lib/scarpe/evented_assertions.rb +0 -88
- data/lib/scarpe/wv/alert.rb +0 -66
- data/lib/scarpe/wv/background.rb +0 -27
- data/lib/scarpe/wv/control_interface_test.rb +0 -238
- data/lib/scarpe/wv/dimensions.rb +0 -22
- data/lib/scarpe/wv/font.rb +0 -36
- data/lib/scarpe/wv/html.rb +0 -108
- data/lib/scarpe/wv/spacing.rb +0 -41
- data/lib/scarpe/wv/span.rb +0 -68
- data/lib/scarpe/wv/text_widget.rb +0 -30
- /data/examples/legacy/not_checked/{expert → shoes-contrib/basic}/definr.rb +0 -0
- /data/examples/legacy/not_checked/{expert → shoes-contrib/basic}/funnies.rb +0 -0
- /data/examples/legacy/not_checked/shoes-contrib/{elements → basic}/list_box-select-class.rb +0 -0
- /data/examples/legacy/{not_checked → working}/shoes3-tests/editline/editline.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/basic → working/simple}/basic-edit-box.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/basic-fps.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/border-cat.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/check-mate.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/manipulation → working/simple}/clear-slot.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/basic → working/simple}/clock.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/basic → working/simple}/gradient-shoes.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/basic → working/simple}/list_box-shape-report.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/list_box.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/phat-button.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib → working}/simple/simple-calc.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/position → working/simple}/stack-width.rb +0 -0
- /data/examples/legacy/{not_checked/shoes-contrib/elements → working/simple}/width-introspec.rb +0 -0
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
# This is the simplest type of Webview DisplayService. It creates Webview
|
5
|
-
# corresponding to Shoes
|
3
|
+
module Scarpe
|
4
|
+
# This is the simplest type of Webview DisplayService. It creates Webview drawables
|
5
|
+
# corresponding to Shoes drawables, manages the Webview and its DOM tree, and
|
6
6
|
# generally keeps the Shoes/Webview connection working.
|
7
7
|
#
|
8
8
|
# This is an in-process Webview-based display service, with all the limitations that
|
@@ -10,7 +10,7 @@ class Scarpe
|
|
10
10
|
# process, too many or too large evals can crash the process, etc.
|
11
11
|
# Frequently it's better to use a RelayDisplayService to a second
|
12
12
|
# process containing one of these.
|
13
|
-
class
|
13
|
+
class Webview::DisplayService < Shoes::DisplayService
|
14
14
|
include Shoes::Log
|
15
15
|
|
16
16
|
class << self
|
@@ -20,67 +20,86 @@ class Scarpe
|
|
20
20
|
# The ControlInterface is used to handle internal events in Webview Scarpe
|
21
21
|
attr_reader :control_interface
|
22
22
|
|
23
|
-
# The DocumentRoot is the top
|
23
|
+
# The DocumentRoot is the top drawable of the Webview-side drawable tree
|
24
24
|
attr_reader :doc_root
|
25
25
|
|
26
|
-
# app is the Scarpe::
|
26
|
+
# app is the Scarpe::Webview::App
|
27
27
|
attr_reader :app
|
28
28
|
|
29
29
|
# wrangler is the Scarpe::WebWrangler
|
30
30
|
attr_reader :wrangler
|
31
31
|
|
32
|
-
# This is called before any of the various
|
32
|
+
# This is called before any of the various Webview::Drawables are created, to be
|
33
33
|
# able to create them and look them up.
|
34
34
|
def initialize
|
35
|
-
if
|
36
|
-
raise "ERROR! This is meant to be a singleton!"
|
35
|
+
if Webview::DisplayService.instance
|
36
|
+
raise Shoes::Errors::SingletonError, "ERROR! This is meant to be a singleton!"
|
37
37
|
end
|
38
38
|
|
39
|
-
|
39
|
+
Webview::DisplayService.instance = self
|
40
40
|
|
41
41
|
super()
|
42
|
-
log_init("
|
42
|
+
log_init("Webview::DisplayService")
|
43
43
|
|
44
|
-
@
|
44
|
+
@display_drawable_for = {}
|
45
45
|
end
|
46
46
|
|
47
|
-
# Create a Webview display
|
48
|
-
# the linkable ID for this Shoes
|
47
|
+
# Create a Webview display drawable for a specific Shoes drawable, and pair it with
|
48
|
+
# the linkable ID for this Shoes drawable.
|
49
49
|
#
|
50
|
-
# @param
|
51
|
-
# @param
|
52
|
-
# @param properties [Hash] a JSON-serialisable Hash with the
|
53
|
-
# @
|
54
|
-
|
55
|
-
|
50
|
+
# @param drawable_class_name [String] The class name of the Shoes drawable, e.g. Shoes::Button
|
51
|
+
# @param drawable_id [String] the linkable ID for drawable events
|
52
|
+
# @param properties [Hash] a JSON-serialisable Hash with the drawable's Shoes styles
|
53
|
+
# @param is_widget [Boolean] whether the class is a user-defined Shoes::Widget subclass
|
54
|
+
# @return [Webview::Drawable] the newly-created Webview drawable
|
55
|
+
def create_display_drawable_for(drawable_class_name, drawable_id, properties, parent_id:, is_widget:)
|
56
|
+
existing = query_display_drawable_for(drawable_id, nil_ok: true)
|
57
|
+
if existing
|
58
|
+
@log.warn("There is already a Scarpe drawable for #{drawable_id.inspect}! Returning #{existing.class.name} rather than creating a #{drawable_class_name}.")
|
59
|
+
return existing
|
60
|
+
end
|
61
|
+
|
62
|
+
if drawable_class_name == "App"
|
56
63
|
unless @doc_root
|
57
|
-
raise "
|
64
|
+
raise Scarpe::MissingDocRootError, "Webview::DocumentRoot is supposed to be created before Webview::App!"
|
58
65
|
end
|
59
66
|
|
60
|
-
display_app = Scarpe::
|
67
|
+
display_app = Scarpe::Webview::App.new(properties)
|
61
68
|
display_app.document_root = @doc_root
|
62
69
|
@control_interface = display_app.control_interface
|
63
70
|
@control_interface.doc_root = @doc_root
|
64
71
|
@app = @control_interface.app
|
65
72
|
@wrangler = @control_interface.wrangler
|
66
73
|
|
67
|
-
|
74
|
+
set_drawable_pairing(drawable_id, display_app)
|
68
75
|
|
69
76
|
return display_app
|
70
77
|
end
|
71
78
|
|
72
|
-
# Create a corresponding display
|
73
|
-
|
74
|
-
|
75
|
-
|
79
|
+
# Create a corresponding display drawable
|
80
|
+
|
81
|
+
if is_widget
|
82
|
+
display_class = Scarpe::Webview::Flow
|
83
|
+
else
|
84
|
+
display_class = Scarpe::Webview::Drawable.display_class_for(drawable_class_name)
|
85
|
+
unless display_class < Scarpe::Webview::Drawable
|
86
|
+
raise Scarpe::BadDisplayClassType, "Wrong display class type #{display_class.inspect} for class name #{drawable_class_name.inspect}!"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
display_drawable = display_class.new(properties)
|
90
|
+
set_drawable_pairing(drawable_id, display_drawable)
|
76
91
|
|
77
|
-
if
|
78
|
-
#
|
79
|
-
# but we'll want a reference to it when we create
|
80
|
-
@doc_root =
|
92
|
+
if drawable_class_name == "DocumentRoot"
|
93
|
+
# DocumentRoot is created before App. Mostly doc_root is just like any other drawable,
|
94
|
+
# but we'll want a reference to it when we create App.
|
95
|
+
@doc_root = display_drawable
|
81
96
|
end
|
82
97
|
|
83
|
-
|
98
|
+
# Nil parent is fine for DocumentRoot and any TextDrawable, so we have to specify it.
|
99
|
+
display_parent = Scarpe::Webview::DisplayService.instance.query_display_drawable_for(parent_id, nil_ok: true)
|
100
|
+
display_drawable.set_parent(display_parent)
|
101
|
+
|
102
|
+
display_drawable
|
84
103
|
end
|
85
104
|
|
86
105
|
# Destroy the display service and the app. Quit the process (eventually.)
|
@@ -88,7 +107,7 @@ class Scarpe
|
|
88
107
|
# @return [void]
|
89
108
|
def destroy
|
90
109
|
@app.destroy
|
91
|
-
|
110
|
+
Webview::DisplayService.instance = nil
|
92
111
|
end
|
93
112
|
end
|
94
113
|
end
|
@@ -5,16 +5,16 @@ require "rbconfig"
|
|
5
5
|
|
6
6
|
require_relative "webview_relay_util"
|
7
7
|
|
8
|
-
|
8
|
+
module Scarpe
|
9
9
|
# This display service creates a child process and sends events
|
10
|
-
# back and forth, but creates no
|
11
|
-
# process will spawn a worker with its own
|
10
|
+
# back and forth, but creates no drawables of its own. The child
|
11
|
+
# process will spawn a worker with its own Webview::DisplayService
|
12
12
|
# where the real Webview exists. By splitting the Webview
|
13
|
-
# process from the Shoes
|
13
|
+
# process from the Shoes drawables, it can be easier to return
|
14
14
|
# control to Webview's event handler promptly. Also, the Ruby
|
15
15
|
# process could run background threads if it wanted, and
|
16
16
|
# otherwise behave like a process ***not*** containing Webview.
|
17
|
-
class
|
17
|
+
class Webview::RelayDisplayService < Shoes::DisplayService
|
18
18
|
include Shoes::Log
|
19
19
|
include WVRelayUtil # Needs Shoes::Log
|
20
20
|
|
@@ -23,7 +23,7 @@ class Scarpe
|
|
23
23
|
# Create a Webview Relay Display Service
|
24
24
|
def initialize
|
25
25
|
super()
|
26
|
-
log_init("
|
26
|
+
log_init("Webview::RelayDisplayService")
|
27
27
|
|
28
28
|
@event_subs = []
|
29
29
|
@shutdown = false
|
@@ -46,7 +46,7 @@ class Scarpe
|
|
46
46
|
if event_name == "run"
|
47
47
|
run_event_loop
|
48
48
|
end
|
49
|
-
rescue AppShutdownError
|
49
|
+
rescue Scarpe::AppShutdownError
|
50
50
|
@shutdown = true
|
51
51
|
@log.info("Attempting to shut down...")
|
52
52
|
self.destroy
|
@@ -59,16 +59,16 @@ class Scarpe
|
|
59
59
|
respond_to_datagram while ready_to_read?
|
60
60
|
sleep 0.1
|
61
61
|
end
|
62
|
-
rescue AppShutdownError
|
62
|
+
rescue Scarpe::AppShutdownError
|
63
63
|
@shutdown = true
|
64
64
|
@log.info("Attempting to shut down...")
|
65
65
|
self.destroy
|
66
66
|
end
|
67
67
|
|
68
|
-
# This method sends a message to the worker process to create a
|
69
|
-
#
|
70
|
-
def
|
71
|
-
send_datagram({ type: :create, class_name:
|
68
|
+
# This method sends a message to the worker process to create a drawable. No actual
|
69
|
+
# drawable is created or registered with the display service.
|
70
|
+
def create_display_drawable_for(drawable_class_name, drawable_id, properties)
|
71
|
+
send_datagram({ type: :create, class_name: drawable_class_name, id: drawable_id, properties: })
|
72
72
|
# Don't need to return anything. It wouldn't be used anyway.
|
73
73
|
end
|
74
74
|
|
@@ -2,10 +2,7 @@
|
|
2
2
|
|
3
3
|
require "socket"
|
4
4
|
|
5
|
-
|
6
|
-
# An error occurred which would normally be handled by shutting down the app
|
7
|
-
class AppShutdownError < Scarpe::Error; end
|
8
|
-
|
5
|
+
module Scarpe
|
9
6
|
# WVRelayUtil defines the datagram format for the sockets that connect a parent
|
10
7
|
# Shoes application with a child display server.
|
11
8
|
#
|
@@ -24,7 +21,7 @@ class Scarpe
|
|
24
21
|
return if r.nil?
|
25
22
|
|
26
23
|
unless e.empty?
|
27
|
-
raise "#{@i_am}: Got error on connection(s) from IO.select! Dying!"
|
24
|
+
raise Scarpe::ConnectionError, "#{@i_am}: Got error on connection(s) from IO.select! Dying!"
|
28
25
|
end
|
29
26
|
|
30
27
|
!r.empty?
|
@@ -43,7 +40,7 @@ class Scarpe
|
|
43
40
|
until written == to_write
|
44
41
|
count = @to.write(dgram_str.byteslice(written..-1))
|
45
42
|
if count.nil? || count == 0
|
46
|
-
raise "Something was wrong in send_datagram! Write returned #{count.inspect}!"
|
43
|
+
raise Scarpe::DatagramSendError, "Something was wrong in send_datagram! Write returned #{count.inspect}!"
|
47
44
|
end
|
48
45
|
|
49
46
|
written += count
|
@@ -73,7 +70,7 @@ class Scarpe
|
|
73
70
|
new_bytes = @from.read(10)
|
74
71
|
if new_bytes.nil?
|
75
72
|
# This is perfectly normal, if the connection closed
|
76
|
-
raise AppShutdownError, "Got an unexpected EOF reading datagram! " +
|
73
|
+
raise Scarpe::AppShutdownError, "Got an unexpected EOF reading datagram! " +
|
77
74
|
"Did the #{@i_am == :child ? "parent" : "child"} process die?"
|
78
75
|
end
|
79
76
|
@readbuf << new_bytes
|
@@ -90,7 +87,7 @@ class Scarpe
|
|
90
87
|
@readbuf << new_bytes
|
91
88
|
end
|
92
89
|
rescue
|
93
|
-
raise AppShutdownError, "Got exception #{$!.class} when receiving datagram... #{$!.inspect}"
|
90
|
+
raise Scarpe::AppShutdownError, "Got exception #{$!.class} when receiving datagram... #{$!.inspect}"
|
94
91
|
end
|
95
92
|
|
96
93
|
# Read a datagram from the internal buffer and then dispatch it to the
|
@@ -109,9 +106,9 @@ class Scarpe
|
|
109
106
|
**kwargs_hash,
|
110
107
|
)
|
111
108
|
elsif m_data["type"] == "create"
|
112
|
-
raise "Parent process should never receive :create datagram!" if @i_am == :parent
|
109
|
+
raise Scarpe::InvalidOperationError, "Parent process should never receive :create datagram!" if @i_am == :parent
|
113
110
|
|
114
|
-
@wv_display.
|
111
|
+
@wv_display.create_display_drawable_for(m_data["class_name"], m_data["id"], m_data["properties"])
|
115
112
|
elsif m_data["type"] == "destroy"
|
116
113
|
if @i_am == :parent
|
117
114
|
@shutdown = true
|
@@ -38,11 +38,11 @@ class Scarpe::Webview::ContainedService < Shoes::Linkable
|
|
38
38
|
# @param to [Socket] a writable socket on which to send output to the Shoes process
|
39
39
|
def initialize(from, to)
|
40
40
|
super()
|
41
|
-
log_init("
|
41
|
+
log_init("Webview::DisplayWorker")
|
42
42
|
|
43
43
|
@i_am = :child
|
44
44
|
@event_subs = []
|
45
|
-
@wv_display = Scarpe::
|
45
|
+
@wv_display = Scarpe::Webview::DisplayService.new
|
46
46
|
|
47
47
|
@from = from
|
48
48
|
@to = to
|
data/lib/scarpe/wv.rb
CHANGED
@@ -8,11 +8,26 @@ require "securerandom"
|
|
8
8
|
require "json"
|
9
9
|
|
10
10
|
require "bloops"
|
11
|
+
require "scarpe/components/html" # HTML renderer
|
11
12
|
require "scarpe/components/modular_logger"
|
12
13
|
require "scarpe/components/promises"
|
14
|
+
require "scarpe/components/string_helpers"
|
13
15
|
|
14
16
|
# Module to contain the various Scarpe Webview classes
|
15
|
-
module Scarpe::Webview
|
17
|
+
module Scarpe::Webview
|
18
|
+
HTML = Scarpe::Components::HTML
|
19
|
+
end
|
20
|
+
|
21
|
+
# Set up Scarpe-Webview's HTML renderer
|
22
|
+
ren = ENV["SCARPE_HTML_RENDERER"] || "calzini"
|
23
|
+
# This should *not* be require_relative so that other gems can implement HTML renderers.
|
24
|
+
require "scarpe/components/#{ren}"
|
25
|
+
class Scarpe::Webview::Drawable < Shoes::Linkable
|
26
|
+
# By default it's Scarpe::Components::Calzini
|
27
|
+
comp = Scarpe::Components::StringHelpers.camelize(ENV["SCARPE_HTML_RENDERER"] || "calzini")
|
28
|
+
mod = Scarpe::Components.const_get(comp)
|
29
|
+
include mod
|
30
|
+
end
|
16
31
|
|
17
32
|
# Set up hierarchical logging using the SCARPE_LOG_CONFIG var for configuration
|
18
33
|
log_config = if ENV["SCARPE_LOG_CONFIG"]
|
@@ -28,22 +43,42 @@ require "scarpe/components/segmented_file_loader"
|
|
28
43
|
loader = Scarpe::Components::SegmentedFileLoader.new
|
29
44
|
Shoes.add_file_loader loader
|
30
45
|
|
46
|
+
# Fun trivia: listing the full set of available fonts is a fingerprinting attack, so it's not
|
47
|
+
# available from JS. These are all commonly available web fonts, though.
|
48
|
+
Shoes::FONTS.push(
|
49
|
+
"Helvetica",
|
50
|
+
"Arial",
|
51
|
+
"Arial Black",
|
52
|
+
"Verdana",
|
53
|
+
"Tahoma",
|
54
|
+
"Trebuchet MS",
|
55
|
+
"Impact",
|
56
|
+
"Gill Sans",
|
57
|
+
"Times New Roman",
|
58
|
+
"Georgia",
|
59
|
+
"Palatino",
|
60
|
+
"Baskerville",
|
61
|
+
"Courier",
|
62
|
+
"Lucida",
|
63
|
+
"Monaco",
|
64
|
+
)
|
65
|
+
|
66
|
+
Shoes::FEATURES.push(:html)
|
67
|
+
Shoes::EXTENSIONS.push(:scarpe)
|
68
|
+
|
69
|
+
require_relative "shoes_spec"
|
70
|
+
Shoes::Spec.instance = Scarpe::Test
|
71
|
+
|
31
72
|
require_relative "wv/web_wrangler"
|
32
73
|
require_relative "wv/control_interface"
|
33
74
|
|
34
|
-
require_relative "wv/
|
35
|
-
|
36
|
-
require_relative "wv/dimensions"
|
37
|
-
require_relative "wv/html"
|
75
|
+
require_relative "wv/drawable"
|
38
76
|
|
39
|
-
require_relative "wv/spacing"
|
40
77
|
require_relative "wv/star"
|
78
|
+
require_relative "wv/oval"
|
41
79
|
require_relative "wv/radio"
|
42
|
-
require_relative "wv/background"
|
43
|
-
require_relative "wv/border"
|
44
80
|
|
45
81
|
require_relative "wv/arc"
|
46
|
-
require_relative "wv/font"
|
47
82
|
|
48
83
|
require_relative "wv/app"
|
49
84
|
require_relative "wv/para"
|
@@ -57,12 +92,17 @@ require_relative "wv/image"
|
|
57
92
|
require_relative "wv/edit_box"
|
58
93
|
require_relative "wv/edit_line"
|
59
94
|
require_relative "wv/list_box"
|
60
|
-
require_relative "wv/alert"
|
61
|
-
require_relative "wv/span"
|
62
95
|
require_relative "wv/shape"
|
63
96
|
|
64
|
-
require_relative "wv/
|
97
|
+
require_relative "wv/text_drawable"
|
65
98
|
require_relative "wv/link"
|
66
99
|
require_relative "wv/line"
|
100
|
+
require_relative "wv/rect"
|
67
101
|
require_relative "wv/video"
|
68
102
|
require_relative "wv/check"
|
103
|
+
require_relative "wv/progress"
|
104
|
+
require_relative "wv/arrow"
|
105
|
+
|
106
|
+
require_relative "wv/scarpe_extensions"
|
107
|
+
require_relative "assets"
|
108
|
+
require_relative "wv/border"
|
data/lib/scarpe/wv_local.rb
CHANGED
data/lib/scarpe/wv_relay.rb
CHANGED
data/lib/scarpe.rb
CHANGED
data/logger/scarpe_wv_test.json
CHANGED
data/scarpe-components/Gemfile
CHANGED
@@ -8,11 +8,14 @@ gem "lacci", path: "../lacci"
|
|
8
8
|
|
9
9
|
gem "rake", "~> 13.0"
|
10
10
|
|
11
|
-
gem "nokogiri"
|
11
|
+
#gem "nokogiri"
|
12
12
|
|
13
13
|
group :test do
|
14
14
|
gem "minitest", "~> 5.0"
|
15
15
|
gem "minitest-reporters"
|
16
|
+
|
17
|
+
# Dependencies for specific components being tested
|
18
|
+
gem "webrick"
|
16
19
|
end
|
17
20
|
|
18
21
|
group :development do
|
@@ -0,0 +1,85 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ../lacci
|
3
|
+
specs:
|
4
|
+
lacci (0.3.0)
|
5
|
+
scarpe-components
|
6
|
+
|
7
|
+
PATH
|
8
|
+
remote: .
|
9
|
+
specs:
|
10
|
+
scarpe-components (0.3.0)
|
11
|
+
|
12
|
+
GEM
|
13
|
+
remote: https://rubygems.org/
|
14
|
+
specs:
|
15
|
+
ansi (1.5.0)
|
16
|
+
ast (2.4.2)
|
17
|
+
base64 (0.1.1)
|
18
|
+
builder (3.2.4)
|
19
|
+
debug (1.8.0)
|
20
|
+
irb (>= 1.5.0)
|
21
|
+
reline (>= 0.3.1)
|
22
|
+
io-console (0.6.0)
|
23
|
+
irb (1.8.0)
|
24
|
+
rdoc (~> 6.5)
|
25
|
+
reline (>= 0.3.6)
|
26
|
+
json (2.6.3)
|
27
|
+
language_server-protocol (3.17.0.3)
|
28
|
+
minitest (5.19.0)
|
29
|
+
minitest-reporters (1.6.1)
|
30
|
+
ansi
|
31
|
+
builder
|
32
|
+
minitest (>= 5.0)
|
33
|
+
ruby-progressbar
|
34
|
+
parallel (1.23.0)
|
35
|
+
parser (3.2.2.3)
|
36
|
+
ast (~> 2.4.1)
|
37
|
+
racc
|
38
|
+
psych (5.1.0)
|
39
|
+
stringio
|
40
|
+
racc (1.7.1)
|
41
|
+
rainbow (3.1.1)
|
42
|
+
rake (13.0.6)
|
43
|
+
rdoc (6.5.0)
|
44
|
+
psych (>= 4.0.0)
|
45
|
+
regexp_parser (2.8.1)
|
46
|
+
reline (0.3.8)
|
47
|
+
io-console (~> 0.5)
|
48
|
+
rexml (3.2.6)
|
49
|
+
rubocop (1.56.2)
|
50
|
+
base64 (~> 0.1.1)
|
51
|
+
json (~> 2.3)
|
52
|
+
language_server-protocol (>= 3.17.0)
|
53
|
+
parallel (~> 1.10)
|
54
|
+
parser (>= 3.2.2.3)
|
55
|
+
rainbow (>= 2.2.2, < 4.0)
|
56
|
+
regexp_parser (>= 1.8, < 3.0)
|
57
|
+
rexml (>= 3.2.5, < 4.0)
|
58
|
+
rubocop-ast (>= 1.28.1, < 2.0)
|
59
|
+
ruby-progressbar (~> 1.7)
|
60
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
61
|
+
rubocop-ast (1.29.0)
|
62
|
+
parser (>= 3.2.1.0)
|
63
|
+
rubocop-shopify (2.14.0)
|
64
|
+
rubocop (~> 1.51)
|
65
|
+
ruby-progressbar (1.13.0)
|
66
|
+
stringio (3.0.8)
|
67
|
+
unicode-display_width (2.4.2)
|
68
|
+
webrick (1.8.1)
|
69
|
+
|
70
|
+
PLATFORMS
|
71
|
+
x86_64-darwin-22
|
72
|
+
|
73
|
+
DEPENDENCIES
|
74
|
+
debug
|
75
|
+
lacci!
|
76
|
+
minitest (~> 5.0)
|
77
|
+
minitest-reporters
|
78
|
+
rake (~> 13.0)
|
79
|
+
rubocop (~> 1.21)
|
80
|
+
rubocop-shopify
|
81
|
+
scarpe-components!
|
82
|
+
webrick
|
83
|
+
|
84
|
+
BUNDLED WITH
|
85
|
+
2.4.14
|
data/scarpe-components/README.md
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
Scarpe is several things. We package up the Shoes API with as few implementation details as possible (called Lacci.) We have a Webview-based display library, in both local and over-a-socket (relay) versions. We have a Wasm display library (Scarpe-Wasm) in a separate gem.
|
4
4
|
|
5
|
-
And we have various default implementations of different reusable components. Scarpe's hierarchical logger isn't particularly specific to your display library or underlying GUI library
|
5
|
+
And we have various default implementations of different reusable components. Calzini is a Shoes-to-HTML renderer shared between Scarpe-Webview and Scarpe-Wasm. Scarpe's hierarchical logger isn't particularly specific to your display library or underlying GUI library and we'd like it to be usable by multiple display libs. Scarpe's default downloader, using Ruby's built-in HTTP libraries, is good in many cases but you might want to replace it (e.g. with Typhoeus for better parallel downloads or Hystrix for robustness to bad network connections) in some cases.
|
6
6
|
|
7
|
-
Part of our solution is the Scarpe-Components gem, which lives in the same repository as Scarpe
|
7
|
+
Part of our solution is the Scarpe-Components gem, which lives in the same repository as Scarpe and Lacci for now. These components can live there. Any specific display library can pick and choose what it wants or needs and handle its dependencies as it sees fit.
|
8
8
|
|
9
9
|
## Dependency Hell
|
10
10
|
|