Browse Source

Ported text command over to the new args classes

* Involved a big rewrite of arg_loader to accomodate nil and false better. Sadly this meant dumping ||= for if-statements. Blech, but works.
  * Updates to regression tests are pretty trivial.
  * Removed graphics_text_spec because, even though it looks useful, with rake sanity it really isn't.
  * Exposed font on deck as well

Cleaned up graphics/text.rb too!
dev
Andy Meneely 11 years ago
parent
commit
e43f68d323
  1. 7
      CHANGELOG.md
  2. 6
      lib/squib/api/text.rb
  3. 72
      lib/squib/args/arg_loader.rb
  4. 93
      lib/squib/args/paragraph.rb
  5. 2
      lib/squib/deck.rb
  6. 47
      lib/squib/graphics/text.rb
  7. 37
      spec/api/api_text_spec.rb
  8. 153
      spec/args/paragraph_spec.rb
  9. 6
      spec/data/samples/autoscale_font.rb.txt
  10. 12
      spec/data/samples/basic.rb.txt
  11. 6
      spec/data/samples/config_text_markup.rb.txt
  12. 8
      spec/data/samples/csv_import.rb.txt
  13. 2
      spec/data/samples/custom_config.rb.txt
  14. 42
      spec/data/samples/embed_text.rb.txt
  15. 18
      spec/data/samples/excel.rb.txt
  16. 2
      spec/data/samples/gradients.rb.txt
  17. 16
      spec/data/samples/hand.rb.txt
  18. 4
      spec/data/samples/hello_world.rb.txt
  19. 4
      spec/data/samples/portrait-landscape.rb.txt
  20. 48
      spec/data/samples/ranges.rb.txt
  21. 32
      spec/data/samples/saves.rb.txt
  22. 8
      spec/data/samples/showcase.rb.txt
  23. 102
      spec/data/samples/text_options.rb.txt
  24. 4
      spec/data/samples/tgc_proofs.rb.txt
  25. 164
      spec/graphics/graphics_text_spec.rb
  26. 2
      squib.sublime-project

7
CHANGELOG.md

@ -4,10 +4,11 @@ Squib follows [semantic versioning](http://semver.org).
## v0.7.0 / Unreleased
Features
* Added `cap` option to `line` and `curve` to define how those ends are drawn
* Added `join` option to all drawing operations (e.g. `rect`, `star`, even outlines for `text`) to define how corners are drawn.
* Added `dash` option to all drawing operations (e.g. `rect`, `star`, even outlines for `text`) so you can specify your own dash pattern. Just specify a string with space-separated numbers to specify the on-and-off alternating pattern (e.g. `dash: '2 2'` with a stroke width of 2 is evenly spaced dots). Supports unit conversion (e.g. `dash: '0.02in 0.02in'`)
* Added `cap` option to `line` and `curve` to define how those ends are drawn (#42)
* Added `join` option to all drawing operations (e.g. `rect`, `star`, even outlines for `text`) to define how corners are drawn. (#42)
* Added `dash` option to all drawing operations (e.g. `rect`, `star`, even outlines for `text`) so you can specify your own dash pattern. Just specify a string with space-separated numbers to specify the on-and-off alternating pattern (e.g. `dash: '2 2'` with a stroke width of 2 is evenly spaced dots). Supports unit conversion (e.g. `dash: '0.02in 0.02in'`) (#42)
* Added an idiom to the `ranges.rb` sample for drawing a different number of images based on the column in a table (e.g. 2 arrows to indicate 2 actions). Based on question #90. There are probably even cleaner, Ruby-ish ways to do this too - pull requests are welcome.
* The `text` method and several other methods will throw errors on invalid input. This means your scripts will be more likely to break if you provide bad input
Compatibility:
* All drawn shapes (e.g. circle, triangle, star) will now draw their stroke on top of the fill. This was not consistent before, and now it is (because Squib is more DRY about it!). This might mean that your `stroke_width` will render wider than before.

6
lib/squib/api/text.rb

@ -48,12 +48,12 @@ module Squib
# @return [Array] Returns an Array of hashes keyed by :width and :height that mark the ink extents of the text rendered.
# @api public
def text(opts = {})
opts = { stroke_width: 0, width: :auto, height: :auto }.merge(opts)
opts = { stroke_width: 0, width: :auto, height: :auto }.merge(opts)
range = Args::CardRange.new(opts[:range], deck_size: size)
para = Args::Paragraph.new.load!(opts, expand_by: size, layout: layout)
para = Args::Paragraph.new(font).load!(opts, expand_by: size, layout: layout)
box = Args::Box.new(self).load!(opts, expand_by: size, layout: layout, dpi: dpi)
trans = Args::Transform.new.load!(opts, expand_by: size, layout: layout, dpi: dpi)
draw = Args::Draw.new.load!(opts, expand_by: size, layout: layout, dpi: dpi)
draw = Args::Draw.new.load!(opts, expand_by: size, layout: layout, dpi: dpi)
embed = TextEmbed.new
yield(embed) if block_given? #store the opts for later use
extents = Array.new(@cards.size)

72
lib/squib/args/arg_loader.rb

@ -13,38 +13,51 @@ module Squib
# Main class invoked by the client (i.e. api/ methods)
def load!(args, expand_by: 1, layout: {}, dpi: 300)
@dpi = dpi
set_attributes(args: args)
expand(by: expand_by)
layout_args = prep_layout_args(args[:layout], expand_by: expand_by)
defaultify(layout_args: layout_args || [], layout: layout)
args[:layout] = prep_layout_args(args[:layout], expand_by: expand_by)
expand_and_set_and_defaultify(args: args, by: expand_by, layout: layout)
validate
convert_units
self
end
# Iterate over the args hash and create instance-level attributes for
# each parameter
# Assumes we have a hash of parameters to their default keys in the class
def set_attributes(args: args)
def expand_and_set_and_defaultify(args: {}, by: 1, layout: {})
attributes = self.class.parameters.keys
attributes.each do |p|
instance_variable_set "@#{p}", args[p] # often nil, but ok
args[p] = defaultify(p, args, layout)
val = if expandable_singleton?(p, args[p])
[args[p]] * by
else
args[p] # not an expanding parameter
end
instance_variable_set "@#{p}", val
end
self.class.class_eval { attr_reader *(attributes) }
end
# Conduct singleton expansion
# If expanding-parameter is not already responding to
# :each then copy it into an array
#
# Assumes we have an self.expanding_parameters
def expand(by: 1)
exp_params = self.class.expanding_parameters
exp_params.each do |p|
attribute = "@#{p}"
arg = instance_variable_get(attribute)
unless arg.respond_to? :each
instance_variable_set attribute, [arg] * by #expand singleton
# Must be:
# (a) an expanding parameter, and
# (b) a singleton already (i.e. doesn't respond to :each)
def expandable_singleton?(p, arg)
self.class.expanding_parameters.include?(p) && !arg.respond_to?(:each)
end
# Incorporate defaults and layouts
# (1) Use whatever is specified if it is
# (2) Go over all layout specifications (if any) and look them up
# - Use layout when it's specified for that card
# - Use default if no layout was specified,
# or the layout itself did not specify
def defaultify(p, args, layout)
return args[p] if args.key? p # arg was specified, no defaults used
args[:layout].map do |layout_arg|
if layout_arg.nil?
self.class.parameters[p] # no layout specified, use default
else
if layout[layout_arg.to_s].key? p.to_s
layout[layout_arg.to_s][p.to_s] # param specified in layout
else
self.class.parameters[p] # layout specified, but not this param
end
end
end
end
@ -58,23 +71,6 @@ module Squib
layout_args || []
end
# Go over each argument and fill it in with layout and defaults wherever nil
def defaultify(layout_args: [], layout: {})
self.class.parameters.each do |param, default|
attribute = "@#{param}"
val = instance_variable_get(attribute)
if val.respond_to? :each
new_val = val.map.with_index do |v, i|
v ||= layout[layout_args[i].to_s][param.to_s] unless layout_args[i].nil?
v ||= default
end
instance_variable_set(attribute, new_val)
else # a non-expanded singleton
# TODO handle this case
end
end
end
# For each parameter/attribute foo we try to invoke a validate_foo
def validate
self.class.parameters.each do |param, default|

93
lib/squib/args/paragraph.rb

@ -7,18 +7,19 @@ module Squib
class Paragraph
include ArgLoader
def self.parameters
{ align: :left,
str: 'Hello, World!',
font: :use_set,
{ align: :left,
str: 'Hello, World!',
font: :use_set,
font_size: nil,
markup: false,
justify: false,
wrap: true,
markup: false,
justify: false,
wrap: true,
ellipsize: :end,
spacing: 0,
valign: :top,
hint: :off
spacing: 0,
valign: :top,
hint: :off
}
end
@ -30,10 +31,84 @@ module Squib
[] # none of them
end
def initialize(deck_font)
@deck_font = deck_font
end
def validate_str(arg, _i)
arg.to_s
end
def validate_font(arg, _i)
arg = @deck_font if arg == :use_set
arg = Squib::SYSTEM_DEFAULTS[:default_font] if arg == :default
arg
end
def validate_align(arg, _i)
case arg.to_s.downcase
when 'left'
Pango::ALIGN_LEFT
when 'right'
Pango::ALIGN_RIGHT
when 'center'
Pango::ALIGN_CENTER
else
raise ArgumentError, 'align must be one of: center, left, right'
end
end
def validate_wrap(arg, _i)
case arg.to_s.downcase
when 'word'
Pango::Layout::WRAP_WORD
when 'char', 'false'
Pango::Layout::WRAP_CHAR
when 'word_char', 'true'
Pango::Layout::WRAP_WORD_CHAR
else
raise ArgumentError, 'wrap must be one of: word, char, word_char, true, or false'
end
end
def validate_ellipsize(arg, _i)
case arg.to_s.downcase
when 'none', 'false'
Pango::Layout::ELLIPSIZE_NONE
when 'start'
Pango::Layout::ELLIPSIZE_START
when 'middle'
Pango::Layout::ELLIPSIZE_MIDDLE
when 'end', 'true'
Pango::Layout::ELLIPSIZE_END
else
raise ArgumentError, 'ellipsize must be one of: none, start, middle, end, true, or false'
end
end
def validate_justify(arg, _i)
case arg
when nil, true, false
arg
else
raise ArgumentError, 'justify must be one of: nil, true, or false'
end
end
def validate_spacing(arg, _i)
return nil if arg.nil?
raise ArgumentError, 'spacing must be a number or nil' unless arg.respond_to? :to_f
Pango::SCALE * arg.to_f
end
def validate_valign(arg, _i)
if %w(top middle bottom).include? arg.to_s.downcase
arg.to_s.downcase
else
raise ArgumentError, 'valign must be one of: top, middle, bottom'
end
end
end
end

2
lib/squib/deck.rb

@ -35,7 +35,7 @@ module Squib
:img_dir, :prefix, :text_hint, :typographer
# :nodoc:
# @api private
attr_reader :layout, :conf, :dpi
attr_reader :layout, :conf, :dpi, :font
#
# deck.size is really just @cards.size

47
lib/squib/graphics/text.rb

@ -20,47 +20,6 @@ module Squib
cc.stroke
end
# :nodoc:
# @api private
def set_ellipsize!(layout, ellipsize)
case ellipsize.to_s.downcase
when 'none', 'false'
layout.ellipsize = Pango::Layout::ELLIPSIZE_NONE
when 'start'
layout.ellipsize = Pango::Layout::ELLIPSIZE_START
when 'middle'
layout.ellipsize = Pango::Layout::ELLIPSIZE_MIDDLE
when 'end', 'true'
layout.ellipsize = Pango::Layout::ELLIPSIZE_END
end
end
# :nodoc:
# @api private
def set_wrap!(layout, wrap)
case wrap.to_s.downcase
when 'word'
layout.wrap = Pango::Layout::WRAP_WORD
when 'char'
layout.wrap = Pango::Layout::WRAP_CHAR
when 'word_char', 'true'
layout.wrap = Pango::Layout::WRAP_WORD_CHAR
end
end
# :nodoc:
# @api private
def set_align!(layout, align)
case align.to_s.downcase
when 'left'
layout.alignment = Pango::ALIGN_LEFT
when 'right'
layout.alignment = Pango::ALIGN_RIGHT
when 'center'
layout.alignment = Pango::ALIGN_CENTER
end
end
# :nodoc:
# @api private
def compute_valign(layout, valign)
@ -173,9 +132,9 @@ module Squib
set_font_rendering_opts!(layout)
set_wh!(layout, box.width, box.height)
set_wrap!(layout, para.wrap)
set_ellipsize!(layout, para.ellipsize)
set_align!(layout, para.align)
layout.wrap = para.wrap
layout.ellipsize = para.ellipsize
layout.alignment = para.align
layout.justify = para.justify unless para.justify.nil?
layout.spacing = para.spacing * Pango::SCALE unless para.spacing.nil?

37
spec/api/api_text_spec.rb

@ -1,37 +0,0 @@
require 'spec_helper'
require 'squib'
describe Squib::Deck, '#text' do
context 'fonts' do
it "should use the default font when #text and #set_font don't specify" do
card = instance_double(Squib::Card)
expect(card).to receive(:text).with(anything, 'a', 'Arial 36', *([anything] * 17)).once
Squib::Deck.new do
@cards = [card]
text str: 'a'
end
end
it "should use the #set_font when #text doesn't specify" do
card = instance_double(Squib::Card)
expect(card).to receive(:text).with(anything, 'a', 'Times New Roman 16', *([anything] * 17)).once
Squib::Deck.new do
@cards = [card]
set font: 'Times New Roman 16'
text str: 'a'
end
end
it 'should use the specified font no matter what' do
card = instance_double(Squib::Card)
expect(card).to receive(:text).with(anything, 'a', 'Arial 18', *([anything] * 17)).once
Squib::Deck.new do
@cards = [card]
set font: 'Times New Roman 16'
text str: 'a', font: 'Arial 18'
end
end
end
end

153
spec/args/paragraph_spec.rb

@ -0,0 +1,153 @@
require 'spec_helper'
require 'squib/args/paragraph'
require 'squib/constants'
describe Squib::Args::Paragraph do
subject(:para) { Squib::Args::Paragraph.new('FooFont 32') }
context 'str validator' do
it 'converts everything to string' do
para.load!( {str: 5} )
expect(para.str).to eq ['5']
end
end
context 'font validator' do
it 'uses deck font by default' do
para.load!( {} )
expect(para.font).to eq ['FooFont 32']
end
it 'uses system default font when deck font is :default' do
para = Squib::Args::Paragraph.new(:default)
para.load!( {} )
expect(para.font).to eq [Squib::SYSTEM_DEFAULTS[:default_font]]
end
it 'uses specified font when given' do
para.load!( {font: 'MyFont 8'})
expect(para.font).to eq ['MyFont 8']
end
end
context 'align validator' do
it 'converts to pango left' do
para.load!( { align: :left } )
expect(para.align).to eq [Pango::ALIGN_LEFT]
end
it 'converts to pango right' do
para.load!( { align: :RIGHT } )
expect(para.align).to eq [Pango::ALIGN_RIGHT]
end
it 'converts to pango center' do
para.load!( { align: 'center' } )
expect(para.align).to eq [Pango::ALIGN_CENTER]
end
it 'raises an exception on anything else' do
expect { para.load!( { align: 'foo' } ) }.to raise_error(ArgumentError, 'align must be one of: center, left, right')
end
end
context 'wrap validator' do
it 'converts to pango wrap word' do
para.load!( { wrap: 'word'} )
expect(para.wrap).to eq [Pango::WRAP_WORD]
end
it 'converts to pango wrap char' do
para.load!( { wrap: 'WORD_ChAr'} )
expect(para.wrap).to eq [Pango::WRAP_WORD_CHAR]
end
it 'converts to pango wrap char on true' do
para.load!( { wrap: true} )
expect(para.wrap).to eq [Pango::WRAP_WORD_CHAR]
end
it 'converts to pango wrap char with false' do
para.load!( { wrap: false} )
expect(para.wrap).to eq [Pango::WRAP_CHAR]
end
it 'raises an exception on anything else' do
expect { para.load!( {wrap: 'foo' }) }.to raise_error(ArgumentError, 'wrap must be one of: word, char, word_char, true, or false')
end
end
context 'ellipsize validator' do
it 'converts to pango on none and false' do
para.load!( { ellipsize: 'none'} )
expect(para.ellipsize).to eq [Pango::Layout::ELLIPSIZE_NONE]
end
it 'converts to pango with start' do
para.load!( { ellipsize: :StArt} )
expect(para.ellipsize).to eq [Pango::Layout::ELLIPSIZE_START]
end
it 'converts to pango middle' do
para.load!( { ellipsize: 'middle'} )
expect(para.ellipsize).to eq [Pango::Layout::ELLIPSIZE_MIDDLE]
end
it 'converts to pango end' do
para.load!( { ellipsize: 'END'} )
expect(para.ellipsize).to eq [Pango::Layout::ELLIPSIZE_END]
end
it 'raises an exception on anything else' do
expect { para.load!( {ellipsize: 'foo' }) }.to raise_error(ArgumentError, 'ellipsize must be one of: none, start, middle, end, true, or false')
end
end
context 'justify validator' do
it 'allows nil' do
para.load!( { justify: nil} )
expect(para.justify).to eq [nil]
end
it 'can be true' do
para.load!( { justify: true} )
expect(para.justify).to eq [true]
end
it 'can be false' do
para.load!( { justify: false} )
expect(para.justify).to eq [false]
end
it 'raises an exception on anything else' do
expect { para.load!( {justify: 'false' }) }.to raise_error(ArgumentError, 'justify must be one of: nil, true, or false')
end
end
context 'spacing validator' do
it 'allows nil' do
para.load!( { spacing: nil} )
expect(para.spacing).to eq [nil]
end
it 'is converted to Pango space' do
para.load!( { spacing: 519} )
expect(para.spacing).to eq [Pango::SCALE * 519.0]
end
it 'raises an exception if not a float' do
expect { para.load!( {spacing: /foo/ }) }.to raise_error(ArgumentError, 'spacing must be a number or nil')
end
end
context 'valign validator' do
it 'converts top' do
para.load!( { valign: :top} )
expect(para.valign).to eq ['top']
end
it 'raises an exception if not one of the three' do
expect { para.load!( {valign: 'foo' }) }.to raise_error(ArgumentError, 'valign must be one of: top, middle, bottom')
end
end
end

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

@ -26,7 +26,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -49,7 +49,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -72,7 +72,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])

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

@ -90,7 +90,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -107,7 +107,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -124,7 +124,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -142,7 +142,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -160,7 +160,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -178,7 +178,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])

6
spec/data/samples/config_text_markup.rb.txt

@ -17,7 +17,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -40,7 +40,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -62,7 +62,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])

