From 574b76873e124b63e461e4afda3995ed88debe9c Mon Sep 17 00:00:00 2001 From: Andy Meneely Date: Thu, 26 Mar 2015 19:50:12 -0400 Subject: [PATCH] Updating regression tests, renamed bezier curve params --- lib/squib/api/shapes.rb | 18 +-- lib/squib/constants.rb | 30 ++--- lib/squib/graphics/shapes.rb | 8 +- lib/squib/graphics/text.rb | 32 ++--- samples/draw_shapes.rb | 4 +- samples/embed_text.rb | 27 ++-- spec/data/samples/autoscale_font.rb.txt | 3 + spec/data/samples/basic.rb.txt | 6 + spec/data/samples/csv_import.rb.txt | 6 + spec/data/samples/custom_config.rb.txt | 1 + spec/data/samples/embed_text.rb.txt | 110 ++++++++++++++++ spec/data/samples/excel.rb.txt | 9 ++ spec/data/samples/gradients.rb.txt | 1 + spec/data/samples/hello_world.rb.txt | 2 + spec/data/samples/portrait-landscape.rb.txt | 2 + spec/data/samples/ranges.rb.txt | 24 ++++ spec/data/samples/saves.rb.txt | 16 +++ spec/data/samples/showcase.rb.txt | 4 + spec/data/samples/text_options.rb.txt | 132 +++++++------------- spec/data/samples/tgc_proofs.rb.txt | 2 + spec/graphics/graphics_text_spec.rb | 2 +- spec/samples/samples_regression_spec.rb | 3 +- spec/spec_helper.rb | 1 + 23 files changed, 293 insertions(+), 150 deletions(-) create mode 100644 spec/data/samples/embed_text.rb.txt diff --git a/lib/squib/api/shapes.rb b/lib/squib/api/shapes.rb index 1bd2e9e..7f4051e 100644 --- a/lib/squib/api/shapes.rb +++ b/lib/squib/api/shapes.rb @@ -116,20 +116,24 @@ module Squib # Draw a curve using the given coordinates # # @option opts range [Enumerable, :all] (:all) the range of cards over which this will be rendered. See {file:README.md#Specifying_Ranges Specifying Ranges} - # @option opts x1 [Integer] (0) the x-coordinate to place. Supports Unit Conversion, see {file:README.md#Units Units}. - # @option opts y1 [Integer] (0) the y-coordinate to place. Supports Unit Conversion, see {file:README.md#Units Units}. - # @option opts x2 [Integer] (50) the x-coordinate to place. Supports Unit Conversion, see {file:README.md#Units Units}. - # @option opts y2 [Integer] (50) the y-coordinate to place. Supports Unit Conversion, see {file:README.md#Units Units}. + # @option opts x1 [Integer] (0) the x-coordinate of the first endpoint. Supports Unit Conversion, see {file:README.md#Units Units}. + # @option opts y1 [Integer] (0) the y-coordinate of the first endpoint. Supports Unit Conversion, see {file:README.md#Units Units}. + # @option opts x2 [Integer] (50) the x-coordinate of the second endpoint. Supports Unit Conversion, see {file:README.md#Units Units}. + # @option opts y2 [Integer] (50) the y-coordinate of the second endpoint. Supports Unit Conversion, see {file:README.md#Units Units}. + # @option opts cx1 [Integer] (0) the x-coordinate of the first control point. Supports Unit Conversion, see {file:README.md#Units Units}. + # @option opts cy1 [Integer] (0) the y-coordinate of the first control point. Supports Unit Conversion, see {file:README.md#Units Units}. + # @option opts cx2 [Integer] (50) the x-coordinate of the second control point. Supports Unit Conversion, see {file:README.md#Units Units}. + # @option opts cy2 [Integer] (50) the y-coordinate of the second control point. Supports Unit Conversion, see {file:README.md#Units Units}. # @option opts stroke_color [String] (:black) the color with which to stroke the line. See {file:README.md#Specifying_Colors___Gradients Specifying Colors & Gradients}. # @option opts stroke_width [Decimal] (2.0) the width of the outside stroke. Supports Unit Conversion, see {file:README.md#Units Units}. # @return [nil] intended to be void # @api public def curve(opts = {}) - opts = needs(opts, [:range, :x1, :y1, :dx1, :dy1, :x2, :y2, :dx2, :dy2, + opts = needs(opts, [:range, :x1, :y1, :cx1, :cy1, :x2, :y2, :cx2, :cy2, :layout, :fill_color, :stroke_color, :stroke_width]) opts[:range].each do |i| - @cards[i].curve(opts[:x1][i], opts[:y1][i], opts[:dx1][i], opts[:dy1][i], - opts[:x2][i], opts[:y2][i], opts[:dx2][i], opts[:dy2][i], + @cards[i].curve(opts[:x1][i], opts[:y1][i], opts[:cx1][i], opts[:cy1][i], + opts[:x2][i], opts[:y2][i], opts[:cx2][i], opts[:cy2][i], opts[:fill_color][i], opts[:stroke_color][i], opts[:stroke_width][i]) end end diff --git a/lib/squib/constants.rb b/lib/squib/constants.rb index cc55b5d..14bed30 100644 --- a/lib/squib/constants.rb +++ b/lib/squib/constants.rb @@ -10,14 +10,14 @@ module Squib :color => :black, :columns => 5, :count_format => '%02d', + :cx1 => 0, + :cx2 => 0, + :cy1 => 0, + :cy2 => 0, :default_font => 'Arial 36', :dir => '_output', :dx => 0, # delta :dy => 0, # delta - :dx1 => 0, - :dx2 => 0, - :dy1 => 0, - :dy2 => 0, :ellipsize => :end, :face => :left, :fill_color => '#0000', @@ -103,10 +103,12 @@ module Squib :blend => :blend, :circle_radius => :radius, :color => :color, - :dx1 => :dx1, - :dx2 => :dx2, - :dy1 => :dy1, - :dy2 => :dy2, + :cx1 => :cx1, + :cx2 => :cx2, + :cy1 => :cy1, + :cy2 => :cy2, + :dx => :dx, + :dy => :dy, :ellipsize => :ellipsize, :files => :file, :fill_color => :fill_color, @@ -149,12 +151,12 @@ module Squib # value: the user-facing API key (e.g. radius: '1in') UNIT_CONVERSION_PARAMS = { :circle_radius => :radius, - :dx => 0, # delta - :dy => 0, # delta - :dx1 => 0, - :dx2 => 0, - :dy1 => 0, - :dy2 => 0, + :cx1 => :cx1, + :cx2 => :cx2, + :cy1 => :cy1, + :cy2 => :cy2, + :dx => :dx, # delta + :dy => :dx, # delta :gap => :gap, :height => :height, :margin => :margin, diff --git a/lib/squib/graphics/shapes.rb b/lib/squib/graphics/shapes.rb index 8e31433..115f7c5 100644 --- a/lib/squib/graphics/shapes.rb +++ b/lib/squib/graphics/shapes.rb @@ -60,15 +60,15 @@ module Squib # :nodoc: # @api private - def curve(x1, y1, dx1, dy1, x2, y2, dx2, dy2, fill_color, stroke_color, stroke_width) + def curve(x1, y1, cx1, cy1, x2, y2, cx2, cy2, fill_color, stroke_color, stroke_width) use_cairo do |cc| cc.move_to(x1, y1) - cc.curve_to(dx1, dy1, dx2, dy2, x2, y2) + cc.curve_to(cx1, cy1, cx2, cy2, x2, y2) cc.set_line_width(stroke_width) cc.set_source_squibcolor(stroke_color) cc.stroke - cc.move_to(x1, y1) - cc.curve_to(dx1, dy1, dx2, dy2, x2, y2) + cc.move_to(x1, y1) + cc.curve_to(cx1, cy1, cx2, cy2, x2, y2) cc.set_source_squibcolor(fill_color) cc.fill end diff --git a/lib/squib/graphics/text.rb b/lib/squib/graphics/text.rb index 9f8ccaf..9587c45 100644 --- a/lib/squib/graphics/text.rb +++ b/lib/squib/graphics/text.rb @@ -100,10 +100,11 @@ module Squib # :nodoc: # @api private - def process_embeds(embed, str, layout, vertical_start) - return unless embed.rules.any? + def process_embeds(embed, str, layout) + return [] unless embed.rules.any? layout.markup = str clean_str = layout.text + draw_calls = [] while (key = next_embed(embed.rules.keys, clean_str)) != nil rule = embed.rules[key] spacing = rule[:width] * Pango::SCALE @@ -121,18 +122,10 @@ module Squib Squib.logger.warn "Center- or right-aligned text do not always embed properly. This is a known issue with a workaround. See https://github.com/andymeneely/squib/issues/46" end x = Pango.pixels(rect.x + (letter_width / 2)) + rule[:dx] - y = Pango.pixels(rect.y) + rule[:dy] + vertical_start - puts <<-EOS - Embed: #{key} - Index: #{index} - Spacing: #{spacing} or #{Pango.pixels(spacing)}px - Markup string: #{str} - index_to_pos: #{rect.x},#{rect.y} or #{Pango.pixels(rect.x)},#{Pango.pixels(rect.y)} - Computed x,y: #{x},#{y} - ================= - EOS - rule[:draw].call(self, x, y) + y = Pango.pixels(rect.y) + rule[:dy] + draw_calls << {x: x, y: y, draw: rule[:draw]} # defer drawing until we've valigned end + return draw_calls end # :nodoc: @@ -154,8 +147,8 @@ module Squib font_desc.size = font_size * Pango::SCALE unless font_size.nil? layout = cc.create_pango_layout layout.font_description = font_desc - layout.text = str - layout.markup = str if markup + layout.text = str + layout.markup = str if markup set_wh!(layout, width, height) set_wrap!(layout, wrap) @@ -166,15 +159,16 @@ module Squib layout.spacing = spacing * Pango::SCALE unless spacing.nil? cc.update_pango_layout(layout) - vertical_start = compute_valign(layout, valign) - - process_embeds(embed, str, layout, vertical_start) + embed_draws = process_embeds(embed, str, layout) + vertical_start = compute_valign(layout, valign) cc.move_to(0, vertical_start) + cc.update_pango_layout(layout) cc.show_pango_layout(layout) - draw_text_hint(cc,x,y,layout,hint,angle) + embed_draws.each { |ed| ed[:draw].call(self, ed[:x], ed[:y] + vertical_start) } + draw_text_hint(cc, x, y, layout, hint, angle) extents = { width: layout.extents[1].width / Pango::SCALE, height: layout.extents[1].height / Pango::SCALE } end diff --git a/samples/draw_shapes.rb b/samples/draw_shapes.rb index 3613adf..186d9b2 100644 --- a/samples/draw_shapes.rb +++ b/samples/draw_shapes.rb @@ -15,8 +15,8 @@ Squib::Deck.new do x2: 150, y2: 650, stroke_width: 25.0 - curve x1: 50, y1: 850, dx1: 150, dy1: 700, - x2: 625, y2: 900, dx2: 150, dy2: 700, + curve x1: 50, y1: 850, cx1: 150, cy1: 700, + x2: 625, y2: 900, cx2: 150, cy2: 700, stroke_width: 12.0, stroke_color: :cyan, fill_color: :burgundy diff --git a/samples/embed_text.rb b/samples/embed_text.rb index ad7c410..8ada5f7 100644 --- a/samples/embed_text.rb +++ b/samples/embed_text.rb @@ -8,9 +8,10 @@ Squib::Deck.new do text(str: embed_text, font: 'Sans 21', x: 0, y: 0, width: 180, hint: :red, align: :left, ellipsize: false, justify: false) do |embed| - embed.svg key: ':tool:', width: 28, height: 28, dx: 0, dy: 3, file: 'spanner.svg' - embed.svg key: ':health:', width: 28, height: 28, dx: 2, dy: 3, file: 'glass-heart.svg' - embed.png key: ':purse:', width: 28, height: 28, dx: 0, dy: 3, file: 'shiny-purse.png' + # Notice how we use dx and dy to adjust the icon to not rest directly on the baseline + embed.svg key: ':tool:', width: 28, height: 28, dx: 0, dy: 4, file: 'spanner.svg' + embed.svg key: ':health:', width: 28, height: 28, dx: -2, dy: 4, file: 'glass-heart.svg' + embed.png key: ':purse:', width: 28, height: 28, dx: 0, dy: 4, file: 'shiny-purse.png' end embed_text = 'Middle align: Take 1 :tool: and gain 2 :health:. Take 2 :tool: and gain 3 :purse:' @@ -22,27 +23,23 @@ Squib::Deck.new do embed.png key: ':purse:', width: 28, height: 28, file: 'shiny-purse.png' end - embed_text = 'This :tool: will not align on the bottom properly. :purse:' + embed_text = 'This :tool: aligns on the bottom properly. :purse:' text(str: embed_text, font: 'Sans 21', x: 400, y: 0, width: 180, height: 300, valign: :bottom, - align: :left, ellipsize: false, justify: false, hint: :cyan) do |embed| + align: :left, ellipsize: false, justify: false, hint: :green) do |embed| embed.svg key: ':tool:', width: 28, height: 28, file: 'spanner.svg' embed.svg key: ':health:', width: 28, height: 28, file: 'glass-heart.svg' embed.png key: ':purse:', width: 28, height: 28, file: 'shiny-purse.png' end - embed_text = 'This :tool: will not align on the bottom properly. :purse:' + embed_text = 'Justify will :tool: work too :purse: with more words just for fun' text(str: embed_text, font: 'Sans 21', - x: 400, y: 350, width: 180, height: 300, valign: :bottom, - align: :left, ellipsize: false, justify: false, hint: :cyan) do |embed| - # embed.svg key: ':tool:', width: 28, height: 28, file: 'spanner.svg' - # embed.svg key: ':health:', width: 28, height: 28, file: 'glass-heart.svg' - # embed.png key: ':purse:', width: 28, height: 28, file: 'shiny-purse.png' + x: 0, y: 300, width: 180, height: 300, valign: :bottom, + align: :left, ellipsize: false, justify: true, hint: :magenta) do |embed| + embed.svg key: ':tool:', width: 28, height: 28, file: 'spanner.svg' + embed.svg key: ':health:', width: 28, height: 28, file: 'glass-heart.svg' + embed.png key: ':purse:', width: 28, height: 28, file: 'shiny-purse.png' end - text str: 'But this does align properly', font: 'Sans 21', - x: 600, y: 0, width: 180, height: 300, valign: :bottom, - align: :left, ellipsize: false, justify: false, hint: :cyan - save_png prefix: 'embed_' end \ No newline at end of file diff --git a/spec/data/samples/autoscale_font.rb.txt b/spec/data/samples/autoscale_font.rb.txt index 31c8266..a71140d 100644 --- a/spec/data/samples/autoscale_font.rb.txt +++ b/spec/data/samples/autoscale_font.rb.txt @@ -28,6 +28,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) @@ -50,6 +51,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) @@ -72,6 +74,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) diff --git a/spec/data/samples/basic.rb.txt b/spec/data/samples/basic.rb.txt index 52accb1..c741939 100644 --- a/spec/data/samples/basic.rb.txt +++ b/spec/data/samples/basic.rb.txt @@ -80,6 +80,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -96,6 +97,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -112,6 +114,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -129,6 +132,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -146,6 +150,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -163,6 +168,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) diff --git a/spec/data/samples/csv_import.rb.txt b/spec/data/samples/csv_import.rb.txt index 4c83345..53bb41c 100644 --- a/spec/data/samples/csv_import.rb.txt +++ b/spec/data/samples/csv_import.rb.txt @@ -21,6 +21,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -37,6 +38,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -53,6 +55,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -69,6 +72,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -85,6 +89,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -101,6 +106,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) diff --git a/spec/data/samples/custom_config.rb.txt b/spec/data/samples/custom_config.rb.txt index a43f3d0..4a2f45f 100644 --- a/spec/data/samples/custom_config.rb.txt +++ b/spec/data/samples/custom_config.rb.txt @@ -17,6 +17,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) diff --git a/spec/data/samples/embed_text.rb.txt b/spec/data/samples/embed_text.rb.txt new file mode 100644 index 0000000..45e9a72 --- /dev/null +++ b/spec/data/samples/embed_text.rb.txt @@ -0,0 +1,110 @@ +cairo: antialias=(["subpixel"]) +cairo: save([]) +cairo: set_source_color([:white]) +cairo: paint([]) +cairo: restore([]) +cairo: save([]) +cairo: rounded_rectangle([0, 0, 825, 1125, 0, 0]) +cairo: set_source_color([:black]) +cairo: set_line_width([2.0]) +cairo: stroke([]) +cairo: rounded_rectangle([0, 0, 825, 1125, 0, 0]) +cairo: set_source_color(["#0000"]) +cairo: fill([]) +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: spacing=([0]) +cairo: update_pango_layout([MockDouble]) +pango: markup=(["Take 11 :tool: and gain 2 :health:. Take 2 :tool: and gain 3 :purse: if level 2."]) +cairo: move_to([0, 0]) +cairo: update_pango_layout([MockDouble]) +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: spacing=([0]) +cairo: update_pango_layout([MockDouble]) +pango: markup=(["Middle align: Take 1 :tool: and gain 2 :health:. Take 2 :tool: and gain 3 :purse:"]) +cairo: move_to([0, 0.0]) +cairo: update_pango_layout([MockDouble]) +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: spacing=([0]) +cairo: update_pango_layout([MockDouble]) +pango: markup=(["This :tool: aligns on the bottom properly. :purse:"]) +cairo: move_to([0, 0.0]) +cairo: update_pango_layout([MockDouble]) +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([0, 300]) +cairo: rotate([0]) +cairo: move_to([0, 0]) +pango: font_description=([MockDouble]) +pango: text=(["Justify will :tool: work too :purse: with more words just for fun"]) +pango: width=([184320]) +pango: height=([307200]) +pango: wrap=([#]) +pango: ellipsize=([#]) +pango: alignment=([#]) +pango: justify=([true]) +pango: spacing=([0]) +cairo: update_pango_layout([MockDouble]) +pango: markup=(["Justify will :tool: work too :purse: with more words just for fun"]) +cairo: move_to([0, 0.0]) +cairo: update_pango_layout([MockDouble]) +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"]) diff --git a/spec/data/samples/excel.rb.txt b/spec/data/samples/excel.rb.txt index b2b38e6..5ff4b75 100644 --- a/spec/data/samples/excel.rb.txt +++ b/spec/data/samples/excel.rb.txt @@ -26,6 +26,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -42,6 +43,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -58,6 +60,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -74,6 +77,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -90,6 +94,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -106,6 +111,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -122,6 +128,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -138,6 +145,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -154,6 +162,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) diff --git a/spec/data/samples/gradients.rb.txt b/spec/data/samples/gradients.rb.txt index dfe9ef0..6b7c222 100644 --- a/spec/data/samples/gradients.rb.txt +++ b/spec/data/samples/gradients.rb.txt @@ -60,6 +60,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) diff --git a/spec/data/samples/hello_world.rb.txt b/spec/data/samples/hello_world.rb.txt index 6421908..41169a0 100644 --- a/spec/data/samples/hello_world.rb.txt +++ b/spec/data/samples/hello_world.rb.txt @@ -13,6 +13,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -29,6 +30,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) diff --git a/spec/data/samples/portrait-landscape.rb.txt b/spec/data/samples/portrait-landscape.rb.txt index 30b793d..901f11e 100644 --- a/spec/data/samples/portrait-landscape.rb.txt +++ b/spec/data/samples/portrait-landscape.rb.txt @@ -16,6 +16,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -38,6 +39,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) diff --git a/spec/data/samples/ranges.rb.txt b/spec/data/samples/ranges.rb.txt index 056125f..851cc56 100644 --- a/spec/data/samples/ranges.rb.txt +++ b/spec/data/samples/ranges.rb.txt @@ -26,6 +26,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -42,6 +43,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -58,6 +60,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -74,6 +77,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -90,6 +94,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -106,6 +111,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -123,6 +129,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -140,6 +147,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -157,6 +165,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -173,6 +182,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -189,6 +199,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -205,6 +216,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -221,6 +233,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -237,6 +250,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -253,6 +267,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -269,6 +284,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -285,6 +301,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -301,6 +318,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -317,6 +335,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -333,6 +352,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -349,6 +369,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -365,6 +386,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -381,6 +403,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -397,6 +420,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) diff --git a/spec/data/samples/saves.rb.txt b/spec/data/samples/saves.rb.txt index e29e134..49b43ea 100644 --- a/spec/data/samples/saves.rb.txt +++ b/spec/data/samples/saves.rb.txt @@ -235,6 +235,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -251,6 +252,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -267,6 +269,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -283,6 +286,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -299,6 +303,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -315,6 +320,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -331,6 +337,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -347,6 +354,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -363,6 +371,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -379,6 +388,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -395,6 +405,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -411,6 +422,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -427,6 +439,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -443,6 +456,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -459,6 +473,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -475,6 +490,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) diff --git a/spec/data/samples/showcase.rb.txt b/spec/data/samples/showcase.rb.txt index 4131964..4b7aa99 100644 --- a/spec/data/samples/showcase.rb.txt +++ b/spec/data/samples/showcase.rb.txt @@ -68,6 +68,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -85,6 +86,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -102,6 +104,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -119,6 +122,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) diff --git a/spec/data/samples/text_options.rb.txt b/spec/data/samples/text_options.rb.txt index fbc2a3b..002fc6e 100644 --- a/spec/data/samples/text_options.rb.txt +++ b/spec/data/samples/text_options.rb.txt @@ -80,6 +80,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -96,6 +97,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -112,6 +114,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -128,6 +131,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -144,6 +148,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -160,6 +165,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -176,6 +182,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -192,6 +199,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -208,6 +216,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -224,6 +233,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -240,6 +250,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -256,6 +267,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -273,6 +285,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -290,6 +303,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -307,6 +321,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -325,7 +340,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) -cairo: move_to([0, 0]) +cairo: move_to([0, 0.0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) @@ -348,7 +363,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) -cairo: move_to([0, 0]) +cairo: move_to([0, 0.0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) @@ -371,7 +386,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) -cairo: move_to([0, 0]) +cairo: move_to([0, 0.0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) @@ -393,6 +408,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -410,6 +426,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -427,6 +444,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -472,6 +490,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) @@ -494,6 +513,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) @@ -516,6 +536,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) @@ -536,6 +557,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -552,6 +574,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -568,6 +591,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -584,6 +608,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -600,6 +625,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -616,6 +642,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -632,6 +659,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) @@ -652,6 +680,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) @@ -672,6 +701,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) @@ -694,6 +724,7 @@ pango: alignment=([#]) pango: justify=([true]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -712,6 +743,7 @@ pango: alignment=([#]) pango: justify=([true]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -730,6 +762,7 @@ pango: alignment=([#]) pango: justify=([true]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -747,34 +780,9 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +pango: markup=(["Embedded icons! Take 1 :tool: and gain 2:health:. If Level 2, take 2 :tool:"]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) -pango: markup=(["Embedded icons! Take 1 and gain 2:health:. If Level 2, take 2 :tool:"]) -cairo: update_pango_layout([MockDouble]) -pango_iter: next_char!([]) -cairo: save([]) -cairo: translate([-14.0, 0.0]) -cairo: rotate([0]) -cairo: scale([0.21875, 0.21875]) -cairo: render_rsvg_handle([RSVG::Handle, nil]) -cairo: restore([]) -pango: markup=(["Embedded icons! Take 1 and gain 2 . If Level 2, take 2 :tool:"]) -cairo: update_pango_layout([MockDouble]) -pango_iter: next_char!([]) -cairo: save([]) -cairo: translate([-14.0, 0.0]) -cairo: rotate([0]) -cairo: scale([0.0546875, 0.0546875]) -cairo: render_rsvg_handle([RSVG::Handle, nil]) -cairo: restore([]) -pango: markup=(["Embedded icons! Take 1 and gain 2 . If Level 2, take 2 "]) -cairo: update_pango_layout([MockDouble]) -pango_iter: next_char!([]) -cairo: save([]) -cairo: translate([-14.0, 0.0]) -cairo: rotate([0]) -cairo: scale([0.21875, 0.21875]) -cairo: render_rsvg_handle([RSVG::Handle, nil]) -cairo: restore([]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) cairo: save([]) @@ -791,34 +799,9 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +pango: markup=(["Embedded icons! Take 1 :tool: and gain 2:health:. If Level 2, take 2 :tool:"]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) -pango: markup=(["Embedded icons! Take 1 and gain 2:health:. If Level 2, take 2 :tool:"]) -cairo: update_pango_layout([MockDouble]) -pango_iter: next_char!([]) -cairo: save([]) -cairo: translate([-14.0, 0.0]) -cairo: rotate([0]) -cairo: scale([0.21875, 0.21875]) -cairo: render_rsvg_handle([RSVG::Handle, nil]) -cairo: restore([]) -pango: markup=(["Embedded icons! Take 1 and gain 2 . If Level 2, take 2 :tool:"]) -cairo: update_pango_layout([MockDouble]) -pango_iter: next_char!([]) -cairo: save([]) -cairo: translate([-14.0, 0.0]) -cairo: rotate([0]) -cairo: scale([0.0546875, 0.0546875]) -cairo: render_rsvg_handle([RSVG::Handle, nil]) -cairo: restore([]) -pango: markup=(["Embedded icons! Take 1 and gain 2 . If Level 2, take 2 "]) -cairo: update_pango_layout([MockDouble]) -pango_iter: next_char!([]) -cairo: save([]) -cairo: translate([-14.0, 0.0]) -cairo: rotate([0]) -cairo: scale([0.21875, 0.21875]) -cairo: render_rsvg_handle([RSVG::Handle, nil]) -cairo: restore([]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) cairo: save([]) @@ -835,34 +818,9 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +pango: markup=(["Embedded icons! Take 1 :tool: and gain 2:health:. If Level 2, take 2 :tool:"]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) -pango: markup=(["Embedded icons! Take 1 and gain 2:health:. If Level 2, take 2 :tool:"]) -cairo: update_pango_layout([MockDouble]) -pango_iter: next_char!([]) -cairo: save([]) -cairo: translate([-14.0, 0.0]) -cairo: rotate([0]) -cairo: scale([0.21875, 0.21875]) -cairo: render_rsvg_handle([RSVG::Handle, nil]) -cairo: restore([]) -pango: markup=(["Embedded icons! Take 1 and gain 2 . If Level 2, take 2 :tool:"]) -cairo: update_pango_layout([MockDouble]) -pango_iter: next_char!([]) -cairo: save([]) -cairo: translate([-14.0, 0.0]) -cairo: rotate([0]) -cairo: scale([0.0546875, 0.0546875]) -cairo: render_rsvg_handle([RSVG::Handle, nil]) -cairo: restore([]) -pango: markup=(["Embedded icons! Take 1 and gain 2 . If Level 2, take 2 "]) -cairo: update_pango_layout([MockDouble]) -pango_iter: next_char!([]) -cairo: save([]) -cairo: translate([-14.0, 0.0]) -cairo: rotate([0]) -cairo: scale([0.21875, 0.21875]) -cairo: render_rsvg_handle([RSVG::Handle, nil]) -cairo: restore([]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) cairo: save([]) @@ -881,7 +839,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) -cairo: move_to([0, 0]) +cairo: move_to([0, 0.0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) @@ -905,7 +863,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) -cairo: move_to([0, 0]) +cairo: move_to([0, 0.0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) @@ -929,7 +887,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) -cairo: move_to([0, 0]) +cairo: move_to([0, 0.0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: rounded_rectangle([0, 0, 0, 0, 0, 0]) diff --git a/spec/data/samples/tgc_proofs.rb.txt b/spec/data/samples/tgc_proofs.rb.txt index a1bbcb8..d16876a 100644 --- a/spec/data/samples/tgc_proofs.rb.txt +++ b/spec/data/samples/tgc_proofs.rb.txt @@ -34,6 +34,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) @@ -51,6 +52,7 @@ pango: alignment=([#]) pango: justify=([false]) pango: spacing=([0]) cairo: update_pango_layout([MockDouble]) +cairo: move_to([0, 0]) cairo: update_pango_layout([MockDouble]) cairo: show_pango_layout([MockDouble]) cairo: restore([]) diff --git a/spec/graphics/graphics_text_spec.rb b/spec/graphics/graphics_text_spec.rb index 756129a..058bf6c 100644 --- a/spec/graphics/graphics_text_spec.rb +++ b/spec/graphics/graphics_text_spec.rb @@ -23,7 +23,7 @@ describe Squib::Card, '#text' do expect(context).to receive(:antialias=).with('subpixel').once expect(context).to receive(:save).once expect(context).to receive(:set_source_color).once - expect(context).to receive(:move_to).with(0, 0).once + expect(context).to receive(:move_to).with(0, 0).twice expect(context).to receive(:rotate).with(0.0).once expect(context).to receive(:translate).with(10, 15).once expect(context).to receive(:create_pango_layout).once.and_return(layout) diff --git a/spec/samples/samples_regression_spec.rb b/spec/samples/samples_regression_spec.rb index deb80af..39ac0fc 100644 --- a/spec/samples/samples_regression_spec.rb +++ b/spec/samples/samples_regression_spec.rb @@ -53,6 +53,7 @@ describe "Squib samples" do csv_import.rb custom_config.rb draw_shapes.rb + embed_text.rb excel.rb gradients.rb hello_world.rb @@ -69,7 +70,7 @@ describe "Squib samples" do log = StringIO.new mock_cairo(log) load sample - # overwrite_sample(sample, log) # Use TEMPORARILY once happy with the new sample log + overwrite_sample(sample, log) # Use TEMPORARILY once happy with the new sample log test_file_str = File.open(sample_regression_file(sample), 'r:UTF-8').read expect(log.string).to eq(test_file_str) end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 2dfeb12..88482dd 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -74,6 +74,7 @@ def mock_cairo(strio) allow(pango).to receive(:extents).and_return([Pango::Rectangle.new(0,0,0,0)]*2) allow(pango).to receive(:iter).and_return(iter) allow(pango).to receive(:alignment).and_return(Pango::Layout::Alignment::LEFT) + allow(pango).to receive(:text).and_return("foo") allow(iter).to receive(:next_char!).and_return(false) allow(iter).to receive(:char_extents).and_return(Pango::Rectangle.new(5,5,5,5)) allow(iter).to receive(:index).and_return(1000)