Browse Source

Cleaner handling of SVG ID

dev
Andy Meneely 7 years ago
parent
commit
a40c4d7dc4
  1. 2
      lib/squib/args/svg_special.rb
  2. 2
      samples/images/_more_load_images.rb
  3. 51
      spec/args/svg_special_spec.rb
  4. 11
      spec/data/samples/images/_more_load_images.rb.txt

2
lib/squib/args/svg_special.rb

@ -20,7 +20,7 @@ module Squib
end
def validate_id(arg, _i)
return nil if arg.nil?
return nil if arg.to_s.empty?
arg = '#' << arg unless arg.start_with? '#'
arg
end

2
samples/images/_more_load_images.rb

@ -93,7 +93,7 @@ Squib::Deck.new(width: 825, height: 1125, cards: 1, config: 'load_images_config.
# but sometimes want to use none.
# e.g. id: [:attack, :defend, nil]
svg file: 'spanner.svg', width: :deck, height: :deck,
force_id: true, id: '' # <-- the important part
force_id: true, id: nil # <-- the important part
# Squib can handle incorrectly formatted svg files
svg file: 'bad-svg.svg'

51
spec/args/svg_special_spec.rb

@ -0,0 +1,51 @@
require 'spec_helper'
require 'squib/args/box'
describe Squib::Args::SvgSpecial do
subject(:svgargs) { Squib::Args::SvgSpecial.new }
context :id do
it 'appends # to ids' do
args = { id: '123' }
svgargs.load!(args, expand_by: 1)
expect(svgargs).to have_attributes(id: ['#123'])
end
it 'does not appends # if one is there' do
args = { id: '#1234' }
svgargs.load!(args, expand_by: 1)
expect(svgargs).to have_attributes(id: ['#1234'])
end
it 'is nil if empty' do
args = { id: '' }
svgargs.load!(args, expand_by: 1)
expect(svgargs).to have_attributes(id: [nil])
end
it 'is nil if empty' do
args = { id: nil }
svgargs.load!(args, expand_by: 1)
expect(svgargs).to have_attributes(id: [nil])
end
end
context :force_id do
it 'makes render true sometimes' do
args = { id: '1', force_id: true }
svgargs.load!(args, expand_by: 1)
expect(svgargs.render?(0)).to be true
end
it 'makes render false sometimes' do
args = { id: '', force_id: true }
svgargs.load!(args, expand_by: 1)
expect(svgargs.render?(0)).to be false
end
end
end

11
spec/data/samples/images/_more_load_images.rb.txt

@ -350,16 +350,5 @@ cairo: set_source([ImageSurface, 650, 950])
cairo: set_source_color(["magenta"])
cairo: mask([ImageSurface, 650, 950])
cairo: restore([])
cairo: save([])
cairo: new_path([])
cairo: translate([0, 0])
cairo: transform([Matrix])
cairo: rotate([0])
cairo: scale([6.4453125, 8.7890625])
cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0])
cairo: clip([])
cairo: translate([0, 0])
cairo: render_rsvg_handle([Rsvg::Handle"#"}])
cairo: restore([])
surface: write_to_png(["_output/load_images_00.png"])
surface: finish([])

Loading…
Cancel
Save