8
spec/data/samples/csv_import.rb.txt

@ -19,7 +19,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -36,7 +36,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -53,7 +53,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -70,7 +70,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])

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

@ -15,7 +15,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])

42
spec/data/samples/embed_text.rb.txt

@ -23,10 +23,10 @@ pango: font_description=([MockDouble])
pango: text=(["Take 11 :tool: and gain 2 :health:. Take <b>2</b> :tool: <i>and gain 3 :purse: if level 2.</i>"])
pango: width=([184320])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode none>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
pango: markup=(["Take 11 :tool: and gain 2 :health:. Take <b>2</b> :tool: <i>and gain 3 :purse: if level 2.</i>"])
cairo: move_to([0, 0])
@ -47,10 +47,10 @@ pango: text=(["Middle align: Take 1 :tool: and gain 2 :health:. Take 2 :tool: an
pango: width=([184320])
pango: height=([307200])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode none>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
pango: markup=(["Middle align: Take 1 :tool: and gain 2 :health:. Take 2 :tool: and gain 3 :purse:"])
cairo: move_to([0, 0.0])
@ -71,10 +71,10 @@ pango: text=(["This :tool: aligns on the bottom properly. :purse:"])
pango: width=([184320])
pango: height=([307200])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode none>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
pango: markup=(["This :tool: aligns on the bottom properly. :purse:"])
cairo: move_to([0, 0.0])
@ -95,10 +95,10 @@ pango: text=(["Wrapping multiples: These are 1 :tool::tool::tool: and these are
pango: width=([184320])
pango: height=([307200])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode none>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
pango: markup=(["Wrapping multiples: These are 1 :tool::tool::tool: and these are multiple :tool::tool: :tool::tool:"])
cairo: move_to([0, 0.0])
@ -119,10 +119,10 @@ pango: text=([":tool:Justify will :tool: work too, and :purse: with more words j
pango: width=([184320])
pango: height=([307200])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode none>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([true])
pango: spacing=([0])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
pango: markup=([":tool:Justify will :tool: work too, and :purse: with more words just for fun"])
cairo: move_to([0, 0.0])
@ -143,10 +143,10 @@ pango: text=(["Right-aligned works :tool: with :health: and :purse:"])
pango: width=([184320])
pango: height=([307200])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode none>])
pango: alignment=([#<Pango::Layout::Alignment right>])
pango: justify=([false])
pango: spacing=([0])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
pango: markup=(["Right-aligned works :tool: with :health: and :purse:"])
cairo: move_to([0, 0.0])
@ -167,10 +167,10 @@ pango: text=([":tool:Center-aligned works :tool: with :health: and :purse:"])
pango: width=([184320])
pango: height=([307200])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode none>])
pango: alignment=([#<Pango::Layout::Alignment center>])
pango: justify=([false])
pango: spacing=([0])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
pango: markup=([":tool:Center-aligned works :tool: with :health: and :purse:"])
cairo: move_to([0, 0])
@ -195,7 +195,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
pango: markup=(["foo"])
cairo: move_to([0, 0])
@ -221,10 +221,10 @@ pango: text=(["Take 1 :tool: and gain 2 :health:."])
pango: width=([184320])
pango: height=([307200])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode none>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
pango: markup=(["Take 1 :tool: and gain 2 :health:."])
cairo: move_to([0, 0.0])
@ -246,10 +246,10 @@ pango: text=(["Take 1 :tool: and gain 2 :health:."])
pango: width=([184320])
pango: height=([307200])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode none>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
pango: markup=(["Take 1 :tool: and gain 2 :health:."])
cairo: move_to([0, 0.0])
@ -271,10 +271,10 @@ pango: text=(["Take 1 :tool: and gain 2 :health:."])
pango: width=([184320])
pango: height=([307200])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode none>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
pango: markup=(["Take 1 :tool: and gain 2 :health:."])
cairo: move_to([0, 0.0])

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

@ -24,7 +24,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -41,7 +41,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -58,7 +58,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -75,7 +75,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -92,7 +92,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -109,7 +109,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -126,7 +126,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -143,7 +143,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -160,7 +160,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])

2
spec/data/samples/gradients.rb.txt

@ -71,7 +71,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])

16
spec/data/samples/hand.rb.txt

@ -225,7 +225,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -242,7 +242,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -259,7 +259,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -276,7 +276,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -293,7 +293,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -310,7 +310,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -327,7 +327,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -344,7 +344,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])

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

