text2path 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/README.md +11 -1
  4. data/lib/text2path/glyph.rb +1 -3
  5. data/lib/text2path/svg_font.rb +13 -3
  6. data/lib/text2path/version.rb +1 -1
  7. metadata +2 -47
  8. data/lib/ext/savage/LICENSE +0 -20
  9. data/lib/ext/savage/README.rdoc +0 -108
  10. data/lib/ext/savage/Rakefile +0 -39
  11. data/lib/ext/savage/VERSION +0 -1
  12. data/lib/ext/savage/lib/savage.rb +0 -3
  13. data/lib/ext/savage/lib/savage/direction.rb +0 -42
  14. data/lib/ext/savage/lib/savage/direction_proxy.rb +0 -19
  15. data/lib/ext/savage/lib/savage/directions/arc_to.rb +0 -29
  16. data/lib/ext/savage/lib/savage/directions/close_path.rb +0 -18
  17. data/lib/ext/savage/lib/savage/directions/coordinate_target.rb +0 -17
  18. data/lib/ext/savage/lib/savage/directions/cubic_curve_to.rb +0 -40
  19. data/lib/ext/savage/lib/savage/directions/horizontal_to.rb +0 -19
  20. data/lib/ext/savage/lib/savage/directions/line_to.rb +0 -15
  21. data/lib/ext/savage/lib/savage/directions/move_to.rb +0 -15
  22. data/lib/ext/savage/lib/savage/directions/point_target.rb +0 -17
  23. data/lib/ext/savage/lib/savage/directions/quadratic_curve_to.rb +0 -44
  24. data/lib/ext/savage/lib/savage/directions/vertical_to.rb +0 -19
  25. data/lib/ext/savage/lib/savage/parser.rb +0 -108
  26. data/lib/ext/savage/lib/savage/path.rb +0 -50
  27. data/lib/ext/savage/lib/savage/sub_path.rb +0 -54
  28. data/lib/ext/savage/lib/savage/transformable.rb +0 -48
  29. data/lib/ext/savage/lib/savage/utils.rb +0 -7
  30. data/lib/ext/savage/savage.gemspec +0 -80
  31. data/lib/ext/savage/spec/savage/directions/arc_to_spec.rb +0 -97
  32. data/lib/ext/savage/spec/savage/directions/close_path_spec.rb +0 -30
  33. data/lib/ext/savage/spec/savage/directions/cubic_curve_to_spec.rb +0 -146
  34. data/lib/ext/savage/spec/savage/directions/horizontal_to_spec.rb +0 -10
  35. data/lib/ext/savage/spec/savage/directions/line_to_spec.rb +0 -10
  36. data/lib/ext/savage/spec/savage/directions/move_to_spec.rb +0 -10
  37. data/lib/ext/savage/spec/savage/directions/point_spec.rb +0 -12
  38. data/lib/ext/savage/spec/savage/directions/quadratic_curve_spec.rb +0 -123
  39. data/lib/ext/savage/spec/savage/directions/vertical_to_spec.rb +0 -10
  40. data/lib/ext/savage/spec/savage/parser_spec.rb +0 -250
  41. data/lib/ext/savage/spec/savage/path_spec.rb +0 -105
  42. data/lib/ext/savage/spec/savage/sub_path_spec.rb +0 -195
  43. data/lib/ext/savage/spec/savage/transformable_spec.rb +0 -62
  44. data/lib/ext/savage/spec/savage_spec.rb +0 -5
  45. data/lib/ext/savage/spec/shared/command.rb +0 -13
  46. data/lib/ext/savage/spec/shared/coordinate_target.rb +0 -36
  47. data/lib/ext/savage/spec/shared/direction.rb +0 -29
  48. data/lib/ext/savage/spec/shared/point_target.rb +0 -45
  49. data/lib/ext/savage/spec/spec_helper.rb +0 -36
  50. data/libpeerconnection.log +0 -0
  51. data/out.svg +0 -1
  52. data/test.rb +0 -6
