Browse Source

Regression testing: cairo mock object stores graphics calls

So the idea behind this is maintain an "expected value" for the sample runs. We store the graphics calls and their arguments as a readable text file. Any change in the samples will break this, but the idea is to make sure this doesn't get broken unexpectedly.

Rearranged the data files in specs
dev
Andy Meneely 11 years ago
parent
commit
99ac612b8a
  1. 2
      spec/commands/new_spec.rb
  2. 0
      spec/data/layouts/easy-circular-extends.yml
  3. 0
      spec/data/layouts/hard-circular-extends.yml
  4. 0
      spec/data/layouts/multi-extends-single-entry.yml
  5. 0
      spec/data/layouts/multi-level-extends.yml
  6. 0
      spec/data/layouts/multifile-a.yml
  7. 0
      spec/data/layouts/multifile-b.yml
  8. 0
      spec/data/layouts/multifile-extends-a.yml
  9. 0
      spec/data/layouts/multifile-extends-b.yml
  10. 0
      spec/data/layouts/no-extends.yml
  11. 0
      spec/data/layouts/pre-extends.yml
  12. 0
      spec/data/layouts/self-circular-extends.yml
  13. 0
      spec/data/layouts/single-extends.yml
  14. 0
      spec/data/layouts/single-level-multi-extends.yml
  15. 79
      spec/data/samples/autoscale_font.rb.txt
  16. 204
      spec/data/samples/basic.rb.txt
  17. 14
      spec/data/samples/cairo_access.rb.txt
  18. 124
      spec/data/samples/colors.rb.txt
  19. 45
      spec/data/samples/custom_config.rb.txt
  20. 35
      spec/data/samples/draw_shapes.rb.txt
  21. 166
      spec/data/samples/excel.rb.txt
  22. 35
      spec/data/samples/hello_world.rb.txt
  23. 197
      spec/data/samples/layouts.rb.txt
  24. 104
      spec/data/samples/load_images.rb.txt
  25. 49
      spec/data/samples/portrait-landscape.rb.txt
  26. 424
      spec/data/samples/ranges.rb.txt
  27. 547
      spec/data/samples/save_pdf.rb.txt
  28. 820
      spec/data/samples/text_options.rb.txt
  29. 81
      spec/data/samples/tgc_proofs.rb.txt
  30. 40
      spec/data/samples/units.rb.txt
  31. 26
      spec/deck_spec.rb
  32. 13
      spec/method_log_proxy.rb
  33. 44
      spec/samples/samples_regression_spec.rb
  34. 20
      spec/samples_run_spec.rb
  35. 47
      spec/spec_helper.rb

2
spec/commands/new_spec.rb

@ -26,7 +26,7 @@ describe Squib::Commands::New do
end
it 'creates a new template on an empty directory' do
Dir.mkdir('foo')
FileUtils.mkdir_p('foo')
@cmd.process(['foo'])
expect(File.exists?('foo/deck.rb')).to be true
end

0
spec/data/easy-circular-extends.yml → spec/data/layouts/easy-circular-extends.yml

0
spec/data/hard-circular-extends.yml → spec/data/layouts/hard-circular-extends.yml

0
spec/data/multi-extends-single-entry.yml → spec/data/layouts/multi-extends-single-entry.yml

0
spec/data/multi-level-extends.yml → spec/data/layouts/multi-level-extends.yml

0
spec/data/multifile-a.yml → spec/data/layouts/multifile-a.yml

0
spec/data/multifile-b.yml → spec/data/layouts/multifile-b.yml

0
spec/data/multifile-extends-a.yml → spec/data/layouts/multifile-extends-a.yml

0
spec/data/multifile-extends-b.yml → spec/data/layouts/multifile-extends-b.yml

0
spec/data/no-extends.yml → spec/data/layouts/no-extends.yml

0
spec/data/pre-extends.yml → spec/data/layouts/pre-extends.yml

0
spec/data/self-circular-extends.yml → spec/data/layouts/self-circular-extends.yml

0
spec/data/single-extends.yml → spec/data/layouts/single-extends.yml

0
spec/data/single-level-multi-extends.yml → spec/data/layouts/single-level-multi-extends.yml

79
spec/data/samples/autoscale_font.rb.txt

@ -0,0 +1,79 @@
=== autoscale_font.rb ===
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 400])
cairo: rotate([0])
cairo: translate([-65, -400])
cairo: move_to([65, 400])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["ShortBig"])
pango: width=([716800])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([65, 400, 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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 400])
cairo: rotate([0])
cairo: translate([-65, -400])
cairo: move_to([65, 400])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Medium_Length_Name"])
pango: width=([716800])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([65, 400, 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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 400])
cairo: rotate([0])
cairo: translate([-65, -400])
cairo: move_to([65, 400])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Super_Duper_Long_Name"])
pango: width=([716800])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([65, 400, 0, 0, 0, 0])
cairo: set_source_color([:red])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])

204
spec/data/samples/basic.rb.txt

