diff --git a/samples/README.md b/samples/README.md
new file mode 100644
index 0000000..9fcddaa
--- /dev/null
+++ b/samples/README.md
@@ -0,0 +1,9 @@
+# Squib Samples
+
+In here we have a massive library of Squib samples. We try to exercise as many options as possible here as these samples also serve as Squib's regression test suite.
+
+If you have one to contribute, file an issue!
+
+# What's with the underscores?
+
+Normally you don't start a filename with an underscore (e.g. `_text.rb`), but to make it easier to find the code itself on GitHub, we've renamed the files so they sort to the top of the list.
diff --git a/samples/autoscale_font/_autoscale_font.rb b/samples/autoscale_font/_autoscale_font.rb
index e36e72b..a2987fc 100644
--- a/samples/autoscale_font/_autoscale_font.rb
+++ b/samples/autoscale_font/_autoscale_font.rb
@@ -25,5 +25,5 @@ Squib::Deck.new(width: 300, height: 100, cards: 3) do
text str: title, font: 'Arial', font_size: autoscale(title),
x: 10, y:10, align: :center, width: 280, ellipsize: false, hint: :red
- save_sheet dir: '.', columns: 3
+ save_sheet columns: 3
end
diff --git a/samples/ball.png b/samples/ball.png
deleted file mode 100644
index cf990bd..0000000
Binary files a/samples/ball.png and /dev/null differ
diff --git a/samples/build_groups/build_groups.rb b/samples/build_groups/build_groups.rb
index a490dbe..35f58e5 100644
--- a/samples/build_groups/build_groups.rb
+++ b/samples/build_groups/build_groups.rb
@@ -7,16 +7,16 @@ Squib::Deck.new(width: 75, height: 75, cards: 2) do
build :print_n_play do
rect
- save_sheet dir: '.', prefix: 'build_groups_bw_'
+ save_sheet prefix: 'build_groups_bw_'
end
build :color do
rect stroke_color: :red, dash: '5 5'
- save_png dir: '.', prefix: 'build_groups_color_'
+ save_png prefix: 'build_groups_color_'
end
build :test do
- save_png range: 0, dir: '.', prefix: 'build_groups_'
+ save_png range: 0, prefix: 'build_groups_'
end
end
diff --git a/samples/colors/_colors.rb b/samples/colors/_colors.rb
index acae413..69e14d4 100644
--- a/samples/colors/_colors.rb
+++ b/samples/colors/_colors.rb
@@ -20,6 +20,7 @@ end
# This script generates a table of the built-in constants
Squib::Deck.new(width: 3000, height: 1500) do
+ background color: :white
colors = (Cairo::Color.constants - %i(HEX_RE Base RGB CMYK HSV X11))
colors.sort_by! {|c| Cairo::Color.parse(c).to_s}
x, y, w, h = 0, 0, 300, 50
diff --git a/samples/config_disable_quotes.yml b/samples/config/config_disable_quotes.yml
similarity index 100%
rename from samples/config_disable_quotes.yml
rename to samples/config/config_disable_quotes.yml
diff --git a/samples/config_text_markup.rb b/samples/config/config_text_markup.rb
similarity index 100%
rename from samples/config_text_markup.rb
rename to samples/config/config_text_markup.rb
diff --git a/samples/config_text_markup.yml b/samples/config/config_text_markup.yml
similarity index 100%
rename from samples/config_text_markup.yml
rename to samples/config/config_text_markup.yml
diff --git a/samples/custom-config.yml b/samples/config/custom-config.yml
similarity index 100%
rename from samples/custom-config.yml
rename to samples/config/custom-config.yml
diff --git a/samples/custom_config.rb b/samples/config/custom_config.rb
similarity index 100%
rename from samples/custom_config.rb
rename to samples/config/custom_config.rb
diff --git a/samples/customconfig-imgdir/shiny-purse2.png b/samples/config/customconfig-imgdir/shiny-purse2.png
similarity index 100%
rename from samples/customconfig-imgdir/shiny-purse2.png
rename to samples/config/customconfig-imgdir/shiny-purse2.png
diff --git a/samples/customconfig-imgdir/spanner2.svg b/samples/config/customconfig-imgdir/spanner2.svg
similarity index 100%
rename from samples/customconfig-imgdir/spanner2.svg
rename to samples/config/customconfig-imgdir/spanner2.svg
diff --git a/samples/load_images_config.yml b/samples/config/load_images_config.yml
similarity index 100%
rename from samples/load_images_config.yml
rename to samples/config/load_images_config.yml
diff --git a/samples/grit.png b/samples/grit.png
deleted file mode 100644
index 1cdbff3..0000000
Binary files a/samples/grit.png and /dev/null differ
diff --git a/samples/cairo_access.rb b/samples/images/_cairo_access.rb
similarity index 100%
rename from samples/cairo_access.rb
rename to samples/images/_cairo_access.rb
diff --git a/samples/images/_images.rb b/samples/images/_images.rb
index 407f0b2..d33a319 100644
--- a/samples/images/_images.rb
+++ b/samples/images/_images.rb
@@ -100,5 +100,5 @@ Squib::Deck.new(width: 1000, height: 3000) do
end
- save_png prefix: '_images_', dir: '.'
+ save_png prefix: '_images_'
end
diff --git a/samples/unicode.rb b/samples/images/_unicode.rb
similarity index 100%
rename from samples/unicode.rb
rename to samples/images/_unicode.rb
diff --git a/samples/intro/01_hello.rb b/samples/intro/01_hello.rb
index a401f1d..eb29a62 100644
--- a/samples/intro/01_hello.rb
+++ b/samples/intro/01_hello.rb
@@ -4,6 +4,5 @@ Squib::Deck.new cards: 1 do
background color: 'pink'
rect
text str: 'Draw two cards.'
- save_png prefix: 'part1_', dir: '.'
+ save_png prefix: 'part1_'
end
-
diff --git a/samples/intro/02_options.rb b/samples/intro/02_options.rb
index a560031..943796d 100644
--- a/samples/intro/02_options.rb
+++ b/samples/intro/02_options.rb
@@ -10,6 +10,5 @@ Squib::Deck.new cards: 1 do
svg file: 'robot-golem.svg', x: 75, y: 300, width: 675, height: :scale
text str: 'Draw two cards', font: 'Serif 36',
align: :center, width: :deck, color: '#DFDFE1', y: 1000
- save_png prefix: 'part2_', dir: '.'
+ save_png prefix: 'part2_'
end
-
diff --git a/samples/intro/03_layout.rb b/samples/intro/03_layout.rb
index 0004cee..a95c39e 100644
--- a/samples/intro/03_layout.rb
+++ b/samples/intro/03_layout.rb
@@ -7,6 +7,5 @@ Squib::Deck.new cards: 1, layout: 'part3_layout.yml' do
svg layout: 'drone'
svg file: 'robot-golem.svg', layout: 'art'
text str: 'Draw two cards.', layout: 'power'
- save_png prefix: 'part3_', dir: '.'
+ save_png prefix: 'part3_'
end
-
diff --git a/samples/intro/04_arrays.rb b/samples/intro/04_arrays.rb
index dff2ee0..998c059 100644
--- a/samples/intro/04_arrays.rb
+++ b/samples/intro/04_arrays.rb
@@ -11,6 +11,5 @@ Squib::Deck.new cards: 2, layout: 'part3_layout.yml' do
text str: ['Draw two cards',
'Use the power of another player'],
layout: 'power'
- save_png prefix: 'part4_', dir: '.'
+ save_png prefix: 'part4_'
end
-
diff --git a/samples/intro/05_excel.rb b/samples/intro/05_excel.rb
index d4d3699..a3b8019 100644
--- a/samples/intro/05_excel.rb
+++ b/samples/intro/05_excel.rb
@@ -8,8 +8,7 @@ Squib::Deck.new cards: 4, layout: 'part3_layout.yml' do
svg layout: data['class']
svg file: data['art'], layout: 'art'
text str: data['power'], layout: 'power'
- save_png prefix: 'part5_', dir: '.'
- hand file: 'part5_hand.png', dir: '.', trim_radius: 38
- showcase file: 'part5_showcase.png', dir: '.'
+ save_png prefix: 'part5_'
+ hand file: 'part5_hand.png', trim_radius: 38
+ showcase file: 'part5_showcase.png'
end
-
diff --git a/samples/offset.svg b/samples/offset.svg
deleted file mode 100644
index ae5bcb9..0000000
--- a/samples/offset.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
-
diff --git a/samples/tgc_proofs.rb b/samples/proofs/_tgc_proofs.rb
similarity index 83%
rename from samples/tgc_proofs.rb
rename to samples/proofs/_tgc_proofs.rb
index 37fbb62..81da339 100644
--- a/samples/tgc_proofs.rb
+++ b/samples/proofs/_tgc_proofs.rb
@@ -9,10 +9,7 @@ Squib::Deck.new(width: 825, height: 1125, cards: 1) do
text str: 'Mastermind', x: 220, y: 78, font: 'Arial 54'
text str: 3, x: 75, y: 85, width: 128, font: 'Arial 72', align: :center
- png file: 'shiny-purse.png', x: 620, y: 75
- svg file: 'spanner.svg', x: 620, y: 218
-
- # TGC proof overlay
+ # TGC proof overlay (using alpha-transparency)
png file: 'pokercard.png', x:0, y:0, alpha: 0.5
save_png prefix: 'tgc_sample_'
diff --git a/samples/pokercard.png b/samples/proofs/pokercard.png
similarity index 100%
rename from samples/pokercard.png
rename to samples/proofs/pokercard.png
diff --git a/samples/proofs/shiny-purse.png b/samples/proofs/shiny-purse.png
new file mode 100644
index 0000000..477ef93
Binary files /dev/null and b/samples/proofs/shiny-purse.png differ
diff --git a/samples/shapes/shape_00_expected.png b/samples/shapes/shape_00_expected.png
index 035313c..d9da89b 100644
Binary files a/samples/shapes/shape_00_expected.png and b/samples/shapes/shape_00_expected.png differ
diff --git a/samples/sprites.png b/samples/sprites.png
deleted file mode 100644
index 9457264..0000000
Binary files a/samples/sprites.png and /dev/null differ
diff --git a/samples/embed_text.rb b/samples/text/_embed_text.rb
similarity index 99%
rename from samples/embed_text.rb
rename to samples/text/_embed_text.rb
index 97e5106..09704e6 100644
--- a/samples/embed_text.rb
+++ b/samples/text/_embed_text.rb
@@ -116,6 +116,7 @@ Squib::Deck.new do
end
Squib::Deck.new(cards: 3) do
+ background color: :white
str = 'Take 1 :tool: and gain 2 :health:.'
text(str: str, font: 'Sans', font_size: [18, 26, 35],
x: 0, y: 0, width: 180, height: 300, valign: :bottom,
diff --git a/samples/text/_text.rb b/samples/text/_text.rb
index 8d41829..4496466 100644
--- a/samples/text/_text.rb
+++ b/samples/text/_text.rb
@@ -43,5 +43,5 @@ Squib::Deck.new(width: 1000, height: 1250) do
text str: 'Rotated', hint: :red, x: x, y: y, angle: Math::PI / 6
end
- save_png prefix: '_text_', dir: '.'
+ save_png prefix: '_text_'
end
diff --git a/samples/text_options.rb b/samples/text/_text_options.rb
similarity index 99%
rename from samples/text_options.rb
rename to samples/text/_text_options.rb
index 250c94a..1c43715 100644
--- a/samples/text_options.rb
+++ b/samples/text/_text_options.rb
@@ -98,5 +98,5 @@ Squib::Deck.new(width: 825, height: 1125, cards: 3) do
valign: :bottom,
font: 'Serif 18', hint: :cyan
- save prefix: 'text_', format: :png
+ save prefix: 'text_options_', format: :png
end
diff --git a/samples/bug134.rb b/samples/text/bug134.rb
similarity index 100%
rename from samples/bug134.rb
rename to samples/text/bug134.rb
diff --git a/samples/glass-heart.svg b/samples/text/glass-heart.svg
similarity index 100%
rename from samples/glass-heart.svg
rename to samples/text/glass-heart.svg
diff --git a/samples/text/spanner.svg b/samples/text/spanner.svg
new file mode 100644
index 0000000..1f3a747
--- /dev/null
+++ b/samples/text/spanner.svg
@@ -0,0 +1,91 @@
+
+
diff --git a/samples/units/units_00_expected.png b/samples/units/units_00_expected.png
index 4f0b9d5..96fdb7f 100644
Binary files a/samples/units/units_00_expected.png and b/samples/units/units_00_expected.png differ
diff --git a/spec/conf_spec.rb b/spec/conf_spec.rb
index 68df488..8a20c9a 100644
--- a/spec/conf_spec.rb
+++ b/spec/conf_spec.rb
@@ -14,7 +14,7 @@ describe Squib::Conf do
end
it 'parses the sample custom config' do
- conf = Squib::Conf.load sample_file('custom-config.yml')
+ conf = Squib::Conf.load sample_file('config/custom-config.yml')
expect(conf.progress_bars).to be true
expect(conf.text_hint).to eq '#FF0000'
expect(conf.custom_colors).to eq({ 'foo' => '#ccc' })
diff --git a/spec/data/samples/autoscale_font/_autoscale_font.rb.txt b/spec/data/samples/autoscale_font/_autoscale_font.rb.txt
index 12986fb..a76c92a 100644
--- a/spec/data/samples/autoscale_font/_autoscale_font.rb.txt
+++ b/spec/data/samples/autoscale_font/_autoscale_font.rb.txt
@@ -127,7 +127,7 @@ cairo: set_source([MockDouble, 100, 0])
cairo: paint([])
cairo: set_source([MockDouble, 200, 0])
cairo: paint([])
-surface: write_to_png(["./card_00.png"])
+surface: write_to_png(["_output/card_00.png"])
surface: finish([])
surface: finish([])
surface: finish([])
diff --git a/spec/data/samples/config_text_markup.rb.txt b/spec/data/samples/config/config_text_markup.rb.txt
similarity index 100%
rename from spec/data/samples/config_text_markup.rb.txt
rename to spec/data/samples/config/config_text_markup.rb.txt
diff --git a/spec/data/samples/custom_config.rb.txt b/spec/data/samples/config/custom_config.rb.txt
similarity index 100%
rename from spec/data/samples/custom_config.rb.txt
rename to spec/data/samples/config/custom_config.rb.txt
diff --git a/spec/data/samples/images/_cairo_access.rb.txt b/spec/data/samples/images/_cairo_access.rb.txt
new file mode 100644
index 0000000..43076de
--- /dev/null
+++ b/spec/data/samples/images/_cairo_access.rb.txt
@@ -0,0 +1,59 @@
+cairo: antialias=(["subpixel"])
+cairo: antialias=(["subpixel"])
+cairo: save([])
+cairo: set_source_color(["white"])
+cairo: paint([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["white"])
+cairo: paint([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color([:blue])
+cairo: circle([150, 150, 150])
+cairo: fill([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color([:blue])
+cairo: circle([150, 150, 150])
+cairo: fill([])
+cairo: restore([])
+cairo: save([])
+cairo: circle([50, 50, 50])
+cairo: set_source_color([:red])
+cairo: fill([])
+cairo: restore([])
+cairo: translate([500, 500])
+cairo: translate([500, 500])
+cairo: save([])
+cairo: translate([0, 0])
+cairo: rotate([0])
+cairo: translate([0, 0])
+cairo: rounded_rectangle([0, 0, 50, 50, 0, 0])
+cairo: set_source_color(["red"])
+cairo: fill_preserve([])
+cairo: set_source_color(["black"])
+cairo: set_line_width([2.0])
+cairo: set_line_join([0])
+cairo: set_line_cap([0])
+cairo: set_dash([[]])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: translate([0, 0])
+cairo: rotate([0])
+cairo: translate([0, 0])
+cairo: rounded_rectangle([0, 0, 50, 50, 0, 0])
+cairo: set_source_color(["red"])
+cairo: fill_preserve([])
+cairo: set_source_color(["black"])
+cairo: set_line_width([2.0])
+cairo: set_line_join([0])
+cairo: set_line_cap([0])
+cairo: set_dash([[]])
+cairo: stroke([])
+cairo: restore([])
+surface: write_to_png(["_output/cairo_access_00.png"])
+surface: write_to_png(["_output/cairo_access_01.png"])
+surface: finish([])
+surface: finish([])
diff --git a/spec/data/samples/layouts.rb.txt b/spec/data/samples/layouts.rb.txt
deleted file mode 100644
index 630203f..0000000
--- a/spec/data/samples/layouts.rb.txt
+++ /dev/null
@@ -1,489 +0,0 @@
-cairo: save([])
-cairo: set_source_color([#])
-cairo: paint([])
-cairo: restore([])
-cairo: save([])
-cairo: rounded_rectangle([38, 38, 750, 1050, 25, 25])
-cairo: set_source_color([#])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: rounded_rectangle([38, 38, 750, 1050, 25, 25])
-cairo: set_source_color([#])
-cairo: fill([])
-cairo: restore([])
-cairo: save([])
-cairo: circle([50, 50, 25])
-cairo: set_source_color([#])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: circle([50, 50, 25])
-cairo: set_source_color([#])
-cairo: fill([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([125, 50])
-cairo: rotate([0])
-cairo: translate([-125, -50])
-cairo: move_to([125, 50])
-pango: font_description=([])
-pango: text=(["The Title"])
-pango: width=([640000])
-pango: height=([102400])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([125, 50])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([125, 50, 0, 0, 0, 0])
-cairo: set_source_color([:cyan])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: scale([0.9765625, 0.9765625])
-cairo: render_rsvg_handle([RSVG::Handle, nil])
-cairo: save([])
-cairo: translate([150, 250])
-cairo: rotate([0])
-cairo: translate([-150, -250])
-cairo: set_source([ImageSurface, 150, 250])
-cairo: paint([1.0])
-cairo: restore([])
-cairo: save([])
-cairo: translate([350, 400])
-cairo: rotate([0])
-cairo: translate([-350, -400])
-cairo: set_source([ImageSurface, 350, 400])
-cairo: paint([1.0])
-cairo: restore([])
-cairo: scale([0.9765625, 0.9765625])
-cairo: render_rsvg_handle([RSVG::Handle, nil])
-cairo: save([])
-cairo: translate([550, 250])
-cairo: rotate([0])
-cairo: translate([-550, -250])
-cairo: set_source([ImageSurface, 550, 250])
-cairo: paint([1.0])
-cairo: restore([])
-cairo: save([])
-cairo: rounded_rectangle([250, 600, 300, 200, 32, 32])
-cairo: set_source_color([#])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: rounded_rectangle([250, 600, 300, 200, 32, 32])
-cairo: set_source_color([#])
-cairo: fill([])
-cairo: restore([])
-cairo: save([])
-cairo: rounded_rectangle([260.0, 610.0, 280.0, 180.0, 24.0, 24.0])
-cairo: set_source_color([#])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: rounded_rectangle([260.0, 610.0, 280.0, 180.0, 24.0, 24.0])
-cairo: set_source_color([#])
-cairo: fill([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([270.0, 620.0])
-cairo: rotate([0])
-cairo: translate([-270.0, -620.0])
-cairo: move_to([270.0, 620.0])
-pango: font_description=([])
-pango: text=(["Extends!"])
-pango: width=([266240.0])
-pango: height=([163840.0])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([270.0, 620.0, 0, 0, 0, 0])
-cairo: set_source_color([:cyan])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([150, 150])
-cairo: rotate([0])
-cairo: translate([-150, -150])
-cairo: move_to([150, 150])
-pango: font_description=([])
-pango: text=(["subtitle"])
-pango: width=([588800])
-pango: height=([61440])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([150, 150])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([150, 150, 0, 0, 0, 0])
-cairo: set_source_color([:cyan])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([125, 50])
-cairo: rotate([0])
-cairo: translate([-125, -50])
-cairo: move_to([125, 50])
-pango: font_description=([])
-pango: text=(["The Title"])
-pango: width=([640000])
-pango: height=([102400])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([125, 50])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([150, 150])
-cairo: rotate([0])
-cairo: translate([-150, -150])
-cairo: move_to([150, 150])
-pango: font_description=([])
-pango: text=(["The Subtitle"])
-pango: width=([588800])
-pango: height=([61440])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([150, 150])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([150, 500.0])
-cairo: rotate([0])
-cairo: translate([-150, -500.0])
-cairo: move_to([150, 500.0])
-pango: font_description=([])
-pango: text=(["The Description"])
-pango: width=([588800])
-pango: height=([61440])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([150, 500.0])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([75, 75])
-cairo: rotate([0])
-cairo: translate([-75, -75])
-cairo: move_to([75, 75])
-pango: font_description=([])
-pango: text=(["A\u2660"])
-pango: width=([204800])
-pango: height=([204800])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([75, 75, 0, 0, 0, 0])
-cairo: set_source_color([:red])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([750, 1050])
-cairo: rotate([3.14159])
-cairo: translate([-750, -1050])
-cairo: move_to([750, 1050])
-pango: font_description=([])
-pango: text=(["A\u2660"])
-pango: width=([204800])
-pango: height=([204800])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([750, 1050, 0, 0, 0, 0])
-cairo: set_source_color([:red])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([150, 275])
-cairo: rotate([0])
-cairo: translate([-150, -275])
-cairo: move_to([150, 275])
-pango: font_description=([])
-pango: text=(["artwork here"])
-pango: width=([537600])
-pango: height=([588800])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([150, 275])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([150, 275, 0, 0, 0, 0])
-cairo: set_source_color([:red])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([275, 75])
-cairo: rotate([0])
-cairo: translate([-275, -75])
-cairo: move_to([275, 75])
-pango: font_description=([])
-pango: text=(["Title"])
-pango: width=([486400])
-pango: height=([128000])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([275, 75])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([275, 75, 0, 0, 0, 0])
-cairo: set_source_color([:red])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([75, 75])
-cairo: rotate([0])
-cairo: translate([-75, -75])
-cairo: move_to([75, 75])
-pango: font_description=([])
-pango: text=(["Bonus1"])
-pango: width=([179200])
-pango: height=([179200])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([75, 75])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([75, 75, 0, 0, 0, 0])
-cairo: set_source_color([:red])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([75, 273.0])
-cairo: rotate([0])
-cairo: translate([-75, -273.0])
-cairo: move_to([75, 273.0])
-pango: font_description=([])
-pango: text=(["Bonus2"])
-pango: width=([179200])
-pango: height=([179200])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([75, 273.0])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([75, 273.0, 0, 0, 0, 0])
-cairo: set_source_color([:red])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([75, 471.0])
-cairo: rotate([0])
-cairo: translate([-75, -471.0])
-cairo: move_to([75, 471.0])
-pango: font_description=([])
-pango: text=(["Bonus3"])
-pango: width=([179200])
-pango: height=([179200])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([75, 471.0])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([75, 471.0, 0, 0, 0, 0])
-cairo: set_source_color([:red])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([75, 669.0])
-cairo: rotate([0])
-cairo: translate([-75, -669.0])
-cairo: move_to([75, 669.0])
-pango: font_description=([])
-pango: text=(["Bonus4"])
-pango: width=([179200])
-pango: height=([179200])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([75, 669.0])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([75, 669.0, 0, 0, 0, 0])
-cairo: set_source_color([:red])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([75, 867.0])
-cairo: rotate([0])
-cairo: translate([-75, -867.0])
-cairo: move_to([75, 867.0])
-pango: font_description=([])
-pango: text=(["Bonus5"])
-pango: width=([179200])
-pango: height=([179200])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([75, 867.0])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([75, 867.0, 0, 0, 0, 0])
-cairo: set_source_color([:red])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([275, 725])
-cairo: rotate([0])
-cairo: translate([-275, -725])
-cairo: move_to([275, 725])
-pango: font_description=([])
-pango: text=(["Description"])
-pango: width=([486400])
-pango: height=([204800])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([275, 725])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([275, 725, 0, 0, 0, 0])
-cairo: set_source_color([:red])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([275, 950])
-cairo: rotate([0])
-cairo: translate([-275, -950])
-cairo: move_to([275, 950])
-pango: font_description=([])
-pango: text=(["Snark"])
-pango: width=([486400])
-pango: height=([102400])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([275, 950])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([275, 950, 0, 0, 0, 0])
-cairo: set_source_color([:red])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: save([])
-cairo: set_source_color([#])
-cairo: translate([275, 225])
-cairo: rotate([0])
-cairo: translate([-275, -225])
-cairo: move_to([275, 225])
-pango: font_description=([])
-pango: text=(["Art"])
-pango: width=([486400])
-pango: height=([486400])
-pango: wrap=([#])
-pango: ellipsize=([#])
-pango: alignment=([#])
-pango: justify=([false])
-pango: spacing=([0])
-cairo: update_pango_layout([#])
-cairo: move_to([275, 225])
-cairo: update_pango_layout([#])
-cairo: show_pango_layout([#])
-cairo: rounded_rectangle([275, 225, 0, 0, 0, 0])
-cairo: set_source_color([:red])
-cairo: set_line_width([2.0])
-cairo: stroke([])
-cairo: restore([])
-cairo: save([])
-cairo: translate([0, 0])
-cairo: rotate([0])
-cairo: translate([0, 0])
-cairo: set_source([ImageSurface, 0, 0])
-cairo: paint([0.5])
-cairo: restore([])
diff --git a/spec/data/samples/tgc_proofs.rb.txt b/spec/data/samples/proofs/_tgc_proofs.rb.txt
similarity index 79%
rename from spec/data/samples/tgc_proofs.rb.txt
rename to spec/data/samples/proofs/_tgc_proofs.rb.txt
index 8290ee4..ff72597 100644
--- a/spec/data/samples/tgc_proofs.rb.txt
+++ b/spec/data/samples/proofs/_tgc_proofs.rb.txt
@@ -65,28 +65,6 @@ cairo: show_pango_layout([MockDouble])
pango: ellipsized?([])
cairo: restore([])
cairo: save([])
-cairo: translate([620, 75])
-cairo: scale([1.0, 1.0])
-cairo: rotate([0])
-cairo: transform([Matrix])
-cairo: translate([-620, -75])
-cairo: rounded_rectangle([620, 75, 128.0, 128.0, 0, 0])
-cairo: clip([])
-cairo: translate([0, 0])
-cairo: set_source([ImageSurface, 620, 75])
-cairo: paint([1.0])
-cairo: restore([])
-cairo: save([])
-cairo: translate([620, 218])
-cairo: transform([Matrix])
-cairo: rotate([0])
-cairo: scale([1.0, 1.0])
-cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0])
-cairo: clip([])
-cairo: translate([0, 0])
-cairo: render_rsvg_handle([RSVG::Handle, nil])
-cairo: restore([])
-cairo: save([])
cairo: translate([0, 0])
cairo: scale([1.0, 1.0])
cairo: rotate([0])
diff --git a/spec/data/samples/text/_embed_text.rb.txt b/spec/data/samples/text/_embed_text.rb.txt
new file mode 100644
index 0000000..e340d1a
--- /dev/null
+++ b/spec/data/samples/text/_embed_text.rb.txt
@@ -0,0 +1,427 @@
+cairo: antialias=(["subpixel"])
+cairo: save([])
+cairo: set_source_color(["white"])
+cairo: paint([])
+cairo: restore([])
+cairo: save([])
+cairo: translate([0, 0])
+cairo: rotate([0])
+cairo: translate([0, 0])
+cairo: rounded_rectangle([0, 0, 825, 1125, 0, 0])
+cairo: set_source_color(["#0000"])
+cairo: fill_preserve([])
+cairo: set_source_color(["black"])
+cairo: set_line_width([2.0])
+cairo: set_line_join([0])
+cairo: set_line_cap([0])
+cairo: set_dash([[]])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([0, 0])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=(["Take 11 :tool: and gain 2 :health:. Take 2 :tool: and gain 3 :purse: if level 2."])
+pango: width=([184320])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=(["Take 11 :tool: and gain 2 :health:. Take 2 :tool: and gain 3 :purse: if level 2."])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0])
+cairo: move_to([0, 0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:red])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([200, 0])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=(["Middle align: Take 1 :tool: and gain 2 :health:. Take 2 :tool: and gain 3 :purse:"])
+pango: width=([184320])
+pango: height=([307200])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=(["Middle align: Take 1 :tool: and gain 2 :health:. Take 2 :tool: and gain 3 :purse:"])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0.0])
+cairo: move_to([0, 0.0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:cyan])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([400, 0])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=(["This :tool: aligns on the bottom properly. :purse:"])
+pango: width=([184320])
+pango: height=([307200])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=(["This :tool: aligns on the bottom properly. :purse:"])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0.0])
+cairo: move_to([0, 0.0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:green])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([600, 0])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=(["Yes, this wraps strangely. We are trying to determine the cause. These are 1 :tool::tool::tool: and these are multiple :tool::tool: :tool::tool:"])
+pango: width=([184320])
+pango: height=([307200])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=(["Yes, this wraps strangely. We are trying to determine the cause. These are 1 :tool::tool::tool: and these are multiple :tool::tool: :tool::tool:"])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0])
+cairo: move_to([0, 0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:cyan])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([0, 320])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=([":tool:Justify will :tool: work too, and :purse: with more words just for fun"])
+pango: width=([184320])
+pango: height=([307200])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([true])
+pango: markup=([":tool:Justify will :tool: work too, and :purse: with more words just for fun"])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0.0])
+cairo: move_to([0, 0.0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:magenta])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([200, 320])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=(["Right-aligned works :tool: with :health: and :purse:"])
+pango: width=([184320])
+pango: height=([307200])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=(["Right-aligned works :tool: with :health: and :purse:"])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0.0])
+cairo: move_to([0, 0.0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:magenta])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([400, 320])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=([":tool:Center-aligned works :tool: with :health: and :purse:"])
+pango: width=([184320])
+pango: height=([307200])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=([":tool:Center-aligned works :tool: with :health: and :purse:"])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0])
+cairo: move_to([0, 0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:magenta])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([600, 320])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=(["Markup --- and typography replacements --- with \":tool:\" icons won't fail"])
+pango: markup=(["foo"])
+pango: width=([184320])
+pango: height=([307200])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=(["foo"])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0])
+cairo: move_to([0, 0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:magenta])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([0, 640])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=([":tool:"])
+pango: markup=(["foo"])
+pango: width=([184320])
+pango: height=([51200])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=(["foo"])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0.0])
+cairo: move_to([0, 0.0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:red])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([200, 640])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=([":purse:"])
+pango: markup=(["foo"])
+pango: width=([184320])
+pango: height=([51200])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=(["foo"])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0.0])
+cairo: move_to([0, 0.0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:red])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["red"])
+cairo: translate([0, 700])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=([":tool: Death to Nemesis bug 103!! :purse:"])
+pango: width=([389120])
+pango: height=([153600])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=([":tool: Death to Nemesis bug 103!! :purse:"])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0.0])
+cairo: move_to([0, 0.0])
+cairo: show_pango_layout([MockDouble])
+cairo: pango_layout_path([MockDouble])
+cairo: set_source_color(["blue"])
+cairo: set_line_width([2])
+cairo: set_line_join([0])
+cairo: set_line_cap([0])
+cairo: set_dash([[3.0, 3.0]])
+cairo: stroke([])
+cairo: set_source_color(["red"])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:magenta])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([400, 640])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=(["You can adjust the icon with dx and dy. Normal: :tool: Adjusted: :heart:"])
+pango: width=([184320])
+pango: height=([307200])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=(["You can adjust the icon with dx and dy. Normal: :tool: Adjusted: :heart:"])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0])
+cairo: move_to([0, 0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:magenta])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([600, 640])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango: font_description=([MockDouble])
+pango: text=(["Native sizes work too\n:tool:\n\n\n\n\n\n:shiny-purse:\n\n\n\n\n\n:tool2:"])
+pango: width=([184320])
+pango: height=([486400])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=(["Native sizes work too\n:tool:\n\n\n\n\n\n:shiny-purse:\n\n\n\n\n\n:tool2:"])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0])
+cairo: move_to([0, 0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:magenta])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+surface: write_to_png(["_output/embed_00.png"])
+surface: finish([])
+cairo: antialias=(["subpixel"])
+cairo: antialias=(["subpixel"])
+cairo: antialias=(["subpixel"])
+cairo: save([])
+cairo: set_source_color(["white"])
+cairo: paint([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["white"])
+cairo: paint([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["white"])
+cairo: paint([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([0, 0])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango font: size=([18432])
+pango: font_description=([MockDouble])
+pango: text=(["Take 1 :tool: and gain 2 :health:."])
+pango: width=([184320])
+pango: height=([307200])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=(["Take 1 :tool: and gain 2 :health:."])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0.0])
+cairo: move_to([0, 0.0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:cyan])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([0, 0])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango font: size=([26624])
+pango: font_description=([MockDouble])
+pango: text=(["Take 1 :tool: and gain 2 :health:."])
+pango: width=([184320])
+pango: height=([307200])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=(["Take 1 :tool: and gain 2 :health:."])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0.0])
+cairo: move_to([0, 0.0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:cyan])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: save([])
+cairo: set_source_color(["black"])
+cairo: translate([0, 0])
+cairo: rotate([0])
+cairo: move_to([0, 0])
+pango font: size=([35840])
+pango: font_description=([MockDouble])
+pango: text=(["Take 1 :tool: and gain 2 :health:."])
+pango: width=([184320])
+pango: height=([307200])
+pango: wrap=([#])
+pango: ellipsize=([#])
+pango: alignment=([#])
+pango: justify=([false])
+pango: markup=(["Take 1 :tool: and gain 2 :health:."])
+pango: attributes=([Pango::AttrList])
+cairo: move_to([0, 0.0])
+cairo: move_to([0, 0.0])
+cairo: show_pango_layout([MockDouble])
+cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
+cairo: set_source_color([:cyan])
+cairo: set_line_width([2.0])
+cairo: stroke([])
+cairo: restore([])
+cairo: set_source([MockDouble, 0, 0])
+cairo: paint([])
+cairo: set_source([MockDouble, 100, 0])
+cairo: paint([])
+cairo: set_source([MockDouble, 200, 0])
+cairo: paint([])
+surface: write_to_png(["_output/embed_multisheet_00.png"])
+surface: finish([])
+surface: finish([])
+surface: finish([])
diff --git a/spec/data/samples/text_options.rb.txt b/spec/data/samples/text/_text_options.rb.txt
similarity index 96%
rename from spec/data/samples/text_options.rb.txt
rename to spec/data/samples/text/_text_options.rb.txt
index a887f79..12ca0c3 100644
--- a/spec/data/samples/text_options.rb.txt
+++ b/spec/data/samples/text/_text_options.rb.txt
@@ -111,7 +111,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -127,7 +126,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -143,7 +141,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["burnt_orange"])
@@ -159,7 +156,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["burnt_orange"])
@@ -175,7 +171,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["burnt_orange"])
@@ -191,7 +186,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -207,7 +201,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -223,7 +216,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -239,7 +231,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -255,7 +246,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -271,7 +261,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -287,7 +276,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -304,7 +292,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -321,7 +308,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -338,7 +324,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -360,7 +345,6 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -382,7 +366,6 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -404,7 +387,6 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -421,7 +403,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -438,7 +419,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -455,7 +435,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: translate([60, 545])
@@ -519,7 +498,6 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:green])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -541,7 +519,6 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:green])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -563,7 +540,6 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:green])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -583,7 +559,6 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -603,7 +578,6 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -623,7 +597,6 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -639,7 +612,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -655,7 +627,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -671,7 +642,6 @@ pango: justify=([false])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -691,7 +661,6 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -711,7 +680,6 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -731,7 +699,6 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -750,7 +717,6 @@ pango: spacing=([-6144.0])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -769,7 +735,6 @@ pango: spacing=([-6144.0])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -788,7 +753,6 @@ pango: spacing=([-6144.0])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -807,7 +771,6 @@ pango: attributes=([Pango::AttrList])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -826,7 +789,6 @@ pango: attributes=([Pango::AttrList])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -845,7 +807,6 @@ pango: attributes=([Pango::AttrList])
cairo: move_to([0, 0])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["green"])
@@ -871,7 +832,6 @@ cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: set_source_color(["green"])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["green"])
@@ -897,7 +857,6 @@ cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: set_source_color(["green"])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["green"])
@@ -923,7 +882,6 @@ cairo: set_line_cap([0])
cairo: set_dash([[]])
cairo: stroke([])
cairo: set_source_color(["green"])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["green"])
@@ -949,7 +907,6 @@ cairo: stroke([])
cairo: set_source_color(["green"])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["green"])
@@ -975,7 +932,6 @@ cairo: stroke([])
cairo: set_source_color(["green"])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["green"])
@@ -1001,7 +957,6 @@ cairo: stroke([])
cairo: set_source_color(["green"])
cairo: move_to([0, 0])
cairo: show_pango_layout([MockDouble])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["white"])
@@ -1027,7 +982,6 @@ cairo: set_line_cap([0])
cairo: set_dash([[4.0, 2.0]])
cairo: stroke([])
cairo: set_source_color(["white"])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["white"])
@@ -1053,7 +1007,6 @@ cairo: set_line_cap([0])
cairo: set_dash([[4.0, 2.0]])
cairo: stroke([])
cairo: set_source_color(["white"])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["white"])
@@ -1079,7 +1032,6 @@ cairo: set_line_cap([0])
cairo: set_dash([[4.0, 2.0]])
cairo: stroke([])
cairo: set_source_color(["white"])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -1102,7 +1054,6 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -1125,7 +1076,6 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
cairo: save([])
cairo: set_source_color(["black"])
@@ -1148,11 +1098,10 @@ cairo: rounded_rectangle([0, 0, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
cairo: set_line_width([2.0])
cairo: stroke([])
-pango: ellipsized?([])
cairo: restore([])
-surface: write_to_png(["_output/text_00.png"])
-surface: write_to_png(["_output/text_01.png"])
-surface: write_to_png(["_output/text_02.png"])
+surface: write_to_png(["_output/text_options_00.png"])
+surface: write_to_png(["_output/text_options_01.png"])
+surface: write_to_png(["_output/text_options_02.png"])
surface: finish([])
surface: finish([])
surface: finish([])
diff --git a/spec/samples/_diffs/gitkeep.txt b/spec/samples/_diffs/gitkeep.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/spec/samples/diff-with-css.example.html b/spec/samples/diff-with-css.example.html
deleted file mode 100644
index 0da46c9..0000000
--- a/spec/samples/diff-with-css.example.html
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
- Diff with CSS Example
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/spec/samples/expected/autoscale_00.png b/spec/samples/expected/autoscale_00.png
deleted file mode 100644
index e69b293..0000000
Binary files a/spec/samples/expected/autoscale_00.png and /dev/null differ
diff --git a/spec/samples/expected/autoscale_01.png b/spec/samples/expected/autoscale_01.png
deleted file mode 100644
index d0a2cb0..0000000
Binary files a/spec/samples/expected/autoscale_01.png and /dev/null differ
diff --git a/spec/samples/expected/autoscale_02.png b/spec/samples/expected/autoscale_02.png
deleted file mode 100644
index dbe1817..0000000
Binary files a/spec/samples/expected/autoscale_02.png and /dev/null differ
diff --git a/spec/samples/expected/backend_00.png b/spec/samples/expected/backend_00.png
deleted file mode 100644
index 07cd7ad..0000000
Binary files a/spec/samples/expected/backend_00.png and /dev/null differ
diff --git a/spec/samples/expected/backend_00.svg b/spec/samples/expected/backend_00.svg
deleted file mode 100644
index 679f326..0000000
--- a/spec/samples/expected/backend_00.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
diff --git a/spec/samples/expected/backend_01.png b/spec/samples/expected/backend_01.png
deleted file mode 100644
index 07cd7ad..0000000
Binary files a/spec/samples/expected/backend_01.png and /dev/null differ
diff --git a/spec/samples/expected/backend_01.svg b/spec/samples/expected/backend_01.svg
deleted file mode 100644
index 3abf14b..0000000
--- a/spec/samples/expected/backend_01.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
diff --git a/spec/samples/expected/basic_00.png b/spec/samples/expected/basic_00.png
deleted file mode 100644
index 59b1a91..0000000
Binary files a/spec/samples/expected/basic_00.png and /dev/null differ
diff --git a/spec/samples/expected/basic_01.png b/spec/samples/expected/basic_01.png
deleted file mode 100644
index e72f492..0000000
Binary files a/spec/samples/expected/basic_01.png and /dev/null differ
diff --git a/spec/samples/expected/basic_02.png b/spec/samples/expected/basic_02.png
deleted file mode 100644
index 355d5fe..0000000
Binary files a/spec/samples/expected/basic_02.png and /dev/null differ
diff --git a/spec/samples/expected/cairo_access_00.png b/spec/samples/expected/cairo_access_00.png
deleted file mode 100644
index 80974e8..0000000
Binary files a/spec/samples/expected/cairo_access_00.png and /dev/null differ
diff --git a/spec/samples/expected/cairo_access_01.png b/spec/samples/expected/cairo_access_01.png
deleted file mode 100644
index f1f77d9..0000000
Binary files a/spec/samples/expected/cairo_access_01.png and /dev/null differ
diff --git a/spec/samples/expected/card_00.png b/spec/samples/expected/card_00.png
deleted file mode 100644
index c2c68f9..0000000
Binary files a/spec/samples/expected/card_00.png and /dev/null differ
diff --git a/spec/samples/expected/card_01.png b/spec/samples/expected/card_01.png
deleted file mode 100644
index af4994e..0000000
Binary files a/spec/samples/expected/card_01.png and /dev/null differ
diff --git a/spec/samples/expected/colors_00.png b/spec/samples/expected/colors_00.png
deleted file mode 100644
index b03425b..0000000
Binary files a/spec/samples/expected/colors_00.png and /dev/null differ
diff --git a/spec/samples/expected/config_disable_text_00.png b/spec/samples/expected/config_disable_text_00.png
deleted file mode 100644
index 45c78ce..0000000
Binary files a/spec/samples/expected/config_disable_text_00.png and /dev/null differ
diff --git a/spec/samples/expected/config_text_00.png b/spec/samples/expected/config_text_00.png
deleted file mode 100644
index 64dba33..0000000
Binary files a/spec/samples/expected/config_text_00.png and /dev/null differ
diff --git a/spec/samples/expected/custom-config_00.png b/spec/samples/expected/custom-config_00.png
deleted file mode 100644
index a2810d7..0000000
Binary files a/spec/samples/expected/custom-config_00.png and /dev/null differ
diff --git a/spec/samples/expected/embed_00.png b/spec/samples/expected/embed_00.png
deleted file mode 100644
index 5f38974..0000000
Binary files a/spec/samples/expected/embed_00.png and /dev/null differ
diff --git a/spec/samples/expected/embed_multisheet_00.png b/spec/samples/expected/embed_multisheet_00.png
deleted file mode 100644
index 1d636d3..0000000
Binary files a/spec/samples/expected/embed_multisheet_00.png and /dev/null differ
diff --git a/spec/samples/expected/gitkeep.txt b/spec/samples/expected/gitkeep.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/spec/samples/expected/gradient_00.png b/spec/samples/expected/gradient_00.png
deleted file mode 100644
index 93e710e..0000000
Binary files a/spec/samples/expected/gradient_00.png and /dev/null differ
diff --git a/spec/samples/expected/hand.png b/spec/samples/expected/hand.png
deleted file mode 100644
index eed643b..0000000
Binary files a/spec/samples/expected/hand.png and /dev/null differ
diff --git a/spec/samples/expected/hand_pretty.png b/spec/samples/expected/hand_pretty.png
deleted file mode 100644
index efd38f9..0000000
Binary files a/spec/samples/expected/hand_pretty.png and /dev/null differ
diff --git a/spec/samples/expected/landscape_00.png b/spec/samples/expected/landscape_00.png
deleted file mode 100644
index 2154809..0000000
Binary files a/spec/samples/expected/landscape_00.png and /dev/null differ
diff --git a/spec/samples/expected/layout2_00.png b/spec/samples/expected/layout2_00.png
deleted file mode 100644
index 82eeab6..0000000
Binary files a/spec/samples/expected/layout2_00.png and /dev/null differ
diff --git a/spec/samples/expected/layout_00.png b/spec/samples/expected/layout_00.png
deleted file mode 100644
index e2a9a79..0000000
Binary files a/spec/samples/expected/layout_00.png and /dev/null differ
diff --git a/spec/samples/expected/layout_builtin_hand_00.png b/spec/samples/expected/layout_builtin_hand_00.png
deleted file mode 100644
index 472d7aa..0000000
Binary files a/spec/samples/expected/layout_builtin_hand_00.png and /dev/null differ
diff --git a/spec/samples/expected/layout_builtin_playing_card_00.png b/spec/samples/expected/layout_builtin_playing_card_00.png
deleted file mode 100644
index 30b4fcc..0000000
Binary files a/spec/samples/expected/layout_builtin_playing_card_00.png and /dev/null differ
diff --git a/spec/samples/expected/load_images_00.png b/spec/samples/expected/load_images_00.png
deleted file mode 100644
index a65a1f5..0000000
Binary files a/spec/samples/expected/load_images_00.png and /dev/null differ
diff --git a/spec/samples/expected/portrait_00.png b/spec/samples/expected/portrait_00.png
deleted file mode 100644
index 9899846..0000000
Binary files a/spec/samples/expected/portrait_00.png and /dev/null differ
diff --git a/spec/samples/expected/ranges_00.png b/spec/samples/expected/ranges_00.png
deleted file mode 100644
index 5f23a6c..0000000
Binary files a/spec/samples/expected/ranges_00.png and /dev/null differ
diff --git a/spec/samples/expected/sample_csv_00.png b/spec/samples/expected/sample_csv_00.png
deleted file mode 100644
index 53fff6e..0000000
Binary files a/spec/samples/expected/sample_csv_00.png and /dev/null differ
diff --git a/spec/samples/expected/sample_csv_01.png b/spec/samples/expected/sample_csv_01.png
deleted file mode 100644
index 50f0cb8..0000000
Binary files a/spec/samples/expected/sample_csv_01.png and /dev/null differ
diff --git a/spec/samples/expected/sample_excel_00.png b/spec/samples/expected/sample_excel_00.png
deleted file mode 100644
index ca41134..0000000
Binary files a/spec/samples/expected/sample_excel_00.png and /dev/null differ
diff --git a/spec/samples/expected/sample_excel_01.png b/spec/samples/expected/sample_excel_01.png
deleted file mode 100644
index 81806a5..0000000
Binary files a/spec/samples/expected/sample_excel_01.png and /dev/null differ
diff --git a/spec/samples/expected/sample_excel_02.png b/spec/samples/expected/sample_excel_02.png
deleted file mode 100644
index 7bafcaa..0000000
Binary files a/spec/samples/expected/sample_excel_02.png and /dev/null differ
diff --git a/spec/samples/expected/save_sheet_00.png b/spec/samples/expected/save_sheet_00.png
deleted file mode 100644
index 1b57c33..0000000
Binary files a/spec/samples/expected/save_sheet_00.png and /dev/null differ
diff --git a/spec/samples/expected/save_sheet_01.png b/spec/samples/expected/save_sheet_01.png
deleted file mode 100644
index dc2d5f6..0000000
Binary files a/spec/samples/expected/save_sheet_01.png and /dev/null differ
diff --git a/spec/samples/expected/save_sheet_range_00.png b/spec/samples/expected/save_sheet_range_00.png
deleted file mode 100644
index 2c19aca..0000000
Binary files a/spec/samples/expected/save_sheet_range_00.png and /dev/null differ
diff --git a/spec/samples/expected/save_sheet_range_01.png b/spec/samples/expected/save_sheet_range_01.png
deleted file mode 100644
index 60bc5e7..0000000
Binary files a/spec/samples/expected/save_sheet_range_01.png and /dev/null differ
diff --git a/spec/samples/expected/save_single_sheet_00.png b/spec/samples/expected/save_single_sheet_00.png
deleted file mode 100644
index d8c0a65..0000000
Binary files a/spec/samples/expected/save_single_sheet_00.png and /dev/null differ
diff --git a/spec/samples/expected/saves_notrim_01.png b/spec/samples/expected/saves_notrim_01.png
deleted file mode 100644
index 8ee4486..0000000
Binary files a/spec/samples/expected/saves_notrim_01.png and /dev/null differ
diff --git a/spec/samples/expected/shape_00.png b/spec/samples/expected/shape_00.png
deleted file mode 100644
index 035313c..0000000
Binary files a/spec/samples/expected/shape_00.png and /dev/null differ
diff --git a/spec/samples/expected/showcase.png b/spec/samples/expected/showcase.png
deleted file mode 100644
index ed0a79e..0000000
Binary files a/spec/samples/expected/showcase.png and /dev/null differ
diff --git a/spec/samples/expected/showcase2.png b/spec/samples/expected/showcase2.png
deleted file mode 100644
index 8e7de5a..0000000
Binary files a/spec/samples/expected/showcase2.png and /dev/null differ
diff --git a/spec/samples/expected/showcase_individual_00.png b/spec/samples/expected/showcase_individual_00.png
deleted file mode 100644
index ee1e32c..0000000
Binary files a/spec/samples/expected/showcase_individual_00.png and /dev/null differ
diff --git a/spec/samples/expected/showcase_individual_01.png b/spec/samples/expected/showcase_individual_01.png
deleted file mode 100644
index 64e32e1..0000000
Binary files a/spec/samples/expected/showcase_individual_01.png and /dev/null differ
diff --git a/spec/samples/expected/showcase_individual_02.png b/spec/samples/expected/showcase_individual_02.png
deleted file mode 100644
index 11f1ef4..0000000
Binary files a/spec/samples/expected/showcase_individual_02.png and /dev/null differ
diff --git a/spec/samples/expected/showcase_individual_03.png b/spec/samples/expected/showcase_individual_03.png
deleted file mode 100644
index 08c7945..0000000
Binary files a/spec/samples/expected/showcase_individual_03.png and /dev/null differ
diff --git a/spec/samples/expected/text_00.png b/spec/samples/expected/text_00.png
deleted file mode 100644
index 2380744..0000000
Binary files a/spec/samples/expected/text_00.png and /dev/null differ
diff --git a/spec/samples/expected/text_01.png b/spec/samples/expected/text_01.png
deleted file mode 100644
index 58110f9..0000000
Binary files a/spec/samples/expected/text_01.png and /dev/null differ
diff --git a/spec/samples/expected/text_02.png b/spec/samples/expected/text_02.png
deleted file mode 100644
index 77dcd28..0000000
Binary files a/spec/samples/expected/text_02.png and /dev/null differ
diff --git a/spec/samples/expected/tgc_sample_00.png b/spec/samples/expected/tgc_sample_00.png
deleted file mode 100644
index 027d7aa..0000000
Binary files a/spec/samples/expected/tgc_sample_00.png and /dev/null differ
diff --git a/spec/samples/expected/units_00.png b/spec/samples/expected/units_00.png
deleted file mode 100644
index 3e733ac..0000000
Binary files a/spec/samples/expected/units_00.png and /dev/null differ
diff --git a/spec/samples/samples_regression_spec.rb b/spec/samples/samples_regression_spec.rb
index 31d2ad0..c831dac 100644
--- a/spec/samples/samples_regression_spec.rb
+++ b/spec/samples/samples_regression_spec.rb
@@ -35,24 +35,24 @@ describe 'Squib samples' do
%w(
autoscale_font/_autoscale_font.rb
basic.rb
- cairo_access.rb
colors/_gradients.rb
- config_text_markup.rb
- custom_config.rb
+ config/config_text_markup.rb
+ config/custom_config.rb
data/_csv.rb
data/_excel.rb
- embed_text.rb
hello_world.rb
+ images/_cairo_access.rb
images/_more_load_images.rb
+ proofs/_tgc_proofs.rb
ranges/_ranges.rb
saves/_hand.rb
saves/_portrait_landscape.rb
- saves/_saves.rb
saves/_save_pdf.rb
+ saves/_saves.rb
saves/_showcase.rb
shapes/_draw_shapes.rb
- text_options.rb
- tgc_proofs.rb
+ text/_embed_text.rb
+ text/_text_options.rb
units/_units.rb
).each do |sample|
it "has not changed for #{sample}", slow: true do
diff --git a/spec/sanity/sanity_test.rb b/spec/sanity/sanity_test.rb
index 3593e54..c724879 100644
--- a/spec/sanity/sanity_test.rb
+++ b/spec/sanity/sanity_test.rb
@@ -18,7 +18,7 @@ class SanityTest
end
def images
- Dir["#{samples_dir}/**/*_expected.png"].map do |expected|
+ Dir["#{samples_dir}/**/*_expected.{png,svg}"].map do |expected|
actual = [ File.dirname(expected),
"/_output/",
File.basename(expected).gsub('_expected', '')].join