@@ -1,62 +0,0 @@
1
- require_relative '../spec_helper'
2
-
3
- include Savage
4
-
5
- describe Transformable do
6
- it 'should apply to Path, SubPath and Direction' do
7
- [Path, SubPath, Direction, Directions::LineTo].each do |cls|
8
- expect(cls.ancestors).to include(Transformable)
9
- expect(cls.public_instance_methods).to include(:transform)
10
- end
11
- end
12
-
13
- describe Path do
14
- it 'should transfrom subpaths recursively' do
15
- path = Parser.parse('M 0 100 L 100 200 L 200 200 H 30 M 0 100 Z')
16
- path.translate( 100, -135 )
17
- path.subpaths.first.to_command.should == "M100-35 200 65 300 65H130"
18
- path.subpaths[1].to_command.should == "M100-35Z"
19
- end
20
- end
21
-
22
- describe SubPath do
23
- it 'should transfrom subpaths recursively' do
24
- path = Parser.parse('M 0 100 L 100 200 L 200 200 H 30 M 0 100 Z')
25
- subpath = path.subpaths.first
26
- subpath.translate( 10, 15 )
27
- subpath.directions.first.to_command.should == "M10 115"
28
- subpath.directions[1].to_command.should == "L110 215"
29
- subpath.directions[2].to_command.should == "L210 215"
30
- subpath.directions[3].to_command.should == "H40"
31
- end
32
- end
33
-
34
- describe Directions::LineTo do
35
- it 'could be translate' do
36
- x, y = 50, 80
37
- dir = Directions::LineTo.new(x, y)
38
- dir.translate( 130, 601 )
39
- dir.target.x.should == 180
40
- dir.target.y.should == 681
41
- end
42
-
43
- it 'should ignore translating if relative' do
44
- x, y = 50, 80
45
- dir = Directions::LineTo.new(x, y, false)
46
- dir.translate( 130, 601 )
47
- # notice: not changed
48
- dir.target.x.should == 50
49
- dir.target.y.should == 80
50
- end
51
-
52
- it 'could be rotated' do
53
- x, y = 50, 80
54
- dir = Directions::LineTo.new(x, y)
55
- dir.rotate(90)
56
- dir.target.x.should == 80
57
- dir.target.y.round.should == -50
58
- end
59
- end
60
- end
61
-
62
-
@@ -1,5 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe Savage do
4
-
5
- end
@@ -1,13 +0,0 @@
1
- module Command
2
- def extract_coordinates(command_string)
3
- coordinates = []
4
- command_string.scan /-?\d+(\.\d+)?/ do |match_group|
5
- coordinates << $&.to_f
6
- end
7
- coordinates
8
- end
9
-
10
- def extract_command(command_string)
11
- command_string[0,1]
12
- end
13
- end
@@ -1,36 +0,0 @@
1
- shared_examples 'CoordinateTarget' do
2
- before :each do
3
- @dir = dir_class.new(100)
4
- end
5
- include Command
6
- it_behaves_like 'Direction'
7
- it 'should have an accessible target, based on the constructor argument' do
8
- @dir.respond_to?(:target).should == true
9
- @dir.target.should == 100
10
- end
11
- it 'should be constructed with at least a target parameter' do
12
- lambda { dir_class.new }.should raise_error
13
- lambda { dir_class.new 45 }.should_not raise_error
14
- lambda { dir_class.new 45, true }.should_not raise_error
15
- end
16
- it 'should be relative if constructed with a false third parameter' do
17
- direction = dir_class.new(45, false)
18
- direction.absolute?.should == false
19
- end
20
- it 'should be absolute if constructed with a true third parameter' do
21
- direction = dir_class.new(45, true)
22
- direction.absolute?.should == true
23
- end
24
- it 'should be absolute if constructed with only two parameters' do
25
- direction = dir_class.new(45)
26
- direction.absolute?.should == true
27
- end
28
- describe '#to_command' do
29
- it 'should have exactly 1 numerical parameter' do
30
- extract_coordinates(@dir.to_command).length.should == 1
31
- end
32
- it 'should show the provided X value as the next parameter' do
33
- extract_coordinates(@dir.to_command)[0].should == 100
34
- end
35
- end
36
- end
@@ -1,29 +0,0 @@
1
- shared_examples "Direction" do
2
- include Command
3
- it 'should have a to_command method' do
4
- @dir.respond_to?(:to_command).should == true
5
- end
6
- it 'should have an absolute? method' do
7
- @dir.respond_to?(:absolute?).should == true
8
- end
9
- it 'should have a command_code method' do
10
- @dir.respond_to?(:command_code).should == true
11
- end
12
- describe '#to_command' do
13
- it "should start with the command\'s command code" do
14
- @dir.to_command[0,1].should == @dir.command_code
15
- end
16
- it 'should only have one alphabetical command code' do
17
- @dir.to_command.match(/[A-Za-z]/).size.should == 1
18
- end
19
- end
20
- describe '#command_code' do
21
- it 'should start with a lower-case letter when not absolute' do
22
- rel_dir = create_relative
23
- rel_dir.command_code.should == command_code.downcase
24
- end
25
- it 'should start with a capital letter when absolute' do
26
- @dir.command_code.should == command_code.upcase
27
- end
28
- end
29
- end
@@ -1,45 +0,0 @@
1
- shared_examples_for 'PointTarget' do
2
- before :each do
3
- @dir = dir_class.new(100,200)
4
- end
5
- include Command
6
- it_behaves_like 'Direction'
7
- it 'should have a target' do
8
- @dir.respond_to?(:target).should == true
9
- @dir.target.class.should == Point
10
- end
11
- it 'should have an accessible target x, based on the constructor argument' do
12
- @dir.target.x.should == 100
13
- end
14
- it 'should have an accessible target y, based on the constructor argument' do
15
- @dir.target.y.should == 200
16
- end
17
- it 'should be constructed with at least an x and y parameter' do
18
- lambda { dir_class.new }.should raise_error
19
- lambda { dir_class.new 45 }.should raise_error
20
- lambda { dir_class.new 45, 50 }.should_not raise_error
21
- end
22
- it 'should be relative if constructed with a false third parameter' do
23
- direction = dir_class.new(45, 50, false)
24
- direction.absolute?.should == false
25
- end
26
- it 'should be absolute if constructed with a true third parameter' do
27
- direction = dir_class.new(45, 50, true)
28
- direction.absolute?.should == true
29
- end
30
- it 'should be absolute if constructed with only two parameters' do
31
- direction = dir_class.new(45, 45)
32
- direction.absolute?.should == true
33
- end
34
- describe '#to_command' do
35
- it 'should have exactly 2 numerical parameters' do
36
- extract_coordinates(@dir.to_command).length.should == 2
37
- end
38
- it 'should show the provided X value as the next parameter' do
39
- extract_coordinates(@dir.to_command)[0].should == 100
40
- end
41
- it 'should show the provided Y value as the final parameter' do
42
- extract_coordinates(@dir.to_command)[1].should == 200
43
- end
44
- end
45
- end
@@ -1,36 +0,0 @@
1
- require 'rubygems'
2
- require 'spork'
3
-
4
- Spork.prefork do
5
- # Loading more in this block will cause your tests to run faster. However,
6
- # if you change any configuration or code from libraries loaded here, you'll
7
- # need to restart spork for it take effect.
8
- $LOAD_PATH.unshift(File.dirname(__FILE__))
9
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
10
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'shared'))
11
-
12
- require 'savage'
13
- require 'rspec'
14
- require 'rspec/autorun'
15
- RSpec.configure do |config|
16
-
17
- end
18
-
19
- Dir[File.join(File.dirname(__FILE__) << '/shared', "*.rb")].each {|file| require File.basename(file) }
20
- end
21
-
22
- Spork.each_run do
23
- # This code will be run each time you run your specs.
24
-
25
- end
26
-
27
- # --- Instructions ---
28
- # - Sort through your spec_helper file. Place as much environment loading
29
- # code that you don't normally modify during development in the
30
- # Spork.prefork block.
31
- # - Place the rest under Spork.each_run block
32
- # - Any code that is left outside of the blocks will be ran during preforking
33
- # and during each_run!
34
- # - These instructions should self-destruct in 10 seconds. If they don't,
35
- # feel free to delete them.
36
- #
File without changes
data/out.svg DELETED
@@ -1 +0,0 @@
1
- [#<Savage::Path:0x00000002c95bb0 @subpaths=[#<Savage::SubPath:0x00000002c95700 @directions=[#<Savage::Directions::MoveTo:0x00000002c7baf8 @target=#<struct Savage::Directions::Point x=24.609375, y=48.046875>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c7ab30 @target=25.390625, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c794b0 @control=#<struct Savage::Directions::Point x=29.1015625, y=48.2421875>, @target=#<struct Savage::Directions::Point x=29.1015625, y=44.140625>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c77d18 @target=35.3515625, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c770e8 @target=12.5, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c76378 @target=44.3359375, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c751a8 @control=#<struct Savage::Directions::Point x=12.3046875, y=48.2421875>, @target=#<struct Savage::Directions::Point x=16.40625, y=48.046875>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c74398 @target=17.1875, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c73790 @target=50.0, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c72b88 @target=1.171875, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c71ff8 @target=48.046875, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c711c0 @target=1.953125, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c70180 @control=#<struct Savage::Directions::Point x=5.6640625, y=48.2421875>, @target=#<struct Savage::Directions::Point x=5.6640625, y=44.3359375>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c43338 @target=24.4140625, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c42348 @control=#<struct Savage::Directions::Point x=5.6640625, y=20.8984375>, @target=#<struct Savage::Directions::Point x=1.953125, y=20.8984375>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c41560 @target=1.171875, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c40868 @target=18.9453125, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c3fb98 @target=17.1875, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c3eea0 @target=20.8984375, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c3e310 @target=16.40625, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c3d118 @control=#<struct Savage::Directions::Point x=12.3046875, y=20.8984375>, @target=#<struct Savage::Directions::Point x=12.5, y=24.4140625>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c3c380 @target=32.421875, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c376f0 @target=29.1015625, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c36ac0 @target=24.609375, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c35940 @control=#<struct Savage::Directions::Point x=29.1015625, y=20.8984375>, @target=#<struct Savage::Directions::Point x=25.0, y=20.8984375>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c34ab8 @target=24.609375, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c5fb00 @target=18.9453125, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c5e7f0 @target=40.625, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c5db48 @target=20.8984375, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c5d030 @target=39.6484375, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c27ea8 @control=#<struct Savage::Directions::Point x=35.7421875, y=20.8984375>, @target=#<struct Savage::Directions::Point x=35.9375, y=24.4140625>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c27228 @target=44.3359375, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c254a0 @control=#<struct Savage::Directions::Point x=35.7421875, y=48.2421875>, @target=#<struct Savage::Directions::Point x=39.84375, y=48.046875>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c23830 @target=40.625, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c22c28 @target=50.0, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c22070 @target=24.609375, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c213f0 @target=48.046875, @absolute=true>, #<Savage::Directions::ClosePath:0x00000002c20c98 @absolute=true>]>]>, #<Savage::Path:0x00000002c1fdc0 @subpaths=[#<Savage::SubPath:0x00000002c1f820 @directions=[#<Savage::Directions::MoveTo:0x00000002c1eb00 @target=#<struct Savage::Directions::Point x=62.3046875, y=43.1640625>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002c1dc00 @target=#<struct Savage::Directions::Point x=63.4765625, y=44.140625>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c1c968 @control=#<struct Savage::Directions::Point x=59.1796875, y=50.0>, @target=#<struct Savage::Directions::Point x=52.9296875, y=50.1953125>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c1b658 @control=#<struct Savage::Directions::Point x=44.140625, y=50.0>, @target=#<struct Savage::Directions::Point x=43.75, y=40.234375>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c1a3c0 @control=#<struct Savage::Directions::Point x=44.3359375, y=29.8828125>, @target=#<struct Savage::Directions::Point x=54.4921875, y=29.1015625>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c191a0 @control=#<struct Savage::Directions::Point x=58.203125, y=29.1015625>, @target=#<struct Savage::Directions::Point x=60.7421875, y=31.4453125>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c13e58 @control=#<struct Savage::Directions::Point x=62.3046875, y=33.203125>, @target=#<struct Savage::Directions::Point x=62.890625, y=35.9375>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c12cb0 @control=#<struct Savage::Directions::Point x=63.0859375, y=37.6953125>, @target=#<struct Savage::Directions::Point x=64.0625, y=38.0859375>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c11f18 @target=39.453125, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c11360 @target=50.1953125, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c10370 @control=#<struct Savage::Directions::Point x=51.171875, y=46.2890625>, @target=#<struct Savage::Directions::Point x=56.25, y=46.875>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c0eef8 @control=#<struct Savage::Directions::Point x=58.7890625, y=47.0703125>, @target=#<struct Savage::Directions::Point x=62.3046875, y=43.1640625>, @absolute=true>, #<Savage::Directions::ClosePath:0x00000002c0e610 @absolute=true>]>, #<Savage::SubPath:0x00000002c0e3e0 @directions=[#<Savage::Directions::MoveTo:0x00000002c0d3a0 @target=#<struct Savage::Directions::Point x=50.0, y=37.6953125>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002c0c540 @target=57.03125, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c0b258 @control=#<struct Savage::Directions::Point x=56.8359375, y=31.8359375>, @target=#<struct Savage::Directions::Point x=53.515625, y=31.4453125>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c09ed0 @control=#<struct Savage::Directions::Point x=49.609375, y=32.2265625>, @target=#<struct Savage::Directions::Point x=50.0, y=37.6953125>, @absolute=true>, #<Savage::Directions::ClosePath:0x00000002c094a8 @absolute=true>]>]>, #<Savage::Path:0x00000002c080f8 @subpaths=[#<Savage::SubPath:0x00000002c07bf8 @directions=[#<Savage::Directions::MoveTo:0x00000002c06f00 @target=#<struct Savage::Directions::Point x=75.1953125, y=16.6015625>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c060c8 @target=44.921875, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002c04ed0 @control=#<struct Savage::Directions::Point x=75.0, y=48.6328125>, @target=#<struct Savage::Directions::Point x=78.125, y=48.4375>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002c04098 @target=50.0, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002bff318 @target=65.8203125, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002bfe788 @target=48.4375, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002bfdb80 @target=66.2109375, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002bfca78 @control=#<struct Savage::Directions::Point x=69.140625, y=48.6328125>, @target=#<struct Savage::Directions::Point x=69.140625, y=44.921875>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002bfbd58 @target=24.21875, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002bfad68 @control=#<struct Savage::Directions::Point x=69.3359375, y=21.484375>, @target=#<struct Savage::Directions::Point x=67.7734375, y=21.2890625>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002bf9e18 @target=#<struct Savage::Directions::Point x=65.625, y=20.5078125>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002bf91c0 @target=19.140625, @absolute=true>, #<Savage::Directions::LineTo:0x00000002bf84c8 @target=#<struct Savage::Directions::Point x=74.21875, y=16.6015625>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002bf77f8 @target=75.1953125, @absolute=true>, #<Savage::Directions::ClosePath:0x00000002bf7168 @absolute=true>]>]>, #<Savage::Path:0x00000002bf67b8 @subpaths=[#<Savage::SubPath:0x00000002bf6380 @directions=[#<Savage::Directions::MoveTo:0x00000002bf5570 @target=#<struct Savage::Directions::Point x=88.671875, y=16.6015625>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002bf4850 @target=44.921875, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002bef5d0 @control=#<struct Savage::Directions::Point x=88.4765625, y=48.6328125>, @target=#<struct Savage::Directions::Point x=91.6015625, y=48.4375>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002bee6a8 @target=50.0, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002bed2d0 @target=79.296875, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002bec768 @target=48.4375, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002bd7a20 @target=79.6875, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002bd6800 @control=#<struct Savage::Directions::Point x=82.6171875, y=48.6328125>, @target=#<struct Savage::Directions::Point x=82.6171875, y=44.921875>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002bd5450 @target=24.21875, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002bd3f88 @control=#<struct Savage::Directions::Point x=82.8125, y=21.484375>, @target=#<struct Savage::Directions::Point x=81.25, y=21.2890625>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002bd2e30 @target=#<struct Savage::Directions::Point x=79.1015625, y=20.5078125>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002bd20c0 @target=19.140625, @absolute=true>, #<Savage::Directions::LineTo:0x00000002bd0fe0 @target=#<struct Savage::Directions::Point x=87.6953125, y=16.6015625>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002bd0360 @target=88.671875, @absolute=true>, #<Savage::Directions::ClosePath:0x00000002bcfaf0 @absolute=true>]>]>, #<Savage::Path:0x00000002bcec40 @subpaths=[#<Savage::SubPath:0x00000002bce7e0 @directions=[#<Savage::Directions::MoveTo:0x00000002bcd750 @target=#<struct Savage::Directions::Point x=94.53125, y=40.0390625>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002bcc3f0 @control=#<struct Savage::Directions::Point x=95.3125, y=30.078125>, @target=#<struct Savage::Directions::Point x=107.03125, y=29.1015625>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002bba150 @control=#<struct Savage::Directions::Point x=118.1640625, y=29.8828125>, @target=#<struct Savage::Directions::Point x=118.9453125, y=39.453125>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002bb8d28 @control=#<struct Savage::Directions::Point x=117.96875, y=49.609375>, @target=#<struct Savage::Directions::Point x=106.25, y=50.1953125>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002bb79a0 @control=#<struct Savage::Directions::Point x=95.1171875, y=50.0>, @target=#<struct Savage::Directions::Point x=94.53125, y=40.0390625>, @absolute=true>, #<Savage::Directions::ClosePath:0x00000002bb6ff0 @absolute=true>]>, #<Savage::SubPath:0x00000002bb6fa0 @directions=[#<Savage::Directions::MoveTo:0x00000002bb5f38 @target=#<struct Savage::Directions::Point x=101.171875, y=37.109375>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002bb4d40 @control=#<struct Savage::Directions::Point x=101.7578125, y=48.046875>, @target=#<struct Savage::Directions::Point x=107.8125, y=48.4375>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002baf778 @control=#<struct Savage::Directions::Point x=112.109375, y=48.2421875>, @target=#<struct Savage::Directions::Point x=112.3046875, y=42.1875>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002bae2b0 @control=#<struct Savage::Directions::Point x=111.71875, y=32.03125>, @target=#<struct Savage::Directions::Point x=105.859375, y=31.25>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002baced8 @control=#<struct Savage::Directions::Point x=101.171875, y=31.4453125>, @target=#<struct Savage::Directions::Point x=101.171875, y=37.109375>, @absolute=true>, #<Savage::Directions::ClosePath:0x00000002bac528 @absolute=true>]>]>, #<Savage::Path:0x00000002b7b2c0 @subpaths=[#<Savage::SubPath:0x00000002b7ae10 @directions=[#<Savage::Directions::MoveTo:0x00000002b7a0c8 @target=#<struct Savage::Directions::Point x=125.1953125, y=56.8359375>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002b786b0 @target=#<struct Savage::Directions::Point x=124.8046875, y=54.8828125>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b6da58 @control=#<struct Savage::Directions::Point x=129.8828125, y=53.90625>, @target=#<struct Savage::Directions::Point x=130.2734375, y=50.5859375>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b56150 @control=#<struct Savage::Directions::Point x=130.2734375, y=50.0>, @target=#<struct Savage::Directions::Point x=128.7109375, y=50.0>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b4eb30 @control=#<struct Savage::Directions::Point x=128.125, y=50.0>, @target=#<struct Savage::Directions::Point x=127.9296875, y=50.0>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b49ec8 @control=#<struct Savage::Directions::Point x=124.0234375, y=50.0>, @target=#<struct Savage::Directions::Point x=124.0234375, y=47.0703125>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b3b968 @control=#<struct Savage::Directions::Point x=124.21875, y=43.9453125>, @target=#<struct Savage::Directions::Point x=127.9296875, y=43.75>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b39eb0 @control=#<struct Savage::Directions::Point x=133.0078125, y=44.140625>, @target=#<struct Savage::Directions::Point x=133.3984375, y=49.609375>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b383f8 @control=#<struct Savage::Directions::Point x=132.6171875, y=56.4453125>, @target=#<struct Savage::Directions::Point x=125.1953125, y=56.8359375>, @absolute=true>, #<Savage::Directions::ClosePath:0x00000002b378e0 @absolute=true>]>]>, #<Savage::Path:0x00000002b36490 @subpaths=[#<Savage::SubPath:0x00000002b35f68 @directions=[#<Savage::Directions::MoveTo:0x00000002b34be0 @target=#<struct Savage::Directions::Point x=164.0625, y=50.0>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002b33650 @target=#<struct Savage::Directions::Point x=157.2265625, y=34.1796875>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b31ee0 @control=#<struct Savage::Directions::Point x=155.859375, y=31.25>, @target=#<struct Savage::Directions::Point x=153.3203125, y=31.25>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002b30ab8 @target=29.6875, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002b2f7a8 @target=165.234375, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002b2e650 @target=31.25, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b2ceb8 @control=#<struct Savage::Directions::Point x=162.5, y=31.4453125>, @target=#<struct Savage::Directions::Point x=163.671875, y=33.7890625>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002b2b900 @target=#<struct Savage::Directions::Point x=167.578125, y=43.359375>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002b2a640 @target=#<struct Savage::Directions::Point x=171.484375, y=34.375>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b28e30 @control=#<struct Savage::Directions::Point x=170.5078125, y=31.0546875>, @target=#<struct Savage::Directions::Point x=168.359375, y=31.25>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002b27a80 @target=29.6875, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002b26a18 @target=179.6875, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002b25870 @target=31.25, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b24178 @control=#<struct Savage::Directions::Point x=176.5625, y=31.25>, @target=#<struct Savage::Directions::Point x=177.9296875, y=34.1796875>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002b22c10 @target=#<struct Savage::Directions::Point x=181.640625, y=43.359375>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002b218d8 @target=#<struct Savage::Directions::Point x=185.15625, y=34.765625>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b20190 @control=#<struct Savage::Directions::Point x=186.328125, y=31.4453125>, @target=#<struct Savage::Directions::Point x=182.8125, y=31.25>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002b1af60 @target=29.6875, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002b19e30 @target=191.9921875, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002b18c10 @target=31.25, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b172e8 @control=#<struct Savage::Directions::Point x=188.671875, y=31.25>, @target=#<struct Savage::Directions::Point x=187.5, y=35.546875>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002b15ce0 @target=#<struct Savage::Directions::Point x=181.0546875, y=50.0>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002b14b88 @target=178.3203125, @absolute=true>, #<Savage::Directions::LineTo:0x00000002b137d8 @target=#<struct Savage::Directions::Point x=172.8515625, y=37.3046875>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002b12298 @target=#<struct Savage::Directions::Point x=166.796875, y=50.0>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002b10fb0 @target=164.0625, @absolute=true>, #<Savage::Directions::ClosePath:0x00000002b105b0 @absolute=true>]>]>, #<Savage::Path:0x00000002b0ed28 @subpaths=[#<Savage::SubPath:0x00000002b0e6e8 @directions=[#<Savage::Directions::MoveTo:0x00000002b0d360 @target=#<struct Savage::Directions::Point x=194.140625, y=40.0390625>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b07898 @control=#<struct Savage::Directions::Point x=194.921875, y=30.078125>, @target=#<struct Savage::Directions::Point x=206.640625, y=29.1015625>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b05d18 @control=#<struct Savage::Directions::Point x=217.7734375, y=29.8828125>, @target=#<struct Savage::Directions::Point x=218.5546875, y=39.453125>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b04080 @control=#<struct Savage::Directions::Point x=217.578125, y=49.609375>, @target=#<struct Savage::Directions::Point x=205.859375, y=50.1953125>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002b02668 @control=#<struct Savage::Directions::Point x=194.7265625, y=50.0>, @target=#<struct Savage::Directions::Point x=194.140625, y=40.0390625>, @absolute=true>, #<Savage::Directions::ClosePath:0x00000002b01948 @absolute=true>]>, #<Savage::SubPath:0x00000002b01880 @directions=[#<Savage::Directions::MoveTo:0x00000002afbb10 @target=#<struct Savage::Directions::Point x=200.78125, y=37.109375>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002af9d60 @control=#<struct Savage::Directions::Point x=201.3671875, y=48.046875>, @target=#<struct Savage::Directions::Point x=207.421875, y=48.4375>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002af8370 @control=#<struct Savage::Directions::Point x=211.71875, y=48.2421875>, @target=#<struct Savage::Directions::Point x=211.9140625, y=42.1875>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002aedfb0 @control=#<struct Savage::Directions::Point x=211.328125, y=32.03125>, @target=#<struct Savage::Directions::Point x=205.46875, y=31.25>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002adffa0 @control=#<struct Savage::Directions::Point x=200.78125, y=31.4453125>, @target=#<struct Savage::Directions::Point x=200.78125, y=37.109375>, @absolute=true>, #<Savage::Directions::ClosePath:0x00000002adf280 @absolute=true>]>]>, #<Savage::Path:0x00000002addb60 @subpaths=[#<Savage::SubPath:0x00000002adcf58 @directions=[#<Savage::Directions::MoveTo:0x00000002ad36d8 @target=#<struct Savage::Directions::Point x=235.546875, y=48.4375>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002ad1b30 @target=50.0, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002ac7f90 @target=221.6796875, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002ac5fb0 @target=48.4375, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002ac4f48 @target=221.875, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002ab34a0 @control=#<struct Savage::Directions::Point x=224.8046875, y=48.6328125>, @target=#<struct Savage::Directions::Point x=224.8046875, y=44.921875>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002ab2190 @target=36.71875, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002aabde0 @control=#<struct Savage::Directions::Point x=224.8046875, y=33.984375>, @target=#<struct Savage::Directions::Point x=223.046875, y=33.3984375>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002aaa850 @target=#<struct Savage::Directions::Point x=221.6796875, y=32.8125>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002aa9568 @target=31.640625, @absolute=true>, #<Savage::Directions::LineTo:0x00000002aa8230 @target=#<struct Savage::Directions::Point x=229.8828125, y=28.515625>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002aa6cc8 @target=230.859375, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002aa5cd8 @target=34.1796875, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002aa4a68 @target=231.0546875, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002a96f80 @control=#<struct Savage::Directions::Point x=233.3984375, y=28.7109375>, @target=#<struct Savage::Directions::Point x=235.3515625, y=29.1015625>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002a94bb8 @control=#<struct Savage::Directions::Point x=235.9375, y=29.1015625>, @target=#<struct Savage::Directions::Point x=236.328125, y=29.296875>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002a8f7a8 @target=#<struct Savage::Directions::Point x=240.234375, y=30.6640625>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002a8cf08 @control=#<struct Savage::Directions::Point x=239.2578125, y=33.984375>, @target=#<struct Savage::Directions::Point x=237.890625, y=35.9375>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002a7f308 @control=#<struct Savage::Directions::Point x=234.765625, y=34.9609375>, @target=#<struct Savage::Directions::Point x=233.7890625, y=34.765625>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002a7d8f0 @control=#<struct Savage::Directions::Point x=232.421875, y=34.765625>, @target=#<struct Savage::Directions::Point x=230.859375, y=36.9140625>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002a7c1a8 @target=45.1171875, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002a72090 @control=#<struct Savage::Directions::Point x=230.6640625, y=48.6328125>, @target=#<struct Savage::Directions::Point x=234.1796875, y=48.4375>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002a67de8 @target=235.546875, @absolute=true>, #<Savage::Directions::ClosePath:0x00000002a67348 @absolute=true>]>]>, #<Savage::Path:0x00000002a652f0 @subpaths=[#<Savage::SubPath:0x00000002a64dc8 @directions=[#<Savage::Directions::MoveTo:0x00000002a57470 @target=#<struct Savage::Directions::Point x=250.0, y=16.6015625>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002a55968 @target=44.921875, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002a4f5e0 @control=#<struct Savage::Directions::Point x=249.8046875, y=48.6328125>, @target=#<struct Savage::Directions::Point x=252.9296875, y=48.4375>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002a4e168 @target=50.0, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002a4ce80 @target=240.625, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002a37b98 @target=48.4375, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002a36950 @target=241.015625, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x0000000230fed8 @control=#<struct Savage::Directions::Point x=243.9453125, y=48.6328125>, @target=#<struct Savage::Directions::Point x=243.9453125, y=44.921875>, @absolute=true>, #<Savage::Directions::VerticalTo:0x0000000230d200 @target=24.21875, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x0000000290ad38 @control=#<struct Savage::Directions::Point x=244.140625, y=21.484375>, @target=#<struct Savage::Directions::Point x=242.578125, y=21.2890625>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002907bb0 @target=#<struct Savage::Directions::Point x=240.4296875, y=20.5078125>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002905298 @target=19.140625, @absolute=true>, #<Savage::Directions::LineTo:0x000000028fb310 @target=#<struct Savage::Directions::Point x=249.0234375, y=16.6015625>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x000000028f8fe8 @target=250.0, @absolute=true>, #<Savage::Directions::ClosePath:0x000000028ef380 @absolute=true>]>]>, #<Savage::Path:0x000000028ed4e0 @subpaths=[#<Savage::SubPath:0x000000028ec630 @directions=[#<Savage::Directions::MoveTo:0x000000028e4de0 @target=#<struct Savage::Directions::Point x=272.0703125, y=50.1953125>, @absolute=true>, #<Savage::Directions::VerticalTo:0x000000028de6c0 @target=46.484375, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x000000028ce090 @control=#<struct Savage::Directions::Point x=267.578125, y=50.1953125>, @target=#<struct Savage::Directions::Point x=263.8671875, y=50.1953125>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x000000028b7458 @control=#<struct Savage::Directions::Point x=256.25, y=50.0>, @target=#<struct Savage::Directions::Point x=255.859375, y=41.015625>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x000000028aca58 @control=#<struct Savage::Directions::Point x=256.640625, y=29.6875>, @target=#<struct Savage::Directions::Point x=267.578125, y=29.1015625>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x000000028a0dc0 @control=#<struct Savage::Directions::Point x=269.7265625, y=29.1015625>, @target=#<struct Savage::Directions::Point x=272.0703125, y=29.6875>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002898238 @target=23.2421875, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002879bf8 @control=#<struct Savage::Directions::Point x=272.0703125, y=20.8984375>, @target=#<struct Savage::Directions::Point x=268.75, y=20.3125>, @absolute=true>, #<Savage::Directions::VerticalTo:0x000000028721c8 @target=19.140625, @absolute=true>, #<Savage::Directions::LineTo:0x00000002869f28 @target=#<struct Savage::Directions::Point x=276.3671875, y=16.6015625>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x000000028681f0 @target=278.125, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002849b38 @target=43.359375, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x0000000283d770 @control=#<struct Savage::Directions::Point x=277.9296875, y=47.4609375>, @target=#<struct Savage::Directions::Point x=280.078125, y=47.0703125>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002829130 @control=#<struct Savage::Directions::Point x=280.6640625, y=47.265625>, @target=#<struct Savage::Directions::Point x=281.640625, y=46.875>, @absolute=true>, #<Savage::Directions::VerticalTo:0x000000028213b8 @target=48.4375, @absolute=true>, #<Savage::Directions::LineTo:0x0000000281df88 @target=#<struct Savage::Directions::Point x=273.2421875, y=50.1953125>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x000000028193e8 @target=272.0703125, @absolute=true>, #<Savage::Directions::ClosePath:0x00000002818560 @absolute=true>]>, #<Savage::SubPath:0x000000028184e8 @directions=[#<Savage::Directions::MoveTo:0x00000002814ed8 @target=#<struct Savage::Directions::Point x=272.0703125, y=44.3359375>, @absolute=true>, #<Savage::Directions::VerticalTo:0x00000002805af0 @target=33.203125, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x000000028028f0 @control=#<struct Savage::Directions::Point x=269.3359375, y=31.0546875>, @target=#<struct Savage::Directions::Point x=267.1875, y=31.0546875>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x000000027fdd50 @control=#<struct Savage::Directions::Point x=261.9140625, y=31.4453125>, @target=#<struct Savage::Directions::Point x=261.9140625, y=38.4765625>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x000000027ea340 @control=#<struct Savage::Directions::Point x=262.109375, y=46.484375>, @target=#<struct Savage::Directions::Point x=267.578125, y=46.875>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x000000027e52c8 @control=#<struct Savage::Directions::Point x=269.7265625, y=46.875>, @target=#<struct Savage::Directions::Point x=272.0703125, y=44.3359375>, @absolute=true>, #<Savage::Directions::ClosePath:0x000000027d9b30 @absolute=true>]>]>, #<Savage::Path:0x000000027c6968 @subpaths=[#<Savage::SubPath:0x000000027c62d8 @directions=[#<Savage::Directions::MoveTo:0x000000027be8a8 @target=#<struct Savage::Directions::Point x=290.0390625, y=43.75>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x000000027b2968 @control=#<struct Savage::Directions::Point x=293.75, y=44.140625>, @target=#<struct Savage::Directions::Point x=294.140625, y=47.0703125>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x000000027a45c0 @control=#<struct Savage::Directions::Point x=293.75, y=50.0>, @target=#<struct Savage::Directions::Point x=290.0390625, y=50.1953125>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x0000000278b340 @control=#<struct Savage::Directions::Point x=286.1328125, y=50.0>, @target=#<struct Savage::Directions::Point x=285.9375, y=47.0703125>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002783cd0 @control=#<struct Savage::Directions::Point x=286.1328125, y=44.140625>, @target=#<struct Savage::Directions::Point x=290.0390625, y=43.75>, @absolute=true>, #<Savage::Directions::ClosePath:0x00000002781e80 @absolute=true>]>, #<Savage::SubPath:0x00000002781e08 @directions=[#<Savage::Directions::MoveTo:0x0000000277cf70 @target=#<struct Savage::Directions::Point x=290.8203125, y=38.8671875>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x00000002779e60 @target=289.2578125, @absolute=true>, #<Savage::Directions::LineTo:0x000000027760a8 @target=#<struct Savage::Directions::Point x=286.328125, y=20.1171875>, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x0000000276e2e0 @control=#<struct Savage::Directions::Point x=285.7421875, y=17.96875>, @target=#<struct Savage::Directions::Point x=287.6953125, y=18.1640625>, @absolute=true>, #<Savage::Directions::HorizontalTo:0x0000000276a988 @target=292.1875, @absolute=true>, #<Savage::Directions::QuadraticCurveTo:0x00000002765c80 @control=#<struct Savage::Directions::Point x=294.3359375, y=17.96875>, @target=#<struct Savage::Directions::Point x=293.75, y=20.1171875>, @absolute=true>, #<Savage::Directions::LineTo:0x00000002760938 @target=#<struct Savage::Directions::Point x=290.8203125, y=38.8671875>, @absolute=true>, #<Savage::Directions::ClosePath:0x0000000275f3a8 @absolute=true>]>]>]
data/test.rb DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require_relative 'lib/text2path'
4
-
5
- font = Text2Path::SvgFont.load( 'assets/fonts/fz_dabiaosong.svg' )
6
- p Text2Path.convert( "Hello, world!", font, font_size: 50 ).to_paths