@ -0,0 +1,204 @@
=== basic.rb ===
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Thief"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Grifter"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Mastermind"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([75, 85])
cairo: rotate([0])
cairo: translate([-75, -85])
cairo: move_to([75, 85])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["1"])
pango: width=([131072])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([75, 85])
cairo: rotate([0])
cairo: translate([-75, -85])
cairo: move_to([75, 85])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["2"])
pango: width=([131072])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([75, 85])
cairo: rotate([0])
cairo: translate([-75, -85])
cairo: move_to([75, 85])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["3"])
pango: width=([131072])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: translate([620, 75])
cairo: rotate([0])
cairo: translate([-620, -75])
cairo: set_source([#<Cairo::ImageSurface:>, 620, 75])
cairo: paint([1.0])
cairo: restore([])
cairo: save([])
cairo: translate([620, 75])
cairo: rotate([0])
cairo: translate([-620, -75])
cairo: set_source([#<Cairo::ImageSurface:>, 620, 75])
cairo: paint([1.0])
cairo: restore([])
cairo: scale([1.0, 1.0])
cairo: render_rsvg_handle([#<RSVG::Handle >, nil])
cairo: save([])
cairo: translate([620, 218])
cairo: rotate([0])
cairo: translate([-620, -218])
cairo: set_source([#<Cairo::ImageSurface:>, 620, 218])
cairo: paint([1.0])
cairo: restore([])
cairo: scale([1.0, 1.0])
cairo: render_rsvg_handle([#<RSVG::Handle >, nil])
cairo: save([])
cairo: translate([620, 218])
cairo: rotate([0])
cairo: translate([-620, -218])
cairo: set_source([#<Cairo::ImageSurface:>, 620, 218])
cairo: paint([1.0])
cairo: restore([])

14
spec/data/samples/cairo_access.rb.txt

@ -0,0 +1,14 @@
=== cairo_access.rb ===
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: circle([50, 50, 50])
cairo: set_source_color([:red])
cairo: fill([])
cairo: restore([])

124
spec/data/samples/colors.rb.txt

@ -0,0 +1,124 @@
=== colors.rb ===
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=0.0, @blue=0.0>])
cairo: translate([50, 50])
cairo: rotate([0])
cairo: translate([-50, -50])
cairo: move_to([50, 50])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["3-hex"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=0.0, @blue=0.0>])
cairo: translate([50, 100])
cairo: rotate([0])
cairo: translate([-50, -100])
cairo: move_to([50, 100])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["3-hex (alpha)"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=0.0, @blue=0.0>])
cairo: translate([50, 150])
cairo: rotate([0])
cairo: translate([-50, -150])
cairo: move_to([50, 150])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["6-hex"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.6, @red=1.0, @green=0.0, @blue=0.0>])
cairo: translate([50, 200])
cairo: rotate([0])
cairo: translate([-50, -200])
cairo: move_to([50, 200])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["8-hex(alpha) *"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=0.0, @blue=0.0>])
cairo: translate([50, 250])
cairo: rotate([0])
cairo: translate([-50, -250])
cairo: move_to([50, 250])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["12-hex"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.6, @red=1.0, @green=0.0, @blue=0.0>])
cairo: translate([50, 300])
cairo: rotate([0])
cairo: translate([-50, -300])
cairo: move_to([50, 300])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["12-hex (alpha)"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.8, @green=0.333333333333333, @blue=0.0>])
cairo: translate([50, 350])
cairo: rotate([0])
cairo: translate([-50, -350])
cairo: move_to([50, 350])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Symbols of constants too"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])

45
spec/data/samples/custom_config.rb.txt

@ -0,0 +1,45 @@
=== custom_config.rb ===
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.8, @green=0.8, @blue=0.8>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([0, 78])
cairo: rotate([0])
cairo: translate([0, -78])
cairo: move_to([0, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["The Title"])
pango: width=([844800])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([0, 78, 0, 0, 0, 0])
cairo: set_source_color(["#FF0000"])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])
cairo: save([])
cairo: translate([620, 75])
cairo: rotate([0])
cairo: translate([-620, -75])
cairo: set_source([#<Cairo::ImageSurface:>, 620, 75])
cairo: paint([1.0])
cairo: restore([])
cairo: scale([1.0, 1.0])
cairo: render_rsvg_handle([#<RSVG::Handle >, nil])
cairo: save([])
cairo: translate([620, 218])
cairo: rotate([0])
cairo: translate([-620, -218])
cairo: set_source([#<Cairo::ImageSurface:>, 620, 218])
cairo: paint([1.0])
cairo: restore([])
cairo: set_source([#<Cairo::ImageSurface:>, 75, 75])
cairo: paint([])

35
spec/data/samples/draw_shapes.rb.txt

@ -0,0 +1,35 @@
=== draw_shapes.rb ===
cairo: save([])
cairo: rounded_rectangle([300, 300, 400, 400, 0, 0])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([50.0])
cairo: stroke([])
cairo: rounded_rectangle([300, 300, 400, 400, 0, 0])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=1.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: circle([600, 600, 75])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=1.0, @blue=0.0>])
cairo: set_line_width([8.0])
cairo: stroke([])
cairo: circle([600, 600, 75])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: triangle([50, 50, 150, 150, 75, 250])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: triangle([50, 50, 150, 150, 75, 250])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: move_to([50, 550])
cairo: line_to([150, 650])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([25.0])
cairo: stroke([])
cairo: restore([])

166
spec/data/samples/excel.rb.txt

@ -0,0 +1,166 @@
=== excel.rb ===
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: translate([-250, -55])
cairo: move_to([250, 55])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Thief"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: translate([-250, -55])
cairo: move_to([250, 55])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Grifter"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: translate([-250, -55])
cairo: move_to([250, 55])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Mastermind"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 65])
cairo: rotate([0])
cairo: translate([-65, -65])
cairo: move_to([65, 65])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["1"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 65])
cairo: rotate([0])
cairo: translate([-65, -65])
cairo: move_to([65, 65])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["2"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 65])
cairo: rotate([0])
cairo: translate([-65, -65])
cairo: move_to([65, 65])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["3"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 600])
cairo: rotate([0])
cairo: translate([-65, -600])
cairo: move_to([65, 600])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["A clever pickpocket on the street."])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 600])
cairo: rotate([0])
cairo: translate([-65, -600])
cairo: move_to([65, 600])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["A sophisticated con artist who makes you run home for your wallet"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 600])
cairo: rotate([0])
cairo: translate([-65, -600])
cairo: move_to([65, 600])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["A brilliant mind devoted to a life of crime."])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])

