text2path 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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