fontcustom 1.2.0 → 1.3.0.beta
Sign up to get free protection for your applications and to get access to all the features.
- 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
|