35
spec/data/samples/hello_world.rb.txt

@ -0,0 +1,35 @@
=== hello_world.rb ===
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: translate([0, 0])
cairo: move_to([0, 0])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Hello"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: translate([0, 0])
cairo: move_to([0, 0])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["World!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])

197
spec/data/samples/layouts.rb.txt

@ -0,0 +1,197 @@
=== layouts.rb ===
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: circle([50, 50, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: circle([50, 50, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([125, 50])
cairo: rotate([0])
cairo: translate([-125, -50])
cairo: move_to([125, 50])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["The Title"])
pango: width=([640000])
pango: height=([102400])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: move_to([125, 50])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=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([#<Cairo::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([#<Cairo::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([#<Cairo::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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([250, 600, 300, 200, 32, 32])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
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::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
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::FontDescription own=true>])
pango: text=(["Extends!"])
pango: width=([266240.0])
pango: height=([163840.0])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([150, 150])
cairo: rotate([0])
cairo: translate([-150, -150])
cairo: move_to([150, 150])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["subtitle"])
pango: width=([588800])
pango: height=([61440])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: move_to([150, 150])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([125, 50])
cairo: rotate([0])
cairo: translate([-125, -50])
cairo: move_to([125, 50])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["The Title"])
pango: width=([640000])
pango: height=([102400])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: move_to([125, 50])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([150, 150])
cairo: rotate([0])
cairo: translate([-150, -150])
cairo: move_to([150, 150])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["The Subtitle"])
pango: width=([588800])
pango: height=([61440])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: move_to([150, 150])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([150, 500.0])
cairo: rotate([0])
cairo: translate([-150, -500.0])
cairo: move_to([150, 500.0])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["The Description"])
pango: width=([588800])
pango: height=([61440])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: move_to([150, 500.0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])

104
spec/data/samples/load_images.rb.txt

@ -0,0 +1,104 @@
=== load_images.rb ===
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.043137254901960784, @green=0.48627450980392156, @blue=0.5568627450980392>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: translate([620, 75])
cairo: rotate([0])
cairo: translate([-620, -75])
cairo: set_source([#<Cairo::ImageSurface:>, 620, 75])
cairo: paint([1.0])
cairo: restore([])
cairo: scale([1.0, 1.0])
cairo: render_rsvg_handle([#<RSVG::Handle >, nil])
cairo: save([])
cairo: translate([620, 218])
cairo: rotate([0])
cairo: translate([-620, -218])
cairo: set_source([#<Cairo::ImageSurface:>, 620, 218])
cairo: paint([1.0])
cairo: restore([])
cairo: scale([1.953125, 1.953125])
cairo: render_rsvg_handle([#<RSVG::Handle >, nil])
cairo: save([])
cairo: translate([50, 50])
cairo: rotate([0])
cairo: translate([-50, -50])
cairo: set_source([#<Cairo::ImageSurface:>, 50, 50])
cairo: paint([1.0])
cairo: restore([])
cairo: scale([0.5859375, 0.5859375])
cairo: render_rsvg_handle([#<RSVG::Handle >, "#backdrop"])
cairo: save([])
cairo: translate([50, 350])
cairo: rotate([0])
cairo: translate([-50, -350])
cairo: set_source([#<Cairo::ImageSurface:>, 50, 350])
cairo: paint([1.0])
cairo: restore([])
cairo: scale([0.9765625, 0.9765625])
cairo: render_rsvg_handle([#<RSVG::Handle >, "#backdrop"])
cairo: save([])
cairo: translate([50, 450])
cairo: rotate([0])
cairo: translate([-50, -450])
cairo: set_source([#<Cairo::ImageSurface:>, 50, 450])
cairo: paint([1.0])
cairo: restore([])
cairo: scale([0.8021390374331551, 0.8032128514056225])
cairo: render_rsvg_handle([#<RSVG::Handle >, "#thing"])
cairo: save([])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: translate([0, 0])
cairo: set_source([#<Cairo::ImageSurface:>, 0, 0])
cairo: paint([1.0])
cairo: restore([])
cairo: save([])
cairo: translate([50, 700])
cairo: rotate([0])
cairo: translate([-50, -700])
cairo: set_source([#<Cairo::ImageSurface:>, 50, 700])
cairo: paint([1.0])
cairo: restore([])
cairo: save([])
cairo: translate([70, 750])
cairo: rotate([0])
cairo: translate([-70, -750])
cairo: set_source([#<Cairo::ImageSurface:>, 70, 750])
cairo: operator=([:color_burn])
cairo: paint([0.75])
cairo: restore([])
cairo: save([])
cairo: translate([300, 700])
cairo: rotate([0.0])
cairo: translate([-300, -700])
cairo: set_source([#<Cairo::ImageSurface:>, 300, 700])
cairo: paint([1.0])
cairo: restore([])
cairo: save([])
cairo: translate([300, 800])
cairo: rotate([0.7853981633974483])
cairo: translate([-300, -800])
cairo: set_source([#<Cairo::ImageSurface:>, 300, 800])
cairo: paint([1.0])
cairo: restore([])
cairo: scale([1.0, 1.0])
cairo: render_rsvg_handle([#<RSVG::Handle >, nil])
cairo: save([])
cairo: translate([300, 900])
cairo: rotate([1.4707963267948965])
cairo: translate([-300, -900])
cairo: set_source([#<Cairo::ImageSurface:>, 300, 900])
cairo: paint([1.0])
cairo: restore([])

49
spec/data/samples/portrait-landscape.rb.txt

@ -0,0 +1,49 @@
=== portrait-landscape.rb ===
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.6666666666666666, @green=0.6666666666666666, @blue=0.6666666666666666>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: translate([0, 0])
cairo: move_to([0, 0])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["This is portrait"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.6666666666666666, @green=0.6666666666666666, @blue=0.6666666666666666>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: translate([0, 0])
cairo: move_to([0, 0])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["This is landscape"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: translate([412.5, 562.5])
cairo: rotate([1.5707963267948966])
cairo: translate([-562.5, -412.5])
cairo: set_source([#<Cairo::ImageSurface:>])
cairo: paint([])
surface: write_to_png(["_output/landscape_0.png"])

424
spec/data/samples/ranges.rb.txt

@ -0,0 +1,424 @@
=== ranges.rb ===
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: translate([-250, -55])
cairo: move_to([250, 55])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Thief"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: translate([-250, -55])
cairo: move_to([250, 55])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Grifter"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: translate([-250, -55])
cairo: move_to([250, 55])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Mastermind"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 40])
cairo: rotate([0])
cairo: translate([-65, -40])
cairo: move_to([65, 40])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["1"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 40])
cairo: rotate([0])
cairo: translate([-65, -40])
cairo: move_to([65, 40])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["2"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 40])
cairo: rotate([0])
cairo: translate([-65, -40])
cairo: move_to([65, 40])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["3"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([40, 128])
cairo: rotate([0])
cairo: translate([-40, -128])
cairo: move_to([40, 128])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Thug"])
pango: width=([102400])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([40, 128])
cairo: rotate([0])
cairo: translate([-40, -128])
cairo: move_to([40, 128])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Thinker"])
pango: width=([102400])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([40, 128])
cairo: rotate([0])
cairo: translate([-40, -128])
cairo: move_to([40, 128])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Thinker"])
pango: width=([102400])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([25, 200])
cairo: rotate([0])
cairo: translate([-25, -200])
cairo: move_to([25, 200])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Thief and Grifter only!!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([25, 200])
cairo: rotate([0])
cairo: translate([-25, -200])
cairo: move_to([25, 200])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Thief and Grifter only!!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([25, 250])
cairo: rotate([0])
cairo: translate([-25, -250])
cairo: move_to([25, 250])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Thief only!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([25, 250])
cairo: rotate([0])
cairo: translate([-25, -250])
cairo: move_to([25, 250])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Mastermind only!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([25, 650])
cairo: rotate([0])
cairo: translate([-25, -650])
cairo: move_to([25, 650])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Grifter and Mastermind only!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([25, 650])
cairo: rotate([0])
cairo: translate([-25, -650])
cairo: move_to([25, 650])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Grifter and Mastermind only!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([25, 300])
cairo: rotate([0])
cairo: translate([-25, -300])
cairo: move_to([25, 300])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Thief and Mastermind only!!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([25, 300])
cairo: rotate([0])
cairo: translate([-25, -300])
cairo: move_to([25, 300])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Thief and Mastermind only!!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=0.0, @blue=0.0>])
cairo: translate([40, 700])
cairo: rotate([0])
cairo: translate([-40, -700])
cairo: move_to([40, 700])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["red"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=1.0, @blue=0.0>])
cairo: translate([80, 750])
cairo: rotate([0])
cairo: translate([-80, -750])
cairo: move_to([80, 750])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["green"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=1.0>])
cairo: translate([120, 800])
cairo: rotate([0])
cairo: translate([-120, -800])
cairo: move_to([120, 800])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["blue"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([25, 400])
cairo: rotate([0])
cairo: translate([-25, -400])
cairo: move_to([25, 400])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Thief through Grifter with id lookup!!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([25, 400])
cairo: rotate([0])
cairo: translate([-25, -400])
cairo: move_to([25, 400])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Thief through Grifter with id lookup!!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([25, 500])
cairo: rotate([0])
cairo: translate([-25, -500])
cairo: move_to([25, 500])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Only for Thinkers!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([25, 500])
cairo: rotate([0])
cairo: translate([-25, -500])
cairo: move_to([25, 500])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Only for Thinkers!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])

547
spec/data/samples/save_pdf.rb.txt

@ -0,0 +1,547 @@
=== save_pdf.rb ===
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.501960784313725, @green=0.501960784313725, @blue=0.501960784313725>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["1"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["2"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["3"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["4"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["5"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["6"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["7"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["8"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["9"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["10"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["11"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["12"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["13"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["14"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["15"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["16"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 75, 75])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 831, 75])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 1587, 75])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 2343, 75])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 75, 1131])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 831, 1131])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 1587, 1131])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 2343, 1131])
cairo: paint([])
cairo: show_page([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 75, 75])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 831, 75])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 1587, 75])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 2343, 75])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 75, 1131])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 831, 1131])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 1587, 1131])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, -37, -37])
cairo: paint([])
cairo: set_source([#<Cairo::ImageSurface:>, 2343, 1131])
cairo: paint([])
cairo: show_page([])

820
spec/data/samples/text_options.rb.txt

@ -0,0 +1,820 @@
=== text_options.rb ===
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([15, 15, 795, 1095, 50, 50])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([15, 15, 795, 1095, 50, 50])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([15, 15, 795, 1095, 50, 50])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([15, 15, 795, 1095, 50, 50])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([15, 15, 795, 1095, 50, 50])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([15, 15, 795, 1095, 50, 50])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([30, 30, 128, 128, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([30, 30, 128, 128, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([30, 30, 128, 128, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([30, 30, 128, 128, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([30, 30, 128, 128, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([30, 30, 128, 128, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: translate([-250, -55])
cairo: move_to([250, 55])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Thief"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: translate([-250, -55])
cairo: move_to([250, 55])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Grifter"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([250, 55])
cairo: rotate([0])
cairo: translate([-250, -55])
cairo: move_to([250, 55])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Mastermind"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.8, @green=0.333333333333333, @blue=0.0>])
cairo: translate([65, 40])
cairo: rotate([0])
cairo: translate([-65, -40])
cairo: move_to([65, 40])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["1"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.8, @green=0.333333333333333, @blue=0.0>])
cairo: translate([65, 40])
cairo: rotate([0])
cairo: translate([-65, -40])
cairo: move_to([65, 40])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["2"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.8, @green=0.333333333333333, @blue=0.0>])
cairo: translate([65, 40])
cairo: rotate([0])
cairo: translate([-65, -40])
cairo: move_to([65, 40])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["3"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([565, 150])
cairo: rotate([0])
cairo: translate([-565, -150])
cairo: move_to([565, 150])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["UTF-8 \u2663"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([565, 150])
cairo: rotate([0])
cairo: translate([-565, -150])
cairo: move_to([565, 150])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["UTF-8 \u2663"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([565, 150])
cairo: rotate([0])
cairo: translate([-565, -150])
cairo: move_to([565, 150])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["UTF-8 \u2663"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 200])
cairo: rotate([0])
cairo: translate([-65, -200])
cairo: move_to([65, 200])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Font strings are expressive!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 200])
cairo: rotate([0])
cairo: translate([-65, -200])
cairo: move_to([65, 200])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Font strings are expressive!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 200])
cairo: rotate([0])
cairo: translate([-65, -200])
cairo: move_to([65, 200])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Font strings are expressive!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 300])
cairo: rotate([0])
cairo: translate([-65, -300])
cairo: move_to([65, 300])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Font strings are expressive!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 300])
cairo: rotate([0])
cairo: translate([-65, -300])
cairo: move_to([65, 300])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Font strings are expressive!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 300])
cairo: rotate([0])
cairo: translate([-65, -300])
cairo: move_to([65, 300])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Font strings are expressive!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 350])
cairo: rotate([0])
cairo: translate([-65, -350])
cairo: move_to([65, 350])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Font string sizes can be overridden per card."])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 350])
cairo: rotate([0])
cairo: translate([-65, -350])
cairo: move_to([65, 350])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Font string sizes can be overridden per card."])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 350])
cairo: rotate([0])
cairo: translate([-65, -350])
cairo: move_to([65, 350])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Font string sizes can be overridden per card."])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 400])
cairo: rotate([0])
cairo: translate([-65, -400])
cairo: move_to([65, 400])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["This text has fixed width, fixed height, center-aligned, middle-valigned, and has a red hint"])
pango: width=([307200])
pango: height=([204800])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([65, 400, 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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 400])
cairo: rotate([0])
cairo: translate([-65, -400])
cairo: move_to([65, 400])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["This text has fixed width, fixed height, center-aligned, middle-valigned, and has a red hint"])
pango: width=([307200])
pango: height=([204800])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([65, 400, 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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 400])
cairo: rotate([0])
cairo: translate([-65, -400])
cairo: move_to([65, 400])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["This text has fixed width, fixed height, center-aligned, middle-valigned, and has a red hint"])
pango: width=([307200])
pango: height=([204800])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([65, 400, 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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([450, 400])
cairo: rotate([0])
cairo: translate([-450, -400])
cairo: move_to([450, 400])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Ellipsization!\\nThe ultimate question of life, the universe, and everything to life and everything is 42"])
pango: width=([286720])
pango: height=([184320])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([450, 400, 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([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([450, 400])
cairo: rotate([0])
cairo: translate([-450, -400])
cairo: move_to([450, 400])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Ellipsization!\\nThe ultimate question of life, the universe, and everything to life and everything is 42"])
pango: width=([286720])
pango: height=([184320])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([450, 400, 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([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([450, 400])
cairo: rotate([0])
cairo: translate([-450, -400])
cairo: move_to([450, 400])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Ellipsization!\\nThe ultimate question of life, the universe, and everything to life and everything is 42"])
pango: width=([286720])
pango: height=([184320])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([450, 400, 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([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 625])
cairo: rotate([0])
cairo: translate([-65, -625])
cairo: move_to([65, 625])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Text hints are also globally togglable!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([65, 625, 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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 625])
cairo: rotate([0])
cairo: translate([-65, -625])
cairo: move_to([65, 625])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Text hints are also globally togglable!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([65, 625, 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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 625])
cairo: rotate([0])
cairo: translate([-65, -625])
cairo: move_to([65, 625])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Text hints are also globally togglable!"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([65, 625, 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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([565, 625])
cairo: rotate([0])
cairo: translate([-565, -625])
cairo: move_to([565, 625])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["See? No hint here."])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([565, 625])
cairo: rotate([0])
cairo: translate([-565, -625])
cairo: move_to([565, 625])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["See? No hint here."])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([565, 625])
cairo: rotate([0])
cairo: translate([-565, -625])
cairo: move_to([565, 625])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["See? No hint here."])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([565, 675])
cairo: rotate([0.2])
cairo: translate([-565, -675])
cairo: move_to([565, 675])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Rotated"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([565, 675, 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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([565, 675])
cairo: rotate([0.2])
cairo: translate([-565, -675])
cairo: move_to([565, 675])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Rotated"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([565, 675, 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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([565, 675])
cairo: rotate([0.2])
cairo: translate([-565, -675])
cairo: move_to([565, 675])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Rotated"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([565, 675, 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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 700])
cairo: rotate([0])
cairo: translate([-65, -700])
cairo: move_to([65, 700])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["This is left-justified text.\nWhat do you know about tweetle beetles? well... \nWhen tweetle beetles fight, it's called a tweetle beetle battle. And when they battle in a puddle, it's a tweetle beetle puddle battle. AND when tweetle beetles battle with paddles in a puddle, they call it a tweetle beetle puddle paddle battle. AND... When beetles battle beetles in a puddle paddle battle and the beetle battle puddle is a puddle in a bottle... ..they call this a tweetle beetle bottle puddle paddle battle muddle. AND... When beetles fight these battles in a bottle with their paddles and the bottle's on a poodle and the poodle's eating noodles... ...they call this a muddle puddle tweetle poodle beetle noodle bottle paddle battle."])
pango: width=([691200.0])
pango: height=([307200])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([true])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 700])
cairo: rotate([0])
cairo: translate([-65, -700])
cairo: move_to([65, 700])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["This is left-justified text.\nWhat do you know about tweetle beetles? well... \nWhen tweetle beetles fight, it's called a tweetle beetle battle. And when they battle in a puddle, it's a tweetle beetle puddle battle. AND when tweetle beetles battle with paddles in a puddle, they call it a tweetle beetle puddle paddle battle. AND... When beetles battle beetles in a puddle paddle battle and the beetle battle puddle is a puddle in a bottle... ..they call this a tweetle beetle bottle puddle paddle battle muddle. AND... When beetles fight these battles in a bottle with their paddles and the bottle's on a poodle and the poodle's eating noodles... ...they call this a muddle puddle tweetle poodle beetle noodle bottle paddle battle."])
pango: width=([691200.0])
pango: height=([307200])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([true])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([65, 700])
cairo: rotate([0])
cairo: translate([-65, -700])
cairo: move_to([65, 700])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["This is left-justified text.\nWhat do you know about tweetle beetles? well... \nWhen tweetle beetles fight, it's called a tweetle beetle battle. And when they battle in a puddle, it's a tweetle beetle puddle battle. AND when tweetle beetles battle with paddles in a puddle, they call it a tweetle beetle puddle paddle battle. AND... When beetles battle beetles in a puddle paddle battle and the beetle battle puddle is a puddle in a bottle... ..they call this a tweetle beetle bottle puddle paddle battle muddle. AND... When beetles fight these battles in a bottle with their paddles and the bottle's on a poodle and the poodle's eating noodles... ...they call this a muddle puddle tweetle poodle beetle noodle bottle paddle battle."])
pango: width=([691200.0])
pango: height=([307200])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([true])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([50, 1000])
cairo: rotate([0])
cairo: translate([-50, -1000])
cairo: move_to([50, 1000])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["<b>Markup</b> is also <i>quite</i> <s>easy</s> awesome"])
pango: markup=(["<b>Markup</b> is also <i>quite</i> <s>easy</s> awesome"])
pango: width=([768000])
pango: height=([102400])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: move_to([50, 1000])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([50, 1000, 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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([50, 1000])
cairo: rotate([0])
cairo: translate([-50, -1000])
cairo: move_to([50, 1000])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["<b>Markup</b> is also <i>quite</i> <s>easy</s> awesome"])
pango: markup=(["<b>Markup</b> is also <i>quite</i> <s>easy</s> awesome"])
pango: width=([768000])
pango: height=([102400])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: move_to([50, 1000])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([50, 1000, 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::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([50, 1000])
cairo: rotate([0])
cairo: translate([-50, -1000])
cairo: move_to([50, 1000])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["<b>Markup</b> is also <i>quite</i> <s>easy</s> awesome"])
pango: markup=(["<b>Markup</b> is also <i>quite</i> <s>easy</s> awesome"])
pango: width=([768000])
pango: height=([102400])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: move_to([50, 1000])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: rounded_rectangle([50, 1000, 0, 0, 0, 0])
cairo: set_source_color([:cyan])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: restore([])

81
spec/data/samples/tgc_proofs.rb.txt

@ -0,0 +1,81 @@
=== tgc_proofs.rb ===
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([38, 38, 750, 1050, 38, 38])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([75, 75, 128, 128, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([220, 78])
cairo: rotate([0])
cairo: translate([-220, -78])
cairo: move_to([220, 78])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["Mastermind"])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: translate([75, 85])
cairo: rotate([0])
cairo: translate([-75, -85])
cairo: move_to([75, 85])
pango: font_description=([#<Pango::FontDescription own=true>])
pango: text=(["3"])
pango: width=([131072])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: update_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: show_pango_layout([#<RSpec::Mocks::Double: @name=Pango::Layout>])
cairo: restore([])
cairo: save([])
cairo: translate([620, 75])
cairo: rotate([0])
cairo: translate([-620, -75])
cairo: set_source([#<Cairo::ImageSurface:>, 620, 75])
cairo: paint([1.0])
cairo: restore([])
cairo: scale([1.0, 1.0])
cairo: render_rsvg_handle([#<RSVG::Handle >, nil])
cairo: save([])
cairo: translate([620, 218])
cairo: rotate([0])
cairo: translate([-620, -218])
cairo: set_source([#<Cairo::ImageSurface:>, 620, 218])
cairo: paint([1.0])
cairo: restore([])
cairo: save([])
cairo: translate([0, 0])
cairo: rotate([0])
cairo: translate([0, 0])
cairo: set_source([#<Cairo::ImageSurface:>, 0, 0])
cairo: paint([0.5])
cairo: restore([])

40
spec/data/samples/units.rb.txt

@ -0,0 +1,40 @@
=== units.rb ===
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=1.0, @green=1.0, @blue=1.0>])
cairo: paint([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([37.5, 37.5, 750.0, 1050.0, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([37.5, 37.5, 750.0, 1050.0, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([37.5, 37.5, 750.0, 1050.0, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([37.5, 37.5, 750.0, 1050.0, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])
cairo: save([])
cairo: rounded_rectangle([37.5, 37.5, 750.0, 1050.0, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=1.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: set_line_width([2.0])
cairo: stroke([])
cairo: rounded_rectangle([37.5, 37.5, 750.0, 1050.0, 25, 25])
cairo: set_source_color([#<Cairo::Color::RGB: @alpha=0.0, @red=0.0, @green=0.0, @blue=0.0>])
cairo: fill([])
cairo: restore([])

26
spec/deck_spec.rb

@ -48,7 +48,7 @@ describe Squib::Deck do
context '#load_layout' do
it 'loads a normal layout with no extends' do
d = Squib::Deck.new(layout: test_file('no-extends.yml'))
d = Squib::Deck.new(layout: layout_file('no-extends.yml'))
expect(d.layout).to \
eq({'frame' => {
'x' => 38,
@ -61,7 +61,7 @@ describe Squib::Deck do
end
it 'loads with a single extends' do
d = Squib::Deck.new(layout: test_file('single-extends.yml'))
d = Squib::Deck.new(layout: layout_file('single-extends.yml'))
expect(d.layout).to \
eq({'frame' => {
'x' => 38,
@ -78,7 +78,7 @@ describe Squib::Deck do
end
it 'applies the extends regardless of order' do
d = Squib::Deck.new(layout: test_file('pre-extends.yml'))
d = Squib::Deck.new(layout: layout_file('pre-extends.yml'))
expect(d.layout).to \
eq({'frame' => {
'x' => 38,
@ -95,7 +95,7 @@ describe Squib::Deck do
end
it 'applies the single-level extends multiple times' do
d = Squib::Deck.new(layout: test_file('single-level-multi-extends.yml'))
d = Squib::Deck.new(layout: layout_file('single-level-multi-extends.yml'))
expect(d.layout).to \
eq({'frame' => {
'x' => 38,
@ -118,7 +118,7 @@ describe Squib::Deck do
end
it 'applies multiple extends in a single rule' do
d = Squib::Deck.new(layout: test_file('multi-extends-single-entry.yml'))
d = Squib::Deck.new(layout: layout_file('multi-extends-single-entry.yml'))
expect(d.layout).to \
eq({'aunt' => {
'a' => 101,
@ -143,7 +143,7 @@ describe Squib::Deck do
end
it 'applies multi-level extends' do
d = Squib::Deck.new(layout: test_file('multi-level-extends.yml'))
d = Squib::Deck.new(layout: layout_file('multi-level-extends.yml'))
expect(d.layout).to \
eq({'frame' => {
'x' => 38,
@ -166,26 +166,26 @@ describe Squib::Deck do
end
it 'fails on a self-circular extends' do
file = test_file('self-circular-extends.yml')
file = layout_file('self-circular-extends.yml')
expect { Squib::Deck.new(layout: file) }.to \
raise_error(RuntimeError, 'Invalid layout: circular extends with \'a\'')
end
it 'fails on a easy-circular extends' do
file = test_file('easy-circular-extends.yml')
file = layout_file('easy-circular-extends.yml')
expect { Squib::Deck.new(layout: file) }.to \
raise_error(RuntimeError, 'Invalid layout: circular extends with \'a\'')
end
it 'hard on a easy-circular extends' do
file = test_file('hard-circular-extends.yml')
file = layout_file('hard-circular-extends.yml')
expect { Squib::Deck.new(layout: file) }.to \
raise_error(RuntimeError, 'Invalid layout: circular extends with \'a\'')
end
it 'redefines keys on multiple layouts' do
a = test_file('multifile-a.yml')
b = test_file('multifile-b.yml')
a = layout_file('multifile-a.yml')
b = layout_file('multifile-b.yml')
d = Squib::Deck.new(layout: [a, b])
expect(d.layout).to eq({
'title' => { 'x' => 300 },
@ -195,8 +195,8 @@ describe Squib::Deck do
end
it 'evaluates extends on each file first' do
a = test_file('multifile-extends-a.yml')
b = test_file('multifile-extends-b.yml')
a = layout_file('multifile-extends-a.yml')
b = layout_file('multifile-extends-b.yml')
d = Squib::Deck.new(layout: [a, b])
expect(d.layout).to eq({
'grandparent' => { 'x' => 100 },

13
spec/method_log_proxy.rb

@ -0,0 +1,13 @@
class MethodLogProxy
def initialize(strio, client)
@strio = strio
@client = client
end
# Any method called on the client will just be logged and passed through
def method_missing(m, *args, &block)
@strio << "#{method}(#{args})\n"
client.send(m,args)
end
end

44
spec/samples/samples_regression_spec.rb

@ -0,0 +1,44 @@
require 'spec_helper'
require 'squib'
require 'pp'
require 'method_log_proxy'
describe Squib do
context 'samples' do
it 'should execute with no errors' do
allow(ProgressBar).to receive(:create).and_return(Squib::DoNothing.new)
samples = File.expand_path('../../samples', File.dirname(__FILE__))
Dir["#{samples}/**/*.rb"].each do |sample|
Dir.chdir(samples) do #to save to _output
load sample
end
end
end
it 'did not change against regression logs' do
samples = File.expand_path('../../samples', File.dirname(__FILE__))
Dir["#{samples}/**/*.rb"].each do |sample|
sample_name = File.basename(sample)
header = "=== #{sample_name} ===\n"
Dir.chdir(samples) do #to save to _output
strio = StringIO.new
strio << header
mock_cairo(strio)
load sample
test_file_str = ""
# Use this to overwrite the regression with current state
# Use ONLY temporarily after you are happy with the new sample log
# File.open(sample_regression_file(sample_name), 'w+') do |f|
# f.write(strio.string) # write back out to expected file
# end
test_file_str << File.open(sample_regression_file(sample_name)).read
expect(strio.string).to eq(test_file_str)
end
end
end
end
end

20
spec/samples_run_spec.rb

@ -1,20 +0,0 @@
require 'spec_helper'
require 'squib'
require 'pp'
describe Squib do
context 'all samples run without error' do
it 'should execute with no errors' do
p = double('ProgressBar')
allow(ProgressBar).to receive(:create).and_return(Squib::DoNothing.new)
samples = File.expand_path('../samples', File.dirname(__FILE__))
Dir["#{samples}/**/*.rb"].each do |sample|
Dir.chdir(samples) do #to save to _output
require_relative "../samples/#{File.basename(sample)}"
end
end
end
end
end

47
spec/spec_helper.rb

@ -15,8 +15,51 @@ RSpec.configure do |config|
end
end
def test_file(str)
"#{File.expand_path(File.dirname(__FILE__))}/data/#{str}"
def layout_file(str)
"#{File.expand_path(File.dirname(__FILE__))}/data/layouts/#{str}"
end
def sample_regression_file(file)
"#{File.expand_path(File.dirname(__FILE__))}/data/samples/#{file}.txt"
end
def scrub_hex(str)
str.gsub(/0x\w{7,8}/,'')
.gsub(/ptr=.{8}/,'')
.gsub(/FontDescription:.{8}/,'FontDescription')
.gsub(/Handle:.{8}/,'Handle')
# .gsub(/RGB:./,'RGB:')
end
# Build a mock cairo instance that allows basically any method
# and logs that call to the string buffer
def mock_cairo(strio)
cxt = double(Cairo::Context)
surface = double(Cairo::ImageSurface)
pango = double(Pango::Layout)
allow(ProgressBar).to receive(:create).and_return(Squib::DoNothing.new)
allow(Cairo::Context).to receive(:new).and_return(cxt)
allow(cxt).to receive(:create_pango_layout).and_return(pango)
allow(cxt).to receive(:target).and_return(surface)
allow(pango).to receive(:height).and_return(25)
allow(pango).to receive(:width).and_return(25)
allow(pango).to receive(:extents).and_return([Pango::Rectangle.new(0,0,0,0)]*2)
%w(save set_source_color paint restore translate rotate move_to
update_pango_layout width height show_pango_layout rounded_rectangle
set_line_width stroke fill set_source scale render_rsvg_handle circle
triangle line_to operator= show_page).each do |m|
allow(cxt).to receive(m) { |*args| strio << scrub_hex("cairo: #{m}(#{args})\n") }
end
%w(font_description= text= width= height= wrap= ellipsize= alignment=
justify= spacing= markup=).each do |m|
allow(pango).to receive(m) {|*args| strio << scrub_hex("pango: #{m}(#{args})\n") }
end
%w(write_to_png).each do |m|
allow(surface).to receive(m) { |*args| strio << scrub_hex("surface: #{m}(#{args})\n") }
end
end
# Refine Squib to allow setting the logger and progress bar

Loading…
Cancel
Save