@ -11,7 +11,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -28,7 +28,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])

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

@ -14,7 +14,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -37,7 +37,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])

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

@ -24,7 +24,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -41,7 +41,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -58,7 +58,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -75,7 +75,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -92,7 +92,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -109,7 +109,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -127,7 +127,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -145,7 +145,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -163,7 +163,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -180,7 +180,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -197,7 +197,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -214,7 +214,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -231,7 +231,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -248,7 +248,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -265,7 +265,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -282,7 +282,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -299,7 +299,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -316,7 +316,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -333,7 +333,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -350,7 +350,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -367,7 +367,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -384,7 +384,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -401,7 +401,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -418,7 +418,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])

32
spec/data/samples/saves.rb.txt

@ -265,7 +265,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -282,7 +282,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -299,7 +299,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -316,7 +316,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -333,7 +333,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -350,7 +350,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -367,7 +367,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -384,7 +384,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -401,7 +401,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -418,7 +418,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -435,7 +435,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -452,7 +452,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -469,7 +469,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -486,7 +486,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -503,7 +503,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -520,7 +520,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])

8
spec/data/samples/showcase.rb.txt

@ -74,7 +74,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -92,7 +92,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -110,7 +110,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -128,7 +128,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])

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

@ -90,7 +90,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -107,7 +107,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -124,7 +124,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -141,7 +141,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -158,7 +158,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -175,7 +175,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -192,7 +192,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -209,7 +209,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -226,7 +226,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -243,7 +243,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -260,7 +260,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -277,7 +277,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -295,7 +295,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -313,7 +313,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -331,7 +331,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -350,7 +350,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
@ -373,7 +373,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
@ -396,7 +396,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
@ -418,7 +418,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -436,7 +436,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -454,7 +454,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -506,7 +506,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -529,7 +529,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -552,7 +552,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -573,7 +573,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -594,7 +594,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -615,7 +615,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -636,7 +636,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -653,7 +653,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -670,7 +670,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -687,7 +687,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -708,7 +708,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -729,7 +729,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -752,7 +752,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -771,7 +771,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -790,7 +790,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -805,10 +805,10 @@ pango: font_description=([MockDouble])
pango: text=(["Embedded icons! Take 1 :tool: and gain 2:health:. If Level 2, take 2 :tool:"])
pango: width=([261120.0])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode none>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
pango: markup=(["Embedded icons! Take 1 :tool: and gain 2:health:. If Level 2, take 2 :tool:"])
cairo: move_to([0, 0])
@ -824,10 +824,10 @@ pango: font_description=([MockDouble])
pango: text=(["Embedded icons! Take 1 :tool: and gain 2:health:. If Level 2, take 2 :tool:"])
pango: width=([261120.0])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode none>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
pango: markup=(["Embedded icons! Take 1 :tool: and gain 2:health:. If Level 2, take 2 :tool:"])
cairo: move_to([0, 0])
@ -843,10 +843,10 @@ pango: font_description=([MockDouble])
pango: text=(["Embedded icons! Take 1 :tool: and gain 2:health:. If Level 2, take 2 :tool:"])
pango: width=([261120.0])
pango: wrap=([#<Pango::Layout::WrapMode word-char>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode end>])
pango: ellipsize=([#<Pango::Layout::EllipsizeMode none>])
pango: alignment=([#<Pango::Layout::Alignment left>])
pango: justify=([false])
pango: spacing=([0])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
pango: markup=(["Embedded icons! Take 1 :tool: and gain 2:health:. If Level 2, take 2 :tool:"])
cairo: move_to([0, 0])
@ -866,7 +866,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -892,7 +892,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -918,7 +918,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -944,7 +944,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -970,7 +970,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -996,7 +996,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -1023,7 +1023,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
@ -1047,7 +1047,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])
@ -1071,7 +1071,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0.0])
cairo: update_pango_layout([MockDouble])

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

@ -36,7 +36,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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])
@ -54,7 +54,7 @@ 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])
pango: spacing=([0.0])
cairo: update_pango_layout([MockDouble])
cairo: move_to([0, 0])
cairo: update_pango_layout([MockDouble])

