scarpe 0.3.0 → 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/CHANGELOG.md +36 -4
- data/Gemfile +2 -1
- data/Gemfile.lock +13 -3
- data/LICENSE.txt +7 -1
- data/README.md +77 -14
- data/Rakefile +67 -0
- data/examples/Edit_box_Styles.rb +8 -0
- data/examples/Kerning.rb +7 -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/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/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/spacing.rb +1 -1
- data/examples/span.rb +4 -2
- data/lacci/lacci.gemspec +2 -2
- data/lacci/lib/lacci/scarpe_cli.rb +0 -1
- data/lacci/lib/lacci/version.rb +1 -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 +7 -1
- data/lacci/lib/scarpe/niente.rb +14 -2
- data/lacci/lib/shoes/app.rb +44 -50
- data/lacci/lib/shoes/constants.rb +23 -2
- data/lacci/lib/shoes/display_service.rb +43 -4
- data/lacci/lib/shoes/drawable.rb +309 -35
- data/lacci/lib/shoes/drawables/arc.rb +2 -24
- data/lacci/lib/shoes/drawables/arrow.rb +2 -22
- data/lacci/lib/shoes/drawables/border.rb +28 -0
- data/lacci/lib/shoes/drawables/button.rb +4 -20
- 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 +3 -5
- 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 +4 -7
- data/lacci/lib/shoes/drawables/link.rb +5 -8
- 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 +5 -4
- data/lacci/lib/shoes/drawables/shape.rb +2 -1
- data/lacci/lib/shoes/drawables/slot.rb +99 -8
- data/lacci/lib/shoes/drawables/stack.rb +6 -11
- data/lacci/lib/shoes/drawables/star.rb +8 -30
- 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 +8 -3
- 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 +4 -3
- 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 +26 -0
- data/lacci/test/test_oval.rb +82 -0
- data/lacci/test/test_parenting.rb +140 -0
- data/lacci/test/test_text_drawables.rb +23 -0
- data/lib/scarpe/assets.rb +18 -0
- data/lib/scarpe/cats_cradle.rb +57 -98
- data/lib/scarpe/shoes_spec.rb +22 -43
- 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 +5 -2
- 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 +8 -1
- data/scarpe-components/Gemfile +4 -1
- data/scarpe-components/Gemfile.lock +2 -3
- 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 +7 -17
- data/scarpe-components/lib/scarpe/components/calzini/para.rb +213 -11
- data/scarpe-components/lib/scarpe/components/calzini/slots.rb +14 -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/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/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_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 +180 -32
- 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
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# These can be used for unit tests, but also more generally.
|
4
|
+
|
5
|
+
require_relative "file_helpers"
|
6
|
+
|
7
|
+
module Scarpe::Components::ProcessHelpers
|
8
|
+
include Scarpe::Components::FileHelpers
|
9
|
+
|
10
|
+
# Run the command and capture its stdout and stderr output, and whether
|
11
|
+
# it succeeded or failed. Return after the command has completed.
|
12
|
+
# The awkward name is because this is normally a component of another
|
13
|
+
# library. Ordinarily you'd want to raise a library-specific exception
|
14
|
+
# on failure, print a library-specific message or delimiter, or otherwise
|
15
|
+
# handle success and failure. This is too general as-is.
|
16
|
+
#
|
17
|
+
# @param cmd [String,Array<String>] the command to run in Kernel#spawn format
|
18
|
+
# @return [Array(String,String,bool)] the stdout output, stderr output and success/failure of the command in a 3-element Array
|
19
|
+
def run_out_err_result(cmd)
|
20
|
+
out_str = ""
|
21
|
+
err_str = ""
|
22
|
+
success = nil
|
23
|
+
|
24
|
+
with_tempfiles([
|
25
|
+
["scarpe_cmd_stdout", ""],
|
26
|
+
["scarpe_cmd_stderr", ""],
|
27
|
+
]) do |stdout_file, stderr_file|
|
28
|
+
pid = Kernel.spawn(cmd, out: stdout_file, err: stderr_file)
|
29
|
+
Process.wait(pid)
|
30
|
+
success = $?.success?
|
31
|
+
out_str = File.read stdout_file
|
32
|
+
err_str = File.read stderr_file
|
33
|
+
end
|
34
|
+
|
35
|
+
[out_str, err_str, success]
|
36
|
+
end
|
37
|
+
end
|
@@ -176,7 +176,7 @@ module Scarpe::Components
|
|
176
176
|
"shoes" => proc { |seg_file| after_load { load seg_file } },
|
177
177
|
"app_test" => proc do |seg_file|
|
178
178
|
ENV["SHOES_SPEC_TEST"] = seg_file
|
179
|
-
ENV["SHOES_MINITEST_EXPORT_FILE"]
|
179
|
+
ENV["SHOES_MINITEST_EXPORT_FILE"] ||= "sspec.json"
|
180
180
|
end,
|
181
181
|
}
|
182
182
|
end
|
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
# In Italian, tiranti are bootstraps -- the literal pull-on-a-boot kind, not a step to something better.
|
4
4
|
# Tiranti.rb builds on calzini.rb, but renders a Bootstrap-decorated version of the HTML output.
|
5
|
-
# You
|
6
|
-
#
|
5
|
+
# You can set Tiranti as your HTML renderer and you'll get Bootstrap versions of all the drawables.
|
6
|
+
# Tiranti requires Calzini's files because it falls back to Calzini for a lot of its rendering.
|
7
7
|
|
8
8
|
require "scarpe/components/calzini"
|
9
9
|
|
@@ -17,45 +17,22 @@ module Scarpe::Components::Tiranti
|
|
17
17
|
include Scarpe::Components::Calzini
|
18
18
|
extend self
|
19
19
|
|
20
|
-
# Currently we're using Bootswatch 5
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
"
|
25
|
-
"
|
26
|
-
"
|
27
|
-
"
|
28
|
-
|
29
|
-
"lumen",
|
30
|
-
"lux",
|
31
|
-
"materia",
|
32
|
-
"minty",
|
33
|
-
"morph",
|
34
|
-
"pulse",
|
35
|
-
"quartz",
|
36
|
-
"sandstone",
|
37
|
-
"simplex",
|
38
|
-
"sketchy",
|
39
|
-
"slate",
|
40
|
-
"solar",
|
41
|
-
"spacelab",
|
42
|
-
"superhero",
|
43
|
-
"united",
|
44
|
-
"vapor",
|
45
|
-
"yeti",
|
46
|
-
"zephyr",
|
47
|
-
]
|
48
|
-
|
49
|
-
BOOTSWATCH_THEME = ENV["SCARPE_BOOTSTRAP_THEME"] || "sketchy"
|
50
|
-
|
51
|
-
def empty_page_element
|
20
|
+
# Currently we're using Bootswatch 5.
|
21
|
+
# Bootswatch themes downloaded from https://bootswatch.com/5/THEME_NAME/bootstrap.css
|
22
|
+
|
23
|
+
def empty_page_element(theme: ENV["SCARPE_BOOTSTRAP_THEME"] || "sketchy")
|
24
|
+
comp_dir = File.expand_path("#{__dir__}/../../..")
|
25
|
+
bootstrap_js_url = Scarpe::Webview.asset_server.asset_url("#{comp_dir}/assets/bootstrap-themes/bootstrap.bundle.min.js", url_type: :asset)
|
26
|
+
theme_url = Scarpe::Webview.asset_server.asset_url("#{comp_dir}/assets/bootstrap-themes/bootstrap-#{theme}.css", url_type: :asset)
|
27
|
+
icons_url = Scarpe::Webview.asset_server.asset_url("#{comp_dir}/assets/bootstrap-themes/bootstrap-icons.min.css", url_type: :asset)
|
28
|
+
|
52
29
|
<<~HTML
|
53
30
|
<html>
|
54
31
|
<head id='head-wvroot'>
|
55
32
|
<meta charset="utf-8">
|
56
33
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
57
|
-
<link rel="stylesheet" href
|
58
|
-
<link rel="stylesheet" href
|
34
|
+
<link rel="stylesheet" href=#{theme_url.inspect}>
|
35
|
+
<link rel="stylesheet" href=#{icons_url.inspect}>
|
59
36
|
<style id='style-wvroot'>
|
60
37
|
/** Style resets **/
|
61
38
|
body {
|
@@ -67,22 +44,22 @@ module Scarpe::Components::Tiranti
|
|
67
44
|
<body id='body-wvroot'>
|
68
45
|
<div id='wrapper-wvroot'></div>
|
69
46
|
|
70
|
-
<script src
|
47
|
+
<script src=#{bootstrap_js_url}></script>
|
71
48
|
</body>
|
72
49
|
</html>
|
73
50
|
HTML
|
74
51
|
end
|
75
52
|
|
76
|
-
# def render_stack
|
77
|
-
# end
|
78
|
-
# def render_flow
|
79
|
-
# end
|
80
|
-
|
81
53
|
# How do we want to handle theme-specific colours and primary/secondary buttons in Bootstrap?
|
82
54
|
# "Disabled" could be checked in properties. Is there any way we can/should use "outline" buttons?
|
83
55
|
def button_element(props)
|
84
56
|
HTML.render do |h|
|
85
|
-
h.button(
|
57
|
+
h.button(
|
58
|
+
id: html_id,
|
59
|
+
type: "button",
|
60
|
+
class: props["html_class"] ? "btn #{props["html_class"]}" : "btn btn-primary",
|
61
|
+
onclick: handler_js_code("click"), style: button_style(props)
|
62
|
+
) do
|
86
63
|
props["text"]
|
87
64
|
end
|
88
65
|
end
|
@@ -97,14 +74,11 @@ module Scarpe::Components::Tiranti
|
|
97
74
|
styles[:"padding-top"] = props["padding_top"] if props["padding_top"]
|
98
75
|
styles[:"padding-bottom"] = props["padding_bottom"] if props["padding_bottom"]
|
99
76
|
styles[:color] = props["text_color"] if props["text_color"]
|
100
|
-
styles[:width] = dimensions_length(props["width"]) if props["width"]
|
101
|
-
styles[:height] = dimensions_length(props["height"]) if props["height"]
|
102
|
-
styles[:"font-size"] = props["font_size"] if props["font_size"]
|
103
77
|
|
104
|
-
|
105
|
-
styles[:
|
106
|
-
styles[:position] = "absolute" if props["top"] || props["left"]
|
78
|
+
# How do we want to handle font size?
|
79
|
+
styles[:"font-size"] = props["font_size"] if props["font_size"]
|
107
80
|
styles[:"font-size"] = dimensions_length(text_size(props["size"])) if props["size"]
|
81
|
+
|
108
82
|
styles[:"font-family"] = props["font"] if props["font"]
|
109
83
|
|
110
84
|
styles
|
@@ -153,8 +127,11 @@ module Scarpe::Components::Tiranti
|
|
153
127
|
end
|
154
128
|
|
155
129
|
def progress_element(props)
|
130
|
+
progress_style = drawable_style(props).merge({
|
131
|
+
width: "90%",
|
132
|
+
})
|
156
133
|
HTML.render do |h|
|
157
|
-
h.div(class: "progress", style:
|
134
|
+
h.div(id: html_id, class: "progress", style: progress_style) do
|
158
135
|
pct = "%.1f" % ((props["fraction"] || 0.0) * 100.0)
|
159
136
|
h.div(
|
160
137
|
class: "progress-bar progress-bar-striped progress-bar-animated",
|
@@ -168,58 +145,23 @@ module Scarpe::Components::Tiranti
|
|
168
145
|
end
|
169
146
|
end
|
170
147
|
|
171
|
-
# para_element is a bit of a hard one, since it does not-entirely-trivial
|
172
|
-
# mapping between display objects and IDs. But we don't want Calzini
|
173
|
-
# messing with the display service or display objects.
|
174
148
|
def para_element(props, &block)
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
para: [:p, 12],
|
188
|
-
caption: [:p, 14],
|
189
|
-
tagline: [:p, 18],
|
190
|
-
subtitle: [:h3, 26],
|
191
|
-
title: [:h2, 34],
|
192
|
-
banner: [:h1, 48],
|
193
|
-
}.freeze
|
194
|
-
|
195
|
-
def para_elt_and_opts(props)
|
196
|
-
elt, size = para_elt_and_size(props)
|
197
|
-
size = dimensions_length(size)
|
198
|
-
|
199
|
-
para_style = drawable_style(props).merge({
|
200
|
-
color: rgb_to_hex(props["stroke"]),
|
201
|
-
"font-size": para_font_size(props),
|
202
|
-
"font-family": props["font"],
|
203
|
-
}.compact)
|
204
|
-
|
205
|
-
opts = (props["html_attributes"] || {}).merge(id: html_id, style: para_style)
|
206
|
-
|
207
|
-
[elt, opts]
|
208
|
-
end
|
209
|
-
|
210
|
-
def para_elt_and_size(props)
|
211
|
-
return [:p, nil] unless props["size"]
|
212
|
-
|
213
|
-
ps = props["size"].to_s.to_sym
|
214
|
-
if ELT_AND_SIZE.key?(ps)
|
215
|
-
ELT_AND_SIZE[ps]
|
149
|
+
ps, _extra = para_style(props)
|
150
|
+
size = ps[:"font-size"] || "12px"
|
151
|
+
size_int = size.to_i # Mostly useful if it's something like "12px"
|
152
|
+
if size.include?("calc") || size.end_with?("%")
|
153
|
+
# Very big text!
|
154
|
+
props["tag"] = "h2"
|
155
|
+
elsif size_int >= 48
|
156
|
+
props["tag"] = "h1"
|
157
|
+
elsif size_int >= 34
|
158
|
+
props["tag"] = "h2"
|
159
|
+
elsif size_int >= 26
|
160
|
+
props["tag"] = "h3"
|
216
161
|
else
|
217
|
-
|
218
|
-
if sz > 18
|
219
|
-
[:h2, sz]
|
220
|
-
else
|
221
|
-
[:p, sz]
|
222
|
-
end
|
162
|
+
props["tag"] = "p"
|
223
163
|
end
|
164
|
+
|
165
|
+
super
|
224
166
|
end
|
225
167
|
end
|
@@ -5,6 +5,7 @@ require "json"
|
|
5
5
|
require "fileutils"
|
6
6
|
|
7
7
|
require "scarpe/components/file_helpers"
|
8
|
+
require "scarpe/components/process_helpers"
|
8
9
|
|
9
10
|
module Scarpe::Test; end
|
10
11
|
|
@@ -20,6 +21,7 @@ ALREADY_SET_UP_LOGGED_TEST_FAILURES = { setup: false }
|
|
20
21
|
module Scarpe::Test::Helpers
|
21
22
|
# Very useful for tests
|
22
23
|
include Scarpe::Components::FileHelpers
|
24
|
+
include Scarpe::Components::ProcessHelpers
|
23
25
|
|
24
26
|
# Temporarily set env vars for the block of code inside. The old environment
|
25
27
|
# variable values will be restored after the block finishes.
|
@@ -67,7 +69,7 @@ module Scarpe::Test::LoggedTest
|
|
67
69
|
@normal_log_config = Shoes::Log.current_log_config
|
68
70
|
Shoes::Log.configure_logger(log_config_for_test)
|
69
71
|
|
70
|
-
Shoes::Log.logger("
|
72
|
+
Shoes::Log.logger("LoggedTest").info("Test: #{self.class.name}##{self.name}")
|
71
73
|
end
|
72
74
|
|
73
75
|
# If you include this module and don't override setup/teardown, everything will
|
Binary file
|