scarpe 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.cursor/rules/commit-style-preferences.mdc +72 -0
- data/.cursor/rules/component_context.mdc +82 -0
- data/.cursor/rules/debug-failed-tests.mdc +100 -0
- data/.cursor/rules/display_service_context.mdc +80 -0
- data/.cursor/rules/event_handling_context.mdc +100 -0
- data/.cursor/rules/git-pager-handling.mdc +64 -0
- data/.cursor/rules/lacci-context.mdc +52 -0
- data/.cursor/rules/scarpe_design_context.mdc +46 -0
- data/.cursor/rules/shoes_compatibility_context.mdc +75 -0
- data/.cursor/rules/timeout_context.mdc +78 -0
- data/.cursor/rules/update_lacci_and_wv.mdc +8 -0
- data/.cursor/rules/what_is_scarpe.mdc +22 -0
- data/.cursor/rules/writing-new-rules.mdc +73 -0
- data/CHANGELOG.md +46 -5
- data/CLAUDE.md +223 -0
- data/Gemfile +2 -2
- data/Gemfile.lock +85 -55
- data/LICENSE.txt +7 -1
- data/README.md +80 -20
- data/Rakefile +73 -14
- data/docs/SCARPE_FEATURES.md +38 -0
- data/docs/_config.yml +13 -0
- data/docs/calzini_components_and_updates.md +78 -0
- data/docs/display_service_separation.md +39 -0
- data/docs/documentation.md +43 -0
- data/docs/event_loops.md +66 -0
- data/docs/image.png +0 -0
- data/docs/index.md +118 -0
- data/docs/lacci.md +121 -0
- data/docs/scarpe_shoes_incompatibilities.md +71 -0
- data/docs/shoes_and_display_events.md +55 -0
- data/docs/shoes_implementations.md +79 -0
- data/docs/static/manual.md +5 -0
- data/docs/static/scarpe-logo.png +0 -0
- data/docs/timeouts_and_handlers.md +66 -0
- data/docs/web_archaeology.md +76 -0
- data/examples/Edit_box_Styles.rb +8 -0
- data/examples/Kerning.rb +7 -0
- data/examples/background_with_image.rb +14 -5
- data/examples/bloopsaphone/working/feepogram.rb +1 -1
- data/examples/bloopsaphone/working/le_dance_des_rubis.rb +135 -0
- data/examples/bloopsaphone/working/pixel_dreams_in_ruby.rb +131 -0
- data/examples/bloopsaphone/working/type_rebellion.rb +157 -0
- data/examples/border.rb +11 -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 +4 -0
- data/examples/internal_link_navigation.rb +19 -0
- 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/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/local_assets/multi_image.rb +5 -0
- data/examples/local_assets/small.png +0 -0
- data/examples/local_fonts.rb +3 -0
- 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/page_navigation_single_app.rb +42 -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/rect.rb +1 -1
- data/examples/scarpe_ext.rb +3 -0
- data/examples/shapes/star.rb +1 -3
- data/examples/shoes_subclass_app.rb +25 -0
- data/examples/spacing.rb +1 -1
- data/examples/span.rb +4 -2
- data/examples/url_routing_example.rb +67 -0
- data/lacci/Gemfile +0 -2
- data/lacci/Gemfile.lock +4 -32
- data/lacci/lacci.gemspec +3 -3
- data/lacci/lib/lacci/scarpe_cli.rb +0 -1
- data/lacci/lib/lacci/version.rb +1 -1
- data/lacci/lib/scarpe/niente/app.rb +12 -1
- data/lacci/lib/scarpe/niente/display_service.rb +5 -1
- data/lacci/lib/scarpe/niente/drawable.rb +2 -0
- data/lacci/lib/scarpe/niente/shoes_spec.rb +10 -5
- data/lacci/lib/scarpe/niente.rb +15 -2
- data/lacci/lib/shoes/app.rb +204 -105
- data/lacci/lib/shoes/constants.rb +24 -2
- data/lacci/lib/shoes/display_service.rb +43 -4
- data/lacci/lib/shoes/drawable.rb +326 -36
- data/lacci/lib/shoes/drawables/arc.rb +4 -26
- data/lacci/lib/shoes/drawables/arrow.rb +3 -23
- data/lacci/lib/shoes/drawables/border.rb +28 -0
- data/lacci/lib/shoes/drawables/button.rb +5 -21
- data/lacci/lib/shoes/drawables/check.rb +7 -3
- data/lacci/lib/shoes/drawables/document_root.rb +4 -4
- data/lacci/lib/shoes/drawables/edit_box.rb +6 -5
- data/lacci/lib/shoes/drawables/edit_line.rb +5 -4
- data/lacci/lib/shoes/drawables/flow.rb +4 -6
- data/lacci/lib/shoes/drawables/font_helper.rb +62 -0
- data/lacci/lib/shoes/drawables/image.rb +2 -2
- data/lacci/lib/shoes/drawables/line.rb +3 -6
- data/lacci/lib/shoes/drawables/link.rb +16 -9
- data/lacci/lib/shoes/drawables/list_box.rb +8 -5
- data/lacci/lib/shoes/drawables/oval.rb +48 -0
- data/lacci/lib/shoes/drawables/para.rb +106 -18
- data/lacci/lib/shoes/drawables/progress.rb +2 -1
- data/lacci/lib/shoes/drawables/radio.rb +5 -3
- data/lacci/lib/shoes/drawables/rect.rb +7 -6
- data/lacci/lib/shoes/drawables/shape.rb +4 -3
- data/lacci/lib/shoes/drawables/slot.rb +102 -9
- data/lacci/lib/shoes/drawables/stack.rb +7 -12
- data/lacci/lib/shoes/drawables/star.rb +9 -31
- data/lacci/lib/shoes/drawables/text_drawable.rb +93 -34
- data/lacci/lib/shoes/drawables/video.rb +3 -2
- data/lacci/lib/shoes/drawables/widget.rb +9 -4
- data/lacci/lib/shoes/drawables.rb +2 -1
- data/lacci/lib/shoes/errors.rb +13 -3
- data/lacci/lib/shoes/margin_helper.rb +79 -0
- data/lacci/lib/shoes.rb +98 -20
- 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 +31 -4
- data/lacci/test/test_lacci.rb +93 -6
- data/lacci/test/test_margin_helper.rb +82 -0
- data/lacci/test/test_niente_test_infra.rb +40 -0
- data/lacci/test/test_oval.rb +82 -0
- data/lacci/test/test_parenting.rb +140 -0
- data/lacci/test/test_shoes_errors.rb +15 -13
- data/lacci/test/test_text_drawables.rb +23 -0
- data/lib/scarpe/assets.rb +19 -0
- data/lib/scarpe/cats_cradle.rb +57 -98
- data/lib/scarpe/shoes_spec.rb +24 -44
- data/lib/scarpe/version.rb +1 -1
- data/lib/scarpe/wv/app.rb +1 -0
- data/lib/scarpe/wv/arc.rb +0 -4
- data/lib/scarpe/wv/border.rb +15 -0
- data/lib/scarpe/wv/control_interface.rb +2 -10
- data/lib/scarpe/wv/document_root.rb +2 -2
- data/lib/scarpe/wv/drawable.rb +6 -40
- data/lib/scarpe/wv/edit_box.rb +4 -1
- data/lib/scarpe/wv/edit_line.rb +4 -1
- data/lib/scarpe/wv/image.rb +2 -5
- data/lib/scarpe/wv/link.rb +4 -2
- data/lib/scarpe/wv/oval.rb +13 -0
- data/lib/scarpe/wv/para.rb +1 -0
- data/lib/scarpe/wv/scarpe_extensions.rb +8 -0
- data/lib/scarpe/wv/shape.rb +10 -5
- data/lib/scarpe/wv/text_drawable.rb +72 -14
- data/lib/scarpe/wv/web_wrangler.rb +33 -11
- data/lib/scarpe/wv/webview_local_display.rb +6 -2
- data/lib/scarpe/wv.rb +16 -2
- data/scarpe-components/Gemfile +4 -3
- data/scarpe-components/Gemfile.lock +6 -37
- 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 +22 -0
- data/scarpe-components/lib/scarpe/components/calzini/{art_widgets.rb → art_drawables.rb} +42 -18
- data/scarpe-components/lib/scarpe/components/calzini/border.rb +38 -0
- data/scarpe-components/lib/scarpe/components/calzini/button.rb +6 -8
- data/scarpe-components/lib/scarpe/components/calzini/misc.rb +14 -16
- data/scarpe-components/lib/scarpe/components/calzini/para.rb +218 -11
- data/scarpe-components/lib/scarpe/components/calzini/slots.rb +16 -60
- data/scarpe-components/lib/scarpe/components/calzini.rb +88 -1
- data/scarpe-components/lib/scarpe/components/errors.rb +4 -0
- data/scarpe-components/lib/scarpe/components/html.rb +4 -1
- data/scarpe-components/lib/scarpe/components/minitest_export_reporter.rb +11 -3
- data/scarpe-components/lib/scarpe/components/minitest_result.rb +41 -0
- data/scarpe-components/lib/scarpe/components/port_helpers.rb +30 -0
- data/scarpe-components/lib/scarpe/components/print_logger.rb +17 -2
- data/scarpe-components/lib/scarpe/components/process_helpers.rb +37 -0
- data/scarpe-components/lib/scarpe/components/segmented_file_loader.rb +1 -1
- data/scarpe-components/lib/scarpe/components/tiranti.rb +42 -100
- data/scarpe-components/lib/scarpe/components/unit_test_helpers.rb +3 -1
- data/scarpe-components/lib/scarpe/components/version.rb +1 -1
- data/scarpe-components/scarpe-components.gemspec +1 -1
- 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_art_drawables.rb +7 -7
- data/scarpe-components/test/calzini/test_calzini_button.rb +7 -5
- data/scarpe-components/test/calzini/test_calzini_misc.rb +9 -9
- data/scarpe-components/test/calzini/test_calzini_para.rb +6 -9
- data/scarpe-components/test/calzini/test_calzini_slots.rb +12 -57
- data/scarpe-components/test/calzini/test_calzini_text_drawables.rb +83 -18
- data/scarpe-components/test/calzini/test_various.rb +133 -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_helper.rb +0 -1
- data/scarpe-components/test/test_minitest_result.rb +7 -0
- data/scarpe-components/test/test_port_helpers.rb +12 -0
- data/scarpe-components/test/test_segmented_app_files.rb +2 -0
- data/tasks/check_html_fixtures.rb +140 -0
- data/tasks/regenerate_html_fixtures.rb +104 -0
- data/templates/class_template_with_shapes.erb +0 -11
- metadata +225 -39
- data/.rubocop.yml +0 -88
- data/lacci/lib/scarpe/niente/logger.rb +0 -29
- data/lacci/lib/shoes/drawables/span.rb +0 -27
- data/lacci/lib/shoes/spacing.rb +0 -9
- data/lib/scarpe/evented_assertions.rb +0 -121
- data/lib/scarpe/wv/span.rb +0 -44
- data/scarpe-components/lib/scarpe/components/calzini/text_widgets.rb +0 -65
- /data/examples/legacy/{not_checked → working}/shoes3-tests/editline/editline.rb +0 -0
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "shoes/log"
|
|
4
|
-
require "json"
|
|
5
|
-
|
|
6
|
-
module Niente; end
|
|
7
|
-
class Niente::LogImpl
|
|
8
|
-
include Shoes::Log # for constants
|
|
9
|
-
|
|
10
|
-
class PrintLogger
|
|
11
|
-
def initialize(_)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
[:error, :warn, :debug, :info].each do |level|
|
|
15
|
-
define_method(level) do |msg|
|
|
16
|
-
puts "#{level}: #{msg}"
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def logger_for_component(component)
|
|
22
|
-
PrintLogger.new(component.to_s)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def configure_logger(log_config)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
#Shoes::Log.instance = Niente::LogImpl.new
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
class Shoes
|
|
4
|
-
class Span < Shoes::Drawable
|
|
5
|
-
shoes_styles :text, :stroke, :size, :font, :html_attributes
|
|
6
|
-
shoes_events # No Span-specific events yet
|
|
7
|
-
|
|
8
|
-
def initialize(text, stroke: nil, size: :span, font: nil, **html_attributes)
|
|
9
|
-
super
|
|
10
|
-
|
|
11
|
-
@text = text
|
|
12
|
-
@stroke = stroke
|
|
13
|
-
@size = size
|
|
14
|
-
@font = font
|
|
15
|
-
@html_attributes = html_attributes
|
|
16
|
-
|
|
17
|
-
create_display_drawable
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def replace(text)
|
|
21
|
-
@text = text
|
|
22
|
-
|
|
23
|
-
# This should signal the display drawable to change
|
|
24
|
-
self.text = @text
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
data/lacci/lib/shoes/spacing.rb
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "tempfile"
|
|
4
|
-
require "json"
|
|
5
|
-
require "fileutils"
|
|
6
|
-
|
|
7
|
-
require "scarpe/components/unit_test_helpers"
|
|
8
|
-
|
|
9
|
-
module Scarpe::Test; end
|
|
10
|
-
|
|
11
|
-
# We need a separate assertion system for the kind of Scarpe
|
|
12
|
-
# testing where we start a subprocess, perform the assertion
|
|
13
|
-
# logic in the subprocess, and then run Minitest in the parent.
|
|
14
|
-
# It's an unusual setup.
|
|
15
|
-
module Scarpe::Test::EventedAssertions
|
|
16
|
-
include Scarpe::Test::HTMLAssertions
|
|
17
|
-
|
|
18
|
-
private
|
|
19
|
-
|
|
20
|
-
def evented_assertions_initialize
|
|
21
|
-
@assertion_data = []
|
|
22
|
-
@assertions_passed = 0
|
|
23
|
-
@assertions_failed = []
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
public
|
|
27
|
-
|
|
28
|
-
def assert(value, msg = nil)
|
|
29
|
-
msg ||= "Assertion #{value ? "succeeded" : "failed"}"
|
|
30
|
-
@assertion_data << [(value ? true : false), msg]
|
|
31
|
-
if value
|
|
32
|
-
@assertions_passed += 1
|
|
33
|
-
else
|
|
34
|
-
@assertions_failed << msg
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def assert_equal(expected, actual, msg = nil)
|
|
39
|
-
msg ||= "Expected #{actual.inspect} to equal #{expected.inspect}!"
|
|
40
|
-
assert actual == expected, msg
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def assertion_data_as_a_struct
|
|
44
|
-
{
|
|
45
|
-
still_pending: 0,
|
|
46
|
-
succeeded: @assertions_passed,
|
|
47
|
-
failed: @assertions_failed.size,
|
|
48
|
-
failures: @assertions_failed,
|
|
49
|
-
}
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def test_metadata
|
|
53
|
-
{}
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
# Assert that `text` includes `subtext`.
|
|
57
|
-
#
|
|
58
|
-
# @param text [String] the longer text
|
|
59
|
-
# @param subtext [String] the text that is asserted to be included
|
|
60
|
-
# @param msg [String,nil] if supplied, the failure message for the assertion
|
|
61
|
-
# @return [void]
|
|
62
|
-
def assert_include(text, subtext, msg = nil)
|
|
63
|
-
msg ||= "Expected #{text.inspect} to include #{subtext.inspect}"
|
|
64
|
-
assert text.include?(subtext), msg
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
# Assert that `text` does not include `subtext`.
|
|
68
|
-
#
|
|
69
|
-
# @param text [String] the longer text
|
|
70
|
-
# @param subtext [String] the text that is asserted to not be included
|
|
71
|
-
# @param msg [String,nil] if supplied, the failure message for the assertion
|
|
72
|
-
# @return [void]
|
|
73
|
-
def assert_not_include(text, subtext, msg = nil)
|
|
74
|
-
msg ||= "Expected #{text.inspect} not to include #{subtext.inspect}"
|
|
75
|
-
assert !text.include?(subtext), msg
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
def return_assertion_data
|
|
79
|
-
if !@assertions_failed.empty?
|
|
80
|
-
return_results(false, "Assertions failed", assertion_data_as_a_struct)
|
|
81
|
-
elsif @assertions_passed > 0
|
|
82
|
-
return_results(true, "All assertions passed", assertion_data_as_a_struct)
|
|
83
|
-
else
|
|
84
|
-
return_results(true, "Test finished successfully")
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
# This does a final return of results. If it gets called
|
|
89
|
-
# multiple times with different results, the test fails because that's not allowed.
|
|
90
|
-
#
|
|
91
|
-
# @param result_bool [Boolean] true if the results are success, false if failure
|
|
92
|
-
# @param msg [String] the message included with the results
|
|
93
|
-
# @param data [Hash] any additional data to pass with the results
|
|
94
|
-
# @return void
|
|
95
|
-
def return_results(result_bool, msg, data = {})
|
|
96
|
-
result_file = ENV["SCARPE_TEST_RESULTS"] || "./scarpe_results.txt"
|
|
97
|
-
|
|
98
|
-
result_structs = [result_bool, msg, data.merge(test_metadata)]
|
|
99
|
-
if File.exist?(result_file)
|
|
100
|
-
results_returned = JSON.parse File.read(result_file)
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
# Multiple different sets of results is bad, even if both are passing.
|
|
104
|
-
if results_returned && results_returned[0..1] != result_structs[0..1]
|
|
105
|
-
# Just raising here doesn't reliably fail the test.
|
|
106
|
-
# See: https://github.com/scarpe-team/scarpe/issues/212
|
|
107
|
-
Shoes::Log.logger("Test Results").error("Writing multi-result failure file to #{result_file.inspect}!")
|
|
108
|
-
|
|
109
|
-
new_res_data = { first_result: results_returned, second_result: result_structs }.merge(test_metadata)
|
|
110
|
-
bad_result = [false, "Returned two sets of results!", new_res_data]
|
|
111
|
-
File.write(result_file, JSON.pretty_generate(bad_result))
|
|
112
|
-
|
|
113
|
-
return
|
|
114
|
-
elsif results_returned
|
|
115
|
-
Shoes::Log.logger("Test Results").warn "Returning identical results twice: #{results_returned.inspect}"
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
Shoes::Log.logger("Test Results").debug("Writing results file #{result_file.inspect} to disk!")
|
|
119
|
-
File.write(result_file, JSON.pretty_generate(result_structs))
|
|
120
|
-
end
|
|
121
|
-
end
|
data/lib/scarpe/wv/span.rb
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Scarpe::Webview
|
|
4
|
-
class Span < TextDrawable
|
|
5
|
-
SIZES = {
|
|
6
|
-
inscription: 10,
|
|
7
|
-
ins: 10,
|
|
8
|
-
span: 12,
|
|
9
|
-
caption: 14,
|
|
10
|
-
tagline: 18,
|
|
11
|
-
subtitle: 26,
|
|
12
|
-
title: 34,
|
|
13
|
-
banner: 48,
|
|
14
|
-
}.freeze
|
|
15
|
-
private_constant :SIZES
|
|
16
|
-
|
|
17
|
-
def initialize(properties)
|
|
18
|
-
super
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def properties_changed(changes)
|
|
22
|
-
text = changes.delete("text")
|
|
23
|
-
if text
|
|
24
|
-
html_element.inner_html = text
|
|
25
|
-
return
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
# Not deleting, so this will re-render
|
|
29
|
-
if changes["size"] && SIZES[@size.to_sym]
|
|
30
|
-
@size = @size.to_sym
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
super
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def element(&block)
|
|
37
|
-
render("span", &block)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def to_html
|
|
41
|
-
element { @text }
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Scarpe::Components::Calzini
|
|
4
|
-
def link_element(props)
|
|
5
|
-
HTML.render do |h|
|
|
6
|
-
h.a(**link_attributes(props)) do
|
|
7
|
-
props["text"]
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def span_element(props, &block)
|
|
13
|
-
HTML.render do |h|
|
|
14
|
-
h.span(**span_options(props), &block)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def code_element(props, &block)
|
|
19
|
-
HTML.render do |h|
|
|
20
|
-
h.code(&block)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def em_element(props, &block)
|
|
25
|
-
HTML.render do |h|
|
|
26
|
-
h.em(&block)
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def strong_element(props, &block)
|
|
31
|
-
HTML.render do |h|
|
|
32
|
-
h.strong(&block)
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
private
|
|
37
|
-
|
|
38
|
-
def link_attributes(props)
|
|
39
|
-
{
|
|
40
|
-
id: html_id,
|
|
41
|
-
href: props["click"],
|
|
42
|
-
onclick: (handler_js_code("click") if props["has_block"]),
|
|
43
|
-
style: drawable_style(props),
|
|
44
|
-
}.compact
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def span_style(props)
|
|
48
|
-
{
|
|
49
|
-
color: props["stroke"],
|
|
50
|
-
"font-size": span_font_size(props),
|
|
51
|
-
"font-family": props["font"],
|
|
52
|
-
}.compact
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def span_options(props)
|
|
56
|
-
(props["html_attributes"] || {}).merge(id: html_id, style: span_style(props))
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def span_font_size(props)
|
|
60
|
-
sz = props["size"]
|
|
61
|
-
font_size = SIZES.key?(sz.to_s.to_sym) ? SIZES[sz.to_s.to_sym] : sz
|
|
62
|
-
|
|
63
|
-
dimensions_length(font_size)
|
|
64
|
-
end
|
|
65
|
-
end
|
|
File without changes
|