164
spec/graphics/graphics_text_spec.rb

@ -1,164 +0,0 @@
require 'spec_helper'
require 'squib'
describe Squib::Card, '#text' do
context 'typical inputs' do
let(:deck) { double(Squib::Deck) }
let(:context) { double(Cairo::Context) }
let(:layout) { double(Pango::Layout) }
let(:font_desc) { double(Pango::FontDescription) }
let(:pango_cxt) { double(Pango::Context) }
before(:each) do
allow(Cairo::Context).to receive(:new).and_return(context)
allow(deck).to receive(:dir).and_return('_output')
allow(deck).to receive(:count_format).and_return('%02d')
allow(deck).to receive(:prefix).and_return('card_')
allow(deck).to receive(:antialias).and_return('best')
allow(deck).to receive(:antialias).and_return('subpixel')
allow(deck).to receive(:backend).and_return('memory')
allow(layout).to receive(:context).and_return(pango_cxt)
end
it 'make all the expected calls on a smoke test' do
extent = Pango::Rectangle.new(50,60,100,200)
expect(Squib.logger).to receive(:debug).once
expect(context).to receive(:antialias=).with('subpixel').once
expect(context).to receive(:save).once
expect(context).to receive(:set_source_color).once
expect(context).to receive(:move_to).with(0, 0).twice
expect(context).to receive(:rotate).with(0.0).once
expect(context).to receive(:translate).with(10, 15).once
expect(context).to receive(:create_pango_layout).once.and_return(layout)
expect(Pango::FontDescription).to receive(:new).with('Sans 12').and_return(font_desc)
expect(layout ).to receive(:font_description=).with(font_desc).once
expect(layout ).to receive(:text=).with('foo').once
expect(layout ).to receive(:width=).with(20 * Pango::SCALE).once
expect(layout ).to receive(:height=).with(25 * Pango::SCALE).once
expect(layout ).to receive(:ellipsize=).with(Pango::Layout::ELLIPSIZE_NONE).once
expect(layout ).to receive(:alignment=).with(Pango::Layout::ALIGN_LEFT).once
expect(pango_cxt).to receive(:font_options=).once
expect(layout ).to receive(:justify=).with(false).once
expect(layout ).to receive(:spacing=).with(1.0 * Pango::SCALE).once
expect(context).to receive(:update_pango_layout).once
expect(layout ).to receive(:height).once.and_return(25)
expect(layout ).to receive(:extents).thrice.and_return([nil,extent])
expect(context).to receive(:update_pango_layout).once
expect(context).to receive(:show_pango_layout).once
expect(context).to receive(:restore).once
card = Squib::Card.new(deck, 100, 150)
# text(str, font, font_size, color,
# x, y, width, height,
# markup, justify, wrap, ellipsize,
# spacing, align, valign, hint, angle,
# stroke_width, stroke_color)
ret = card.text(Squib::TextEmbed.new,'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 25,
nil, false, false, false,
1.0, :left, :top, nil, 0.0, '#fff', 0)
expect(ret).to eq({width: 0, height: 0})
end
end
context 'convenience lookups' do
let(:deck) { double(Squib::Deck) }
let(:context) { double(Cairo::Context).as_null_object }
let(:layout) { double(Pango::Layout).as_null_object }
let(:extents) { double("extents") }
before(:each) do
allow(Cairo::Context).to receive(:new).and_return(context)
expect(context).to receive(:create_pango_layout).once.and_return(layout)
allow(deck).to receive(:dir).and_return('_output')
allow(deck).to receive(:count_format).and_return('%02d')
allow(deck).to receive(:prefix).and_return('card_')
allow(deck).to receive(:antialias).and_return('subpixel')
allow(deck).to receive(:backend).and_return('memory')
end
it 'aligns right with strings' do
card = Squib::Card.new(deck, 100, 150)
expect(layout).to receive(:alignment=).with(Pango::Layout::ALIGN_RIGHT).once
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, false, false,
1.0, 'right', :top, nil, 0.0, '#fff', 0)
end
it 'aligns center with strings' do
card = Squib::Card.new(deck, 100, 150)
expect(layout).to receive(:alignment=).with(Pango::Layout::ALIGN_CENTER).once
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, false, false,
1.0, 'center', :top, nil, 0.0, '#fff', 0)
end
it 'sets wrap to char with string char' do
card = Squib::Card.new(deck, 100, 150)
expect(layout).to receive(:wrap=).with(Pango::Layout::WRAP_CHAR).once
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, 'char', false,
1.0, :left, :top, nil, 0.0, '#fff', 0)
end
it 'sets wrap to word with word string' do
card = Squib::Card.new(deck, 100, 150)
expect(layout).to receive(:wrap=).with(Pango::Layout::WRAP_WORD).once
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, 'word', false,
1.0, :left, :top, nil, 0.0, '#fff', 0)
end
it 'sets wrap to word_char with symbol word_char' do
card = Squib::Card.new(deck, 100, 150)
expect(layout).to receive(:wrap=).with(Pango::Layout::WRAP_WORD_CHAR).once
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, :word_char, false,
1.0, :left, :top, nil, 0.0, '#fff', 0)
end
it 'sets wrap to word_char with true' do
card = Squib::Card.new(deck, 100, 150)
expect(layout).to receive(:wrap=).with(Pango::Layout::WRAP_WORD_CHAR).once
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, true, false,
1.0, :left, :top, nil, 0.0, '#fff', 0)
end
it 'sets ellipsize to start properly' do
card = Squib::Card.new(deck, 100, 150)
expect(layout).to receive(:ellipsize=).with(Pango::Layout::ELLIPSIZE_START).once
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, true, :start,
1.0, :left, :top, nil, 0.0, '#fff', 0)
end
it 'sets ellipsize to middle properly' do
card = Squib::Card.new(deck, 100, 150)
expect(layout).to receive(:ellipsize=).with(Pango::Layout::ELLIPSIZE_MIDDLE).once
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, true, 'middle',
1.0, :left, :top, nil, 0.0, '#fff', 0)
end
it 'implements stroke and fill when asked to' do
card = Squib::Card.new(deck, 100, 150)
expect(context).to receive(:set_line_width).with(3.0).once
expect(context).to receive(:pango_layout_path).once
card.text(Squib::TextEmbed.new, 'foo', 'Sans 12', nil, '#abc',
10, 15, 20, 50,
nil, false, true, 'middle',
1.0, :left, :top, nil, 0.0, '#f00', 3.0)
end
end
end

2
squib.sublime-project vendored

@ -20,6 +20,8 @@
{"name": "rake spec_fastonly", "shell_cmd": "rake spec_fastonly",},
{"name": "rake run[text_options]", "shell_cmd": "rake run[text_options]",},
{"name": "rake run[hand]", "shell_cmd": "rake run[hand]",},
{"name": "rspec spec/args/paragraph_spec.rb", "shell_cmd": "rspec spec/args/paragraph_spec.rb", "working_dir": "${project_path:${folder}}"},
{"name": "rspec spec/args/*_spec.rb", "shell_cmd": "rspec spec/args/*_spec.rb", "working_dir": "${project_path:${folder}}"},
// {"name": "rake run[config_text_markup]", "shell_cmd": "rake run[config_text_markup]",},
// {"name": "rake run[csv_import]", "shell_cmd": "rake run[csv_import]",},
// {"name": "rake run[custom_config]", "shell_cmd": "rake run[custom_config]",},

Loading…
Cancel
Save