Cleaner handling of SVG ID
parent
1c3b39b59d
commit
a40c4d7dc4
|
|
@ -20,7 +20,7 @@ module Squib
|
||||||
end
|
end
|
||||||
|
|
||||||
def validate_id(arg, _i)
|
def validate_id(arg, _i)
|
||||||
return nil if arg.nil?
|
return nil if arg.to_s.empty?
|
||||||
arg = '#' << arg unless arg.start_with? '#'
|
arg = '#' << arg unless arg.start_with? '#'
|
||||||
arg
|
arg
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ Squib::Deck.new(width: 825, height: 1125, cards: 1, config: 'load_images_config.
|
||||||
# but sometimes want to use none.
|
# but sometimes want to use none.
|
||||||
# e.g. id: [:attack, :defend, nil]
|
# e.g. id: [:attack, :defend, nil]
|
||||||
svg file: 'spanner.svg', width: :deck, height: :deck,
|
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
|
# Squib can handle incorrectly formatted svg files
|
||||||
svg file: 'bad-svg.svg'
|
svg file: 'bad-svg.svg'
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -350,16 +350,5 @@ cairo: set_source([ImageSurface, 650, 950])
|
||||||
cairo: set_source_color(["magenta"])
|
cairo: set_source_color(["magenta"])
|
||||||
cairo: mask([ImageSurface, 650, 950])
|
cairo: mask([ImageSurface, 650, 950])
|
||||||
cairo: restore([])
|
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: write_to_png(["_output/load_images_00.png"])
|
||||||
surface: finish([])
|
surface: finish([])
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue