fontcustom 1.2.0 → 1.3.0.beta
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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +16 -0
- data/CONTRIBUTING.md +35 -15
- data/TODO.md +20 -0
- data/lib/fontcustom.rb +11 -24
- data/lib/fontcustom/base.rb +56 -0
- data/lib/fontcustom/cli.rb +13 -12
- data/lib/fontcustom/generator/font.rb +63 -65
- data/lib/fontcustom/generator/template.rb +81 -52
- data/lib/fontcustom/manifest.rb +42 -0
- data/lib/fontcustom/options.rb +93 -80
- data/lib/fontcustom/scripts/generate.py +116 -127
- data/lib/fontcustom/templates/_fontcustom-rails.scss +13 -18
- data/lib/fontcustom/templates/_fontcustom.scss +10 -18
- data/lib/fontcustom/templates/fontcustom-preview.html +17 -24
- data/lib/fontcustom/templates/fontcustom.css +10 -18
- data/lib/fontcustom/templates/fontcustom.yml +3 -3
- data/lib/fontcustom/utility.rb +145 -0
- data/lib/fontcustom/version.rb +1 -1
- data/lib/fontcustom/watcher.rb +1 -1
- data/spec/fixtures/generators/.fontcustom-manifest-corrupted.json +12 -5
- data/spec/fixtures/generators/.fontcustom-manifest-empty.json +0 -0
- data/spec/fixtures/generators/.fontcustom-manifest.json +49 -14
- data/spec/fixtures/generators/mixed-output/fontcustom_82a59e769bc60192484f2620570bbb59.eot +0 -0
- data/spec/fixtures/generators/mixed-output/fontcustom_82a59e769bc60192484f2620570bbb59.svg +56 -0
- data/spec/fixtures/generators/mixed-output/fontcustom_82a59e769bc60192484f2620570bbb59.ttf +0 -0
- data/spec/fixtures/generators/mixed-output/fontcustom_82a59e769bc60192484f2620570bbb59.woff +0 -0
- data/spec/fixtures/sandbox/.gitkeep +0 -0
- data/spec/fontcustom/base_spec.rb +58 -0
- data/spec/fontcustom/cli_spec.rb +15 -0
- data/spec/fontcustom/generator/font_spec.rb +50 -220
- data/spec/fontcustom/generator/template_spec.rb +30 -194
- data/spec/fontcustom/generator/template_spec.rb.off +215 -0
- data/spec/fontcustom/manifest_spec.rb +16 -0
- data/spec/fontcustom/options_spec.rb +206 -208
- data/spec/fontcustom/utility_spec.rb +163 -0
- data/spec/fontcustom/{watcher_spec.rb → watcher_spec.rb.off} +0 -0
- data/spec/spec_helper.rb +77 -19
- metadata +44 -54
- data/lib/fontcustom/templates/_fontcustom-bootstrap-ie7.scss +0 -22
- data/lib/fontcustom/templates/_fontcustom-bootstrap.scss +0 -63
- data/lib/fontcustom/templates/fontcustom-bootstrap-ie7.css +0 -22
- data/lib/fontcustom/templates/fontcustom-bootstrap.css +0 -63
- data/lib/fontcustom/util.rb +0 -62
- data/spec/fixtures/generators/mixed-output/fontcustom_cc5ce52f2ae4f9ce2e7ee8131bbfee1e.eot +0 -0
- data/spec/fixtures/generators/mixed-output/fontcustom_cc5ce52f2ae4f9ce2e7ee8131bbfee1e.svg +0 -102
- data/spec/fixtures/generators/mixed-output/fontcustom_cc5ce52f2ae4f9ce2e7ee8131bbfee1e.ttf +0 -0
- data/spec/fixtures/generators/mixed-output/fontcustom_cc5ce52f2ae4f9ce2e7ee8131bbfee1e.woff +0 -0
- data/spec/fontcustom/util_spec.rb +0 -82
@@ -1,22 +0,0 @@
|
|
1
|
-
//
|
2
|
-
// Icon Font: <%= @opts.font_name %>
|
3
|
-
// Bootstrap IE7 Enabler
|
4
|
-
//
|
5
|
-
|
6
|
-
[class^="<%= @opts.css_prefix %>"],
|
7
|
-
[class*=" <%= @opts.css_prefix %>"] {
|
8
|
-
font-family: "<%= @opts.font_name %>";
|
9
|
-
font-style: normal;
|
10
|
-
font-weight: normal;
|
11
|
-
}
|
12
|
-
|
13
|
-
.btn.dropdown-toggle [class^="<%= @opts.css_prefix %>"],
|
14
|
-
.btn.dropdown-toggle [class*=" <%= @opts.css_prefix %>"] {
|
15
|
-
line-height: 1.4em;
|
16
|
-
}
|
17
|
-
|
18
|
-
.<%= @opts.css_prefix %>large {
|
19
|
-
font-size: 1.3333em;
|
20
|
-
}
|
21
|
-
<% @glyphs.each_with_index do |name, index| %>
|
22
|
-
.<%= @opts.css_prefix + name %> { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#x<%= (61696+index).to_s(16) %>; '); }<% end %>
|
@@ -1,63 +0,0 @@
|
|
1
|
-
//
|
2
|
-
// Icon Font: <%= @opts.font_name %>
|
3
|
-
// Bootstrap Override
|
4
|
-
//
|
5
|
-
|
6
|
-
@font-face {
|
7
|
-
font-family: "<%= @opts.font_name %>";
|
8
|
-
src: url("<%= @font_path_alt %>.eot");
|
9
|
-
src: url("<%= @font_path_alt %>.eot?#iefix") format("embedded-opentype"),
|
10
|
-
url("<%= @font_path_alt %>.woff") format("woff"),
|
11
|
-
url("<%= @font_path_alt %>.ttf") format("truetype"),
|
12
|
-
url("<%= @font_path_alt %>.svg#<%= @opts.font_name %>") format("svg");
|
13
|
-
font-weight: normal;
|
14
|
-
font-style: normal;
|
15
|
-
}
|
16
|
-
|
17
|
-
[class^="<%= @opts.css_prefix %>"]:before, [class*=" <%= @opts.css_prefix %>"]:before {
|
18
|
-
font-family: "<%= @opts.font_name %>";
|
19
|
-
font-weight: normal;
|
20
|
-
font-style: normal;
|
21
|
-
display: inline-block;
|
22
|
-
text-decoration: inherit;
|
23
|
-
}
|
24
|
-
|
25
|
-
a [class^="<%= @opts.css_prefix %>"], a [class*=" <%= @opts.css_prefix %>"] {
|
26
|
-
display: inline-block;
|
27
|
-
text-decoration: inherit;
|
28
|
-
}
|
29
|
-
|
30
|
-
.<%= @opts.css_prefix %>large:before {
|
31
|
-
vertical-align: top;
|
32
|
-
font-size: 1.333em;
|
33
|
-
}
|
34
|
-
|
35
|
-
.btn [class^="<%= @opts.css_prefix %>"], .btn [class*=" <%= @opts.css_prefix %>"] {
|
36
|
-
line-height: 0.9em;
|
37
|
-
}
|
38
|
-
|
39
|
-
li [class^="<%= @opts.css_prefix %>"], li [class*=" <%= @opts.css_prefix %>"] {
|
40
|
-
display: inline-block;
|
41
|
-
width: 1.25em;
|
42
|
-
text-align: center;
|
43
|
-
}
|
44
|
-
|
45
|
-
li .<%= @opts.css_prefix %>large[class^="<%= @opts.css_prefix %>"], li .<%= @opts.css_prefix %>large[class*=" <%= @opts.css_prefix %>"] {
|
46
|
-
width: 1.875em;
|
47
|
-
}
|
48
|
-
|
49
|
-
li[class^="<%= @opts.css_prefix %>"], li[class*=" <%= @opts.css_prefix %>"] {
|
50
|
-
margin-left: 0;
|
51
|
-
list-style-type: none;
|
52
|
-
}
|
53
|
-
|
54
|
-
li[class^="<%= @opts.css_prefix %>"]:before, li[class*=" <%= @opts.css_prefix %>"]:before {
|
55
|
-
text-indent: -2em;
|
56
|
-
text-align: center;
|
57
|
-
}
|
58
|
-
|
59
|
-
li[class^="<%= @opts.css_prefix %>"].<%= @opts.css_prefix %>large:before, li[class*=" <%= @opts.css_prefix %>"].<%= @opts.css_prefix %>large:before {
|
60
|
-
text-indent: -1.333em;
|
61
|
-
}
|
62
|
-
<% @glyphs.each_with_index do |name, index| %>
|
63
|
-
.<%= @opts.css_prefix + name %>:before { content: "\<%= (61696+index).to_s(16) %>"; }<% end %>
|
@@ -1,22 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Icon Font: <%= @opts.font_name %>
|
3
|
-
Bootstrap IE7 Enabler
|
4
|
-
*/
|
5
|
-
|
6
|
-
[class^="<%= @opts.css_prefix %>"],
|
7
|
-
[class*=" <%= @opts.css_prefix %>"] {
|
8
|
-
font-family: "<%= @opts.font_name %>";
|
9
|
-
font-style: normal;
|
10
|
-
font-weight: normal;
|
11
|
-
}
|
12
|
-
|
13
|
-
.btn.dropdown-toggle [class^="<%= @opts.css_prefix %>"],
|
14
|
-
.btn.dropdown-toggle [class*=" <%= @opts.css_prefix %>"] {
|
15
|
-
line-height: 1.4em;
|
16
|
-
}
|
17
|
-
|
18
|
-
.<%= @opts.css_prefix %>large {
|
19
|
-
font-size: 1.3333em;
|
20
|
-
}
|
21
|
-
<% @glyphs.each_with_index do |name, index| %>
|
22
|
-
.<%= @opts.css_prefix + name %> { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#x<%= (61696+index).to_s(16) %>; '); }<% end %>
|
@@ -1,63 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Icon Font: <%= @opts.font_name %>
|
3
|
-
Bootstrap Override
|
4
|
-
*/
|
5
|
-
|
6
|
-
@font-face {
|
7
|
-
font-family: "<%= @opts.font_name %>";
|
8
|
-
src: url("<%= @font_path %>.eot");
|
9
|
-
src: url("<%= @font_path %>.eot?#iefix") format("embedded-opentype"),
|
10
|
-
url("<%= @font_path %>.woff") format("woff"),
|
11
|
-
url("<%= @font_path %>.ttf") format("truetype"),
|
12
|
-
url("<%= @font_path %>.svg#<%= @opts.font_name %>") format("svg");
|
13
|
-
font-weight: normal;
|
14
|
-
font-style: normal;
|
15
|
-
}
|
16
|
-
|
17
|
-
[class^="<%= @opts.css_prefix %>"]:before, [class*=" <%= @opts.css_prefix %>"]:before {
|
18
|
-
font-family: "<%= @opts.font_name %>";
|
19
|
-
font-weight: normal;
|
20
|
-
font-style: normal;
|
21
|
-
display: inline-block;
|
22
|
-
text-decoration: inherit;
|
23
|
-
}
|
24
|
-
|
25
|
-
a [class^="<%= @opts.css_prefix %>"], a [class*=" <%= @opts.css_prefix %>"] {
|
26
|
-
display: inline-block;
|
27
|
-
text-decoration: inherit;
|
28
|
-
}
|
29
|
-
|
30
|
-
.<%= @opts.css_prefix %>large:before {
|
31
|
-
vertical-align: top;
|
32
|
-
font-size: 1.333em;
|
33
|
-
}
|
34
|
-
|
35
|
-
.btn [class^="<%= @opts.css_prefix %>"], .btn [class*=" <%= @opts.css_prefix %>"] {
|
36
|
-
line-height: 0.9em;
|
37
|
-
}
|
38
|
-
|
39
|
-
li [class^="<%= @opts.css_prefix %>"], li [class*=" <%= @opts.css_prefix %>"] {
|
40
|
-
display: inline-block;
|
41
|
-
width: 1.25em;
|
42
|
-
text-align: center;
|
43
|
-
}
|
44
|
-
|
45
|
-
li .<%= @opts.css_prefix %>large[class^="<%= @opts.css_prefix %>"], li .<%= @opts.css_prefix %>large[class*=" <%= @opts.css_prefix %>"] {
|
46
|
-
width: 1.875em;
|
47
|
-
}
|
48
|
-
|
49
|
-
li[class^="<%= @opts.css_prefix %>"], li[class*=" <%= @opts.css_prefix %>"] {
|
50
|
-
margin-left: 0;
|
51
|
-
list-style-type: none;
|
52
|
-
}
|
53
|
-
|
54
|
-
li[class^="<%= @opts.css_prefix %>"]:before, li[class*=" <%= @opts.css_prefix %>"]:before {
|
55
|
-
text-indent: -2em;
|
56
|
-
text-align: center;
|
57
|
-
}
|
58
|
-
|
59
|
-
li[class^="<%= @opts.css_prefix %>"].<%= @opts.css_prefix %>large:before, li[class*=" <%= @opts.css_prefix %>"].<%= @opts.css_prefix %>large:before {
|
60
|
-
text-indent: -1.333em;
|
61
|
-
}
|
62
|
-
<% @glyphs.each_with_index do |name, index| %>
|
63
|
-
.<%= @opts.css_prefix + name %>:before { content: "\<%= (61696+index).to_s(16) %>"; }<% end %>
|
data/lib/fontcustom/util.rb
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
##
|
2
|
-
# Needs access to @shell and an Options instance
|
3
|
-
# (@opts in thor, @cli_options or self in Options)
|
4
|
-
module Fontcustom
|
5
|
-
module Util
|
6
|
-
def check_fontforge
|
7
|
-
fontforge = `which fontforge`
|
8
|
-
if fontforge == "" || fontforge == "fontforge not found"
|
9
|
-
raise Fontcustom::Error, "Please install fontforge. Visit <http://fontcustom.com> for instructions."
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def say_changed(status, changed)
|
14
|
-
return if base(:quiet)
|
15
|
-
message = changed.map { |file| relative_to_root(file) }
|
16
|
-
@shell.say_status status, message.join("\n#{" " * 14}"), :green # magic number
|
17
|
-
end
|
18
|
-
|
19
|
-
def say_message(status, message, color = :yellow)
|
20
|
-
return if base(:quiet) && status != :error
|
21
|
-
@shell.say_status status, message, color
|
22
|
-
end
|
23
|
-
|
24
|
-
def expand_path(path)
|
25
|
-
return path if path[0] == "/"
|
26
|
-
File.expand_path File.join(base(:project_root), path)
|
27
|
-
end
|
28
|
-
|
29
|
-
def relative_to_root(path)
|
30
|
-
path = path.sub(base(:project_root), "")
|
31
|
-
path = path[1..-1] if path[0] == "/"
|
32
|
-
path = "." if path.empty?
|
33
|
-
path
|
34
|
-
end
|
35
|
-
|
36
|
-
def overwrite_file(file, content = "")
|
37
|
-
File.open(file, "w") { |f| f.write(content) }
|
38
|
-
# say_changed :update, [ file ]
|
39
|
-
end
|
40
|
-
|
41
|
-
def symbolize_hash(hash)
|
42
|
-
hash.inject({}) { |memo, (k, v)| memo[k.to_sym] = v; memo }
|
43
|
-
end
|
44
|
-
|
45
|
-
private
|
46
|
-
|
47
|
-
def base(sym)
|
48
|
-
# Generators have @opts
|
49
|
-
if @opts
|
50
|
-
@opts.send sym
|
51
|
-
|
52
|
-
# Options (before merge) uses @cli_options
|
53
|
-
elsif @cli_options
|
54
|
-
@cli_options[sym]
|
55
|
-
|
56
|
-
# Options (after merge) has its own methods
|
57
|
-
else
|
58
|
-
send sym
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
Binary file
|
@@ -1,102 +0,0 @@
|
|
1
|
-
<?xml version="1.0" standalone="no"?>
|
2
|
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3
|
-
<!--
|
4
|
-
2012-11-26: Created.
|
5
|
-
-->
|
6
|
-
<svg xmlns="http://www.w3.org/2000/svg">
|
7
|
-
<metadata>
|
8
|
-
Created by FontForge 20120731 at Mon Nov 26 10:31:22 2012
|
9
|
-
By Joshua Gross
|
10
|
-
Created by Joshua Gross with FontForge 2.0 (http://fontforge.sf.net)
|
11
|
-
</metadata>
|
12
|
-
<defs>
|
13
|
-
<font id="fontcustom" horiz-adv-x="1030" >
|
14
|
-
<font-face
|
15
|
-
font-family="Untitled1"
|
16
|
-
font-weight="500"
|
17
|
-
font-stretch="normal"
|
18
|
-
units-per-em="1000"
|
19
|
-
panose-1="2 0 6 3 0 0 0 0 0 0"
|
20
|
-
ascent="800"
|
21
|
-
descent="-200"
|
22
|
-
bbox="14.9998 -200.706 1015.35 800.108"
|
23
|
-
underline-thickness="50"
|
24
|
-
underline-position="-100"
|
25
|
-
unicode-range="U+F100-F10C"
|
26
|
-
/>
|
27
|
-
<missing-glyph />
|
28
|
-
<glyph glyph-name="uniF100" unicode="" horiz-adv-x="1028"
|
29
|
-
d="M980.576 795.03c20.3633 0 32.7266 -12.1211 32.7266 -32.6064v-597.333c0 -20.4844 -12.3633 -32.8486 -32.7266 -32.8486h-735.273l-46.5449 -86.9092c-4 -7.63574 -13.4551 -10.3027 -20.8486 -6.18164l-47.3936 25.333c-7.39453 4 -10.1826 13.334 -6.18262 20.8486
|
30
|
-
l25.0908 46.7881h-93.5752c-20.4854 0 -40.8486 12.3633 -40.8486 32.8486v597.454c0 20.4854 12.3633 32.6064 32.7275 32.6064h932.849zM217.788 774.061c-12.9697 0 -23.5156 -10.4238 -23.5156 -23.5146c0 -13.0918 10.667 -23.6367 23.5156 -23.6367
|
31
|
-
s23.5146 10.7881 23.5146 23.7578s-10.666 23.3936 -23.5146 23.3936zM153.546 774.061c-13.0918 0 -23.5156 -10.4238 -23.3945 -23.5146c0 -13.0918 10.5459 -23.6367 23.3945 -23.6367c13.0908 0 23.6357 10.7881 23.6357 23.7578s-10.5449 23.3936 -23.6357 23.3936z
|
32
|
-
M89.0605 774.061c-12.8486 0 -23.3936 -10.4238 -23.5146 -23.5146c0 -13.0918 10.666 -23.6367 23.5146 -23.6367c13.0908 0 23.6367 10.7881 23.6367 23.7578s-10.667 23.3936 -23.6367 23.3936zM951.97 178.788v0.121094h-0.242188v424h-882.788v-424.121h105.576
|
33
|
-
l57.8174 107.151l-86.1816 46.5449c-4.72754 2.4248 -7.75781 7.15234 -8 12.6064c-0.242188 5.45508 2.18164 10.4248 6.5459 13.4551l260.121 178.061c4.84863 3.27246 10.7881 4.48438 16.2422 0.726562c4.96973 -2.78711 8 -8.24219 7.63672 -13.9395l-13.2129 -311.151
|
34
|
-
c-0.121094 -5.09082 -3.03027 -10.0605 -7.63574 -12.6055c-4.72754 -2.78809 -10.3027 -2.78809 -14.9092 -0.243164l-86.3027 46.667l-36.2432 -67.2725h681.576zM951.97 640.606v56.7266h-882.788v-56.7266h882.788z" />
|
35
|
-
<glyph glyph-name="uniF101" unicode="" horiz-adv-x="1027"
|
36
|
-
d="M673.57 215.636l26.5713 -13.0371l16.6348 16.6348l166.999 -167.026l111.227 -82.7861l11.9434 -45.3789l-123.309 -124.015l-44.3682 11.9854l-83.6035 112.029l-176.714 176.714c19.9014 7.37598 38.1963 18.877 53.6406 34.3213l26.0186 26.0176l28.0381 28.0391z
|
37
|
-
M871.791 -10.8857c-28.8271 0 -52.2021 -23.375 -52.2021 -52.2021s23.375 -52.1875 52.2021 -52.1875s52.1875 23.3604 52.1875 52.1875s-23.3604 52.2021 -52.1875 52.2021zM378.392 440.995l-25.8926 -25.8799c-15.708 -15.708 -27.084 -34.0996 -34.3076 -53.6689
|
38
|
-
l-4.30469 4.30469c-22.5996 -11.3623 -45.4893 -18.1992 -66.8984 -18.1992c-118.271 0 -229.968 113.108 -231.407 231.379c0.0136719 0.457031 13.3545 13.6045 20.8838 21.1191c96.8193 -96.8477 77.8184 -86.9521 137.493 -86.9521
|
39
|
-
c46.1123 0 121.647 74.4834 121.647 121.647c0 58.1387 7.83301 42.7354 -86.9385 137.521c7.2793 7.28027 20.6484 20.8281 21.1045 20.8281c118.229 1.41211 231.365 -113.053 231.365 -231.365c0.0146484 -15.2783 -3.72266 -31.5674 -10.0879 -48.0498
|
40
|
-
l-2.85156 -2.85059l-28.6611 -28.6748l13.4932 -26.0049l-25.9619 13.5215zM984.304 697.866c36.6611 -36.6885 36.6611 -96.1553 0 -132.816l-295.316 -295.303c-5.35547 2.62988 -11.5283 3.83398 -17.8945 3.83398c-14.4199 0 -29.9062 -6.17285 -39.5664 -15.8467
|
41
|
-
c-14.0049 -13.9912 -20.6484 -40.0508 -12.0537 -57.502l-26.0176 -26.0176c-18.3516 -18.3516 -42.3896 -27.54 -66.4424 -27.54c-24.0117 0 -48.0508 9.16113 -66.374 27.498l-6.83594 6.82324l-230.176 -230.189l-23.291 -61.9863l-127.778 -89.3047l-57.5576 57.3643
|
42
|
-
l89.665 127.985l61.4736 23.25l230.3 230.272l-4.81641 4.81543c-36.6465 36.6611 -36.6465 96.1279 0.0283203 132.803l25.8652 25.8516c5.48047 -2.85156 11.833 -4.1377 18.4482 -4.1377c14.4199 0 29.9619 6.17188 39.6631 15.8867
|
43
|
-
c14.1025 14.1162 20.7871 40.6045 11.7217 58.084l295.179 295.123c18.3096 18.3506 42.3623 27.5264 66.4004 27.5264c24.0254 0 48.0645 -9.16211 66.4014 -27.499z" />
|
44
|
-
<glyph glyph-name="uniF102" unicode="" horiz-adv-x="885"
|
45
|
-
d="M755.53 57.0703l-375.351 120.27v55.3701l375.351 -121.19v359.65h114.119v-652.54h-854.189v312.87l364.72 -117.65v54.9004l-365.18 117.7v54.7402l740.53 -239.351v55.2305zM789.649 495.77h48.7803c1.06055 46.29 -35.6895 123.211 -91.0596 152.891
|
46
|
-
c1.08984 21.0703 -1.39062 47.2295 -11.0801 69.8496c-13.9805 33.8301 -50.75 55.8301 -87.5303 60.4404c-49.21 6 -77.3701 -14.6006 -102.6 -41.2402c-25.0605 -26.75 -69.8301 -21.6699 -93.5107 -7.08008c-23.6992 15.0801 -72.4697 33.2402 -116.149 -3.53027
|
47
|
-
c-43.8301 -36.1494 -58.9199 -8.59961 -102.601 1.09082c-43.3896 9.50977 -103.21 -16.6201 -103.689 -81.54c2.46973 -68.9102 71.9902 -95.5107 109.67 -79.0703c37.7002 16.6201 52.7803 40.79 99.5303 2.62012c44.3096 -36.29 102.62 -15.0703 125.38 12.6299
|
48
|
-
c21.9795 28.1504 64.7598 27.0596 90.9102 1.37012c25.6797 -26.1602 45.3691 -32.1406 81.54 -32.6201c29.6797 -0.44043 54.2793 14 73.5098 28.1602c40.1494 0.0195312 70.9102 -38.75 78.8994 -83.9707z" />
|
49
|
-
<glyph glyph-name="uniF103" unicode="" horiz-adv-x="1019"
|
50
|
-
d="M1004.39 -139.453c1.56348 -14.8223 -27.1943 -42.1133 -42.127 -42.085c-21.1602 -0.0136719 -51.6064 31.6914 -75.5352 61.502l-43.04 -43.0547c-49.1846 -49.1982 -129.273 -49.1846 -178.485 0.0283203l-167.912 167.912
|
51
|
-
c-49.2129 49.1982 -49.2402 129.286 -0.0283203 178.499l40.7432 40.7568c4.49805 70.5527 -36.0654 97.0684 -104.307 93.498l-35.373 -35.3867c-49.1709 -49.1855 -129.273 -49.2129 -178.499 0.0273438l-167.913 167.912
|
52
|
-
c-49.2119 49.2129 -49.2119 129.314 -0.0273438 178.499l44.3271 44.3281c-25.9902 22.3359 -50.9834 48.3398 -52.9492 66.9814c-1.56348 14.7949 27.2217 42.0996 42.1133 42.1133c18.9316 0 45.3096 -25.4229 67.7988 -52.1328l2.71191 2.69922
|
53
|
-
c49.1992 49.1982 129.301 49.1982 178.514 -0.0146484l167.939 -167.926c49.2129 -49.2119 49.2129 -129.301 0 -178.513l-13.9219 -13.9092c67.0791 2.25586 97.373 -34.5977 107.24 -90.5781l5.57715 5.5918c49.1992 49.1982 129.314 49.1982 178.527 -0.0146484
|
54
|
-
l167.898 -167.926c49.1982 -49.1982 49.1982 -129.286 0 -178.499l-5.49414 -5.49414c28.9521 -23.8867 60.0205 -53.9736 62.2217 -74.8154zM338.829 341.753v0l104.002 103.975c16.4131 16.3994 16.4131 43.0957 0 59.4951l-167.926 167.927
|
55
|
-
c-16.3994 16.4131 -43.1094 16.4131 -59.5088 0l-103.975 -103.989c-16.4141 -16.3994 -16.4141 -43.0957 0 -59.5088l167.898 -167.898c16.4131 -16.4131 43.0947 -16.4131 59.5088 0zM784.178 -103.596l0.0136719 -0.0273438l103.975 103.975
|
56
|
-
c16.4268 16.4268 16.4268 43.123 0 59.5225l-167.912 167.912c-16.4141 16.4414 -43.1094 16.4414 -59.5088 0.0146484l-103.989 -103.975c-16.4131 -16.4004 -16.4131 -43.082 0.0146484 -59.5234l167.898 -167.898c16.4268 -16.4131 43.0811 -16.4131 59.5088 0z" />
|
57
|
-
<glyph glyph-name="uniF104" unicode="" horiz-adv-x="544"
|
58
|
-
d="M216.39 674.99c0 -14.2305 8.58008 -26.4199 20.8301 -31.79v-37.6602h-83.3301v97.2197l83.3301 27.7803v-23.7598c-12.25 -5.37012 -20.8301 -17.5703 -20.8301 -31.79zM292.77 563.93l83.3408 -83.3301h-361.11l83.3301 83.3301h194.439zM515 661.1h-41.6699
|
59
|
-
c-7.67969 0 -13.8896 6.20996 -13.8896 13.8906c0 7.67969 6.20996 13.8896 13.8896 13.8896h41.6699c7.67969 0 13.8896 -6.20996 13.8896 -13.8896c0 -7.68066 -6.20996 -13.8906 -13.8896 -13.8906zM452.52 755.02c-5.12988 0 -10.0293 2.84082 -12.4492 7.73047
|
60
|
-
c-3.41992 6.87012 -0.600586 15.21 6.26953 18.6104l34.7305 17.1895c6.85938 3.41992 15.1895 0.580078 18.5996 -6.29004c3.38965 -6.87012 0.589844 -15.21 -6.29004 -18.6094l-34.7002 -17.1904c-1.97949 -0.979492 -4.08984 -1.44043 -6.16016 -1.44043zM487.21 549.99
|
61
|
-
c-2.08008 0 -4.16992 0.459961 -6.13965 1.43945l-34.7305 17.1904c-6.87012 3.39941 -9.68945 11.7402 -6.26953 18.6104c3.39941 6.88965 11.6992 9.69922 18.6094 6.28906l34.7002 -17.1895c6.87988 -3.40039 9.67969 -11.7402 6.29004 -18.6104
|
62
|
-
c-2.41992 -4.89941 -7.36035 -7.72949 -12.46 -7.72949zM417.77 688.88c7.68066 0 13.8906 -6.20996 13.8906 -13.8896c0 -7.68066 -6.20996 -13.8906 -13.8906 -13.8906h-104.029l94.2998 -43.9697c6.94043 -3.24023 9.9502 -11.5 6.70996 -18.46
|
63
|
-
c-2.34961 -5.04004 -7.37012 -8.00977 -12.5996 -8.00977c-1.9502 0 -3.95996 0.419922 -5.86035 1.2998c0 0 -152.17 71.3096 -152.49 71.5205c-3.87012 2.46973 -6.58008 6.58984 -6.58008 11.5195c0 4.91992 2.7207 9.04004 6.58008 11.5098
|
64
|
-
c0.320312 0.220703 152.49 71.5205 152.49 71.5205c1.90039 0.879883 3.91016 1.2998 5.86035 1.2998c5.23926 0 10.2598 -2.98047 12.5996 -8.02051c3.24023 -6.95996 0.230469 -15.2197 -6.70996 -18.46l-94.2998 -43.9697h104.029zM15 438.88h361.11v-638.88h-361.11
|
65
|
-
v638.88zM195.56 22.2695c53.6904 0 97.21 43.5303 97.2207 97.2305c0 53.6904 -43.5303 97.2197 -97.2207 97.2197c-53.6895 0 -97.2197 -43.5293 -97.2197 -97.2197c0 -53.7002 43.5205 -97.2305 97.2197 -97.2305z" />
|
66
|
-
<glyph glyph-name="uniF105" unicode="" horiz-adv-x="694"
|
67
|
-
d="M679.106 795.959l-235.379 -415.746l193.266 0.207031l-621.993 -580.476l290.985 470.204l-194.442 -0.22168z" />
|
68
|
-
<glyph glyph-name="uniF106" unicode=""
|
69
|
-
d="M780.73 683.89l-2.61035 -3.88965h-531.48c-118.93 -80 -189.55 -223.7 -189.55 -372.28c0 -152.33 73.5098 -287.71 197.24 -377.72h521.28c123.739 90.0098 195.989 227.33 195.989 379.67c0 148.61 -71.9395 287.18 -190.869 374.22zM796.65 720v0
|
70
|
-
c131.819 -79.9902 218.35 -243.89 218.35 -417.29c0 -176.93 -90.1699 -322.71 -226.54 -422.7h-546.99c-136.34 99.9902 -226.47 245.771 -226.47 422.7c0 173.4 86.5195 337.3 218.31 417.29h563.341zM298.14 270.01v240h60v-240h-60zM668.11 290v200h60.0293v-200
|
71
|
-
h-60.0293zM515.01 130.01c49.6807 0 90 -20.0098 90 -60v-90.8594h-180.01v90.8594c0 39.9902 40.2695 60 90.0098 60z" />
|
72
|
-
<glyph glyph-name="uniF107" unicode="" horiz-adv-x="570"
|
73
|
-
d="M231 783.2c0 15.2002 36 0 36 0v-504.4c-21 -7.5 -36 -27.7002 -36 -51.3994c0 -30.1006 24.2002 -54.4004 54 -54.4004s54 24.2998 54 54.4004c0 23.6992 -15 43.8994 -36 51.3994v504.4s36 15.2002 36 0c0 -283.8 216 -486.601 216 -486.601l-134.6 -341.399h-270.801
|
74
|
-
l-134.6 341.399s216 202.801 216 486.601zM51 -81.0996h468v-108.9h-468v108.9z" />
|
75
|
-
<glyph glyph-name="uniF108" unicode="" horiz-adv-x="1023"
|
76
|
-
d="M1008.39 599.593l-145.271 -145.243l97.7744 -97.7607l-440.629 -50.541l51.1221 440.034l96.875 -96.8477l145.257 145.258zM160.23 139.437l-97.7471 97.7607l440.629 50.5547l-51.1494 -440.048l-96.8477 96.8477l-145.229 -145.258l-194.886 194.913z
|
77
|
-
M215.518 425.384l234.674 -81.2227l-263.542 21.6445zM466.425 459.678v-101.096l-32.4814 95.6982zM811.217 170.879l-234.673 81.2236l263.542 -21.6592zM560.324 136.571v101.097l32.4668 -95.6855z" />
|
78
|
-
<glyph glyph-name="uniF109" unicode=""
|
79
|
-
d="M347.005 315.126l-165.394 165.38l-166.611 -167.649l0.387695 486.59h487.323l-167.691 -166.874l164.729 -164.771zM848.763 119.12l166.583 167.663l-0.345703 -486.59h-487.364l167.704 166.875l-164.701 164.771l152.702 152.688z" />
|
80
|
-
<glyph glyph-name="uniF10A" unicode=""
|
81
|
-
d="M1015 406.68c0 -20.54 -10.1201 -38.5996 -25.5 -49.8701c0.0195312 -0.0195312 0.0498047 -0.0400391 0.0703125 -0.0498047l-237.181 -183.319l90.7705 -290.16c-0.160156 -0.0205078 -0.290039 -0.100586 -0.450195 -0.120117
|
82
|
-
c2.42969 -6.65039 3.96973 -13.7305 3.96973 -21.21c0 -34.2197 -27.7393 -61.9502 -61.9795 -61.9502c-17.25 0 -32.8203 7.05957 -44.0703 18.4297l-225.36 173.17l-233.689 -179.14c-0.110352 0.0898438 -0.25 0.160156 -0.360352 0.259766
|
83
|
-
c-10.3994 -7.87988 -23.2197 -12.7197 -37.2695 -12.7197c-34.2305 0 -61.9805 27.7305 -61.9805 61.9502c0 9.28027 2.18066 17.9795 5.82031 25.8701l89.6104 286.83l-240.74 185.069c0.0800781 0.100586 0.120117 0.209961 0.189453 0.310547
|
84
|
-
c-13.2793 11.3701 -21.8496 28.0293 -21.8496 46.8701c0 34.2197 27.7305 61.9697 61.9697 61.96c0.470703 0 0.910156 -0.129883 1.39062 -0.140625h281.37l94.5 283.41c0.0595703 -0.0195312 0.139648 -0.00976562 0.209961 -0.0195312
|
85
|
-
c6.38965 27.4092 30.8496 47.8896 60.2295 47.8896c27.71 0 50.9102 -18.3301 58.8203 -43.4199c0.0498047 0 0.0996094 0.00976562 0.139648 0.00976562l95.9805 -287.87h286.13c-0.0498047 -0.109375 -0.0498047 -0.229492 -0.0898438 -0.349609
|
86
|
-
c32.9893 -1.40039 59.3496 -28.3701 59.3496 -61.6904z" />
|
87
|
-
<glyph glyph-name="uniF10B" unicode=""
|
88
|
-
d="M515 800c276.15 0 500 -223.85 500 -500c0 -276.09 -223.85 -500 -500 -500s-500 223.91 -500 500c0 276.15 223.85 500 500 500zM508.05 595.46c-25.0996 0 -45.4502 -20.3496 -45.4502 -45.46c0 -25.0898 20.3506 -45.4502 45.4502 -45.4502
|
89
|
-
c25.1006 0 45.46 20.3604 45.46 45.4502c0 25.0996 -20.3594 45.46 -45.46 45.46zM695.56 300h-0.0292969v56.8301c0 8.37988 -3.79004 15.7295 -9.58008 20.9102l0.169922 0.189453l-113.63 102.271c-23.25 14.4297 -56.7598 3.84961 -86.2705 -25.6602l-113.64 -136.37
|
90
|
-
l0.280273 -0.240234c-4.10059 -4.91992 -6.87012 -11.0098 -6.87012 -17.9297c0 -15.6904 12.7197 -28.4004 28.4102 -28.4004c8.7793 0 16.3301 4.2002 21.54 10.4707l0.279297 -0.240234l69.0898 82.9004v-75.8809l-131.939 -233.439l0.129883 -0.0703125
|
91
|
-
c-2.80957 -4.92969 -4.5498 -10.6094 -4.5498 -16.71c0 -18.8301 15.2695 -34.0996 34.0898 -34.0996c12.7197 0 23.6797 7.06934 29.54 17.3896l0.139648 -0.0703125l125.88 222.7l85.4502 -218.33l0.0498047 0.0302734c4.9707 -12.6904 17.2607 -21.71 31.6904 -21.71
|
92
|
-
c18.8096 0 34.0801 15.2695 34.0801 34.0996c0 4.39062 -0.910156 8.54004 -2.40039 12.4102l0.0605469 0.00976562l-0.330078 0.84082h-0.00976562l-88.2305 225.479v102.62l39.7598 -35.8398v-44.1602c0 -15.6904 12.7305 -28.4004 28.4404 -28.4004
|
93
|
-
c15.6797 0 28.3994 12.71 28.3994 28.4004z" />
|
94
|
-
<glyph glyph-name="uniF10C" unicode="" horiz-adv-x="614"
|
95
|
-
d="M360.73 463.79c0 27.6533 13.8262 41.4795 41.4795 41.4795s41.4805 -13.8262 41.4805 -41.4795s-13.8271 -41.4805 -41.4805 -41.4805s-41.4795 13.8271 -41.4795 41.4805zM473.75 505.64c-15.8838 27.0615 -39.4375 40.7588 -70.6602 41.0908
|
96
|
-
c37.3057 62.0889 70.8135 113.686 100.525 154.79s51.5264 68.3242 65.4453 81.6592s22.9727 18.792 27.1592 16.3701c4.19922 -2.42383 4.00098 -13.0049 -0.594727 -31.7441c-4.5957 -18.7383 -17.2715 -51.2637 -38.0273 -97.5742
|
97
|
-
c-20.7559 -46.3115 -48.7051 -101.175 -83.8477 -164.592zM319.24 463.79c0 -14.5234 3.60352 -28.1436 10.8096 -40.8604c-72.3203 1.27734 -133.666 4.50586 -184.039 9.68457c-50.373 5.17969 -84.8008 10.4609 -103.285 15.8447
|
98
|
-
c-18.4834 5.38281 -27.7256 10.4932 -27.7256 15.3311c0 4.83984 9.24316 9.95215 27.7295 15.3359c18.4873 5.38379 52.917 10.665 103.291 15.8447c50.373 5.17969 111.724 8.40918 184.05 9.68945c-7.21973 -12.7139 -10.8301 -26.3369 -10.8301 -40.8701zM473.84 422.06
|
99
|
-
c35.1221 -63.3721 63.0547 -118.201 83.7988 -164.486c20.7432 -46.2852 33.4111 -78.79 38.0029 -97.5166s4.79102 -29.3018 0.598633 -31.7266c-4.19531 -2.41992 -13.25 3.03223 -27.1621 16.3564s-35.71 40.5137 -65.3926 81.5664
|
100
|
-
c-29.6836 41.0537 -63.1689 92.5928 -100.455 154.617c31.2383 0.373047 54.7754 14.1035 70.6094 41.1895zM360.73 371.11c30.1768 -50.7168 57.833 -94.6543 82.9697 -131.811v-439.3h-82.9697v553.16v17.9502z" />
|
101
|
-
</font>
|
102
|
-
</defs></svg>
|
Binary file
|
Binary file
|
@@ -1,82 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Fontcustom::Util do
|
4
|
-
class Generator
|
5
|
-
include Fontcustom::Util
|
6
|
-
attr_accessor :cli_options
|
7
|
-
|
8
|
-
def initialize
|
9
|
-
@cli_options = { :project_root => fixture, :quiet => false }
|
10
|
-
@shell = Thor::Shell::Color.new
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
context "#check_fontforge" do
|
15
|
-
it "should raise error if fontforge isn't installed" do
|
16
|
-
gen = Generator.new
|
17
|
-
gen.stub(:"`").and_return("")
|
18
|
-
expect { gen.check_fontforge }.to raise_error Fontcustom::Error, /install fontforge/
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
context "#say_changed" do
|
23
|
-
it "should strip :project_root from changed paths" do
|
24
|
-
changed = %w|a b c|.map { |file| fixture(file) }
|
25
|
-
gen = Generator.new
|
26
|
-
output = capture(:stdout) { gen.say_changed(:success, changed) }
|
27
|
-
output.should_not match(fixture)
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should not respond if :quiet is true " do
|
31
|
-
changed = %w|a b c|.map { |file| fixture(file) }
|
32
|
-
gen = Generator.new
|
33
|
-
gen.cli_options[:quiet] = true
|
34
|
-
output = capture(:stdout) { gen.say_changed(:success, changed) }
|
35
|
-
output.should == ""
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
context "#say_message" do
|
40
|
-
it "should not respond if :quiet is true" do
|
41
|
-
gen = Generator.new
|
42
|
-
gen.cli_options[:quiet] = true
|
43
|
-
output = capture(:stdout) { gen.say_message(:test, "Hello") }
|
44
|
-
output.should == ""
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
context "#expand_path" do
|
49
|
-
it "should leave absolute paths alone" do
|
50
|
-
gen = Generator.new
|
51
|
-
path = gen.expand_path "/absolute/path"
|
52
|
-
path.should == "/absolute/path"
|
53
|
-
end
|
54
|
-
|
55
|
-
it "should prepend paths with :project_root" do
|
56
|
-
gen = Generator.new
|
57
|
-
path = gen.expand_path "generators"
|
58
|
-
path.should == fixture("generators")
|
59
|
-
end
|
60
|
-
|
61
|
-
it "should follow ../../ relative paths" do
|
62
|
-
gen = Generator.new
|
63
|
-
gen.cli_options[:project_root] = fixture("shared/vectors")
|
64
|
-
path = gen.expand_path "../../generators"
|
65
|
-
path.should == fixture("generators")
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
context "#relative_to_root" do
|
70
|
-
it "should trim project root from paths" do
|
71
|
-
gen = Generator.new
|
72
|
-
path = gen.relative_to_root fixture("test/path")
|
73
|
-
path.should == "test/path"
|
74
|
-
end
|
75
|
-
|
76
|
-
it "should trim beginning slash" do
|
77
|
-
gen = Generator.new
|
78
|
-
path = gen.relative_to_root "/test/path"
|
79
|
-
path.should == "test/path"
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|