fontrobot 0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,101 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <title>Your Font/Glyphs</title>
5
+ <!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
6
+
7
+ <link rel="stylesheet" href="fontrobot.css" />
8
+ <!--[if lte IE 7]>
9
+ <link rel="stylesheet" href="fontrobot-ie7.css" />
10
+ <![endif]-->
11
+
12
+
13
+ <style>
14
+ section, header, footer {display: block;}
15
+ body {
16
+ font-family: sans-serif;
17
+ color: #444;
18
+ line-height: 1.5;
19
+ font-size: 1em;
20
+ }
21
+ * {
22
+ -moz-box-sizing: border-box;
23
+ -webkit-box-sizing: border-box;
24
+ box-sizing: border-box;
25
+ margin: 0;
26
+ padding: 0;
27
+ }
28
+ .glyph {
29
+ float: left;
30
+ text-align: center;
31
+ background: #eee;
32
+ padding: .75em;
33
+ margin: .75em 1.5em .75em 0;
34
+ width: 7em;
35
+ border-radius: .25em;
36
+ box-shadow: inset 0 0 0 1px #f8f8f8, 0 0 0 1px #CCC;
37
+ }
38
+ .glyph input {
39
+ width: 100%;
40
+ text-align: center;
41
+ font-family: consolas, monospace;
42
+ }
43
+ .glyph input, .mtm {
44
+ margin-top: .75em;
45
+ }
46
+ .w-main {
47
+ width: 80%;
48
+ }
49
+ .centered {
50
+ margin-left: auto;
51
+ margin-right: auto;
52
+ }
53
+ .fs1 {
54
+ font-size: 2em;
55
+ }
56
+ header {
57
+ margin: 2em 0;
58
+ padding-bottom: .5em;
59
+ color: #666;
60
+ box-shadow: 0 2px #eee;
61
+ }
62
+ header h1 {
63
+ font-size: 2em;
64
+ font-weight: normal;
65
+ }
66
+ .clearfix:before, .clearfix:after { content: ""; display: table; }
67
+ .clearfix:after, .clear { clear: both; }
68
+ footer {
69
+ margin-top: 2em;
70
+ padding: .5em 0;
71
+ box-shadow: 0 -2px #eee;
72
+ }
73
+ a, a:visited {
74
+ color: #B35047;
75
+ text-decoration: none;
76
+ }
77
+ a:hover, a:focus {color: #000;}
78
+ .box1 {
79
+ display: inline-block;
80
+ width: 15em;
81
+ padding: .25em .5em;
82
+ background: #eee;
83
+ margin: .5em 1em .5em 0;
84
+ }
85
+ </style>
86
+ </head>
87
+ <body>
88
+ <div class="w-main centered">
89
+ <section class="mtm clearfix" id="glyphs">
90
+ <header> <h1>Your font contains the following glyphs</h1> </header>
91
+ <% @classes.each_with_index do |name, index| %>
92
+ <div class="glyph">
93
+ <div class="fs1" ><i class="icon-<%= name %>"></i></div>
94
+ <input type="text" readonly="readonly" value="&amp;#x<%= (61696+index).to_s(16) %>;" />
95
+ <input type="text" readonly="readonly" value=".icon-<%= name %>" />
96
+ </div>
97
+ <% end %>
98
+ </section>
99
+ </div>
100
+ </body>
101
+ </html>
@@ -0,0 +1,3 @@
1
+ module Fontrobot
2
+ VERSION = "0.1"
3
+ end
@@ -0,0 +1,37 @@
1
+ require 'listen'
2
+
3
+ module Fontrobot
4
+ class Watcher
5
+ def self.watch(*args)
6
+ callback = Proc.new do |modified, added, removed|
7
+ puts ' >> Changed: ' + modified.join(' ') unless modified.empty?
8
+ puts ' >> Added: ' + added.join(' ') unless added.empty?
9
+ puts ' >> Removed: ' + removed.join(' ') unless removed.empty?
10
+
11
+ changed = modified + added + removed
12
+ Fontrobot.compile(*args) unless changed.empty?
13
+ end
14
+
15
+ dir = args.first
16
+ @listener = Listen.to(dir).filter(/\.(eps|svg)$/).change(&callback)
17
+
18
+ begin
19
+ puts 'Fontrobot is watching your icons at ' + dir
20
+ puts 'Press Ctrl + C to stop.'
21
+ Fontrobot.compile(*args)
22
+ @listener.start()
23
+
24
+ # Catches Ctrl + C
25
+ # Does listen gem have a better way of handling this?
26
+ rescue SignalException
27
+ stop
28
+ end
29
+ end
30
+
31
+ def self.stop
32
+ # Newline exists so message is not prepended with ^C on SIGTERM
33
+ puts "\nFontrobot is signing off. Goodnight and good luck."
34
+ @listener.stop
35
+ end
36
+ end
37
+ end
data/lib/fontrobot.rb ADDED
@@ -0,0 +1,21 @@
1
+ require 'fontrobot/version'
2
+ require 'fontrobot/generator'
3
+ require 'fontrobot/watcher'
4
+
5
+ module Fontrobot
6
+ # Usage:
7
+ # Fontrobot.compile 'path/to/vectors', '-o', 'path/to/output'
8
+ def compile(*args)
9
+ Fontrobot::Generator.start(args) # as array
10
+ end
11
+
12
+ def watch(*args)
13
+ Fontrobot::Watcher.watch(*args)
14
+ end
15
+
16
+ def stop
17
+ Fontrobot::Watcher.stop
18
+ end
19
+
20
+ module_function :compile, :watch, :stop
21
+ end
File without changes
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" width="100px" height="100px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve">
2
+ <path d="M50,0C22.389,0,0,22.383,0,49.994V100h100V49.994C100,22.383,77.617,0,50,0z M96.667,96.667H3.333V49.994 c0-25.729,20.938-46.66,46.667-46.66c25.729,0,46.667,20.931,46.667,46.66V96.667z"/>
3
+ <path d="M50,10c-22.083,0-40,17.91-40,39.994V90l30-30V50c0-5.521,4.479-10,10-10c5.521,0,10,4.479,10,10v10l30,30V49.994 C90,27.91,72.09,10,50,10z"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" width="100px" height="100px" viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve">
2
+ <path style="fill:#010101;" d="M87.5,75c-3.039,0-5.725,1.221-7.886,3.016l-19.056-13.6c1.209-2.49,1.941-5.225,1.941-8.166 c0-4.041-1.318-7.775-3.491-10.828l22.29-22.302C83.154,24.207,85.193,25,87.5,25c6.909,0,12.5-5.591,12.5-12.5S94.409,0,87.5,0 S75,5.591,75,12.5c0,2.307,0.793,4.346,1.88,6.201L54.59,41.004c-3.076-2.197-6.787-3.504-10.84-3.504 c-7.153,0-13.306,4.064-16.467,9.973l-15.052-5.029C11.621,39.637,9.24,37.5,6.25,37.5C2.795,37.5,0,40.295,0,43.75 S2.795,50,6.25,50c1.574,0,2.979-0.635,4.077-1.6l14.966,4.993C25.146,54.334,25,55.273,25,56.25C25,66.602,33.398,75,43.75,75 c5.151,0,9.826-2.088,13.221-5.457l18.933,13.514C75.366,84.448,75,85.926,75,87.5c0,6.896,5.591,12.5,12.5,12.5 S100,94.396,100,87.5S94.409,75,87.5,75z"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny" id="Layer_1" x="0px" y="0px" width="100px" height="100px" viewBox="0 0 100 100" xml:space="preserve">
2
+ <path fill="#000000" d="M96.897,37.513c1.921,0,3.478-1.558,3.478-3.479c0-1.92-1.557-3.478-3.478-3.478s-3.478,1.558-3.478,3.478 c0,0.422,0.079,0.825,0.217,1.2l-10.153,8.649l-12.864-7.567c0.073-0.297,0.116-0.607,0.116-0.927c0-2.142-1.736-3.878-3.878-3.878 c-0.869,0-1.668,0.289-2.314,0.772L52.92,23.054c0.054-0.22,0.086-0.448,0.086-0.684c0-1.581-1.281-2.861-2.861-2.861 s-2.861,1.281-2.861,2.861c0,0.729,0.275,1.393,0.724,1.898l-5.835,12.488c-0.26-0.045-0.526-0.074-0.8-0.074 c-0.86,0-1.662,0.239-2.351,0.647l-15.438-6.915c0.036-0.225,0.06-0.454,0.06-0.689c0-2.38-1.929-4.309-4.309-4.309 c-2.379,0-4.309,1.929-4.309,4.309s1.929,4.309,4.309,4.309c1.352,0,2.556-0.623,3.346-1.596l14.682,6.576 c-0.384,0.674-0.607,1.452-0.607,2.284c0,0.852,0.293,1.605,0.694,2.29l-8.233,8.237c-1.136-0.811-2.506-1.294-4.003-1.294 c-2.642,0-4.915,1.501-6.082,3.684l-0.096-0.032c-0.001,0.012-0.004,0.023-0.005,0.035L7.553,49.002 c0.016-0.134,0.025-0.271,0.025-0.409c0-1.989-1.612-3.601-3.601-3.601s-3.601,1.612-3.601,3.601s1.612,3.601,3.601,3.601 c1.054,0,1.999-0.455,2.657-1.177l11.723,5.329c-0.005,0.013-0.009,0.025-0.015,0.037l0.056,0.019 c-0.054,0.348-0.108,0.694-0.108,1.055c0,1.954,0.813,3.716,2.115,4.975l-0.017,0.013c0.004,0.005,0.008,0.01,0.012,0.014 l-5.973,8.802c-0.155-0.027-0.314-0.044-0.478-0.044c-1.479,0-2.678,1.198-2.678,2.678c0,1.479,1.199,2.678,2.678,2.678 c1.479,0,2.678-1.199,2.678-2.678c0-0.501-0.14-0.969-0.38-1.37l5.364-7.904l0.71-0.877c0.881,0.407,1.859,0.641,2.894,0.641 c1.902,0,3.629-0.771,4.883-2.016l6.993,4.991c-0.199,0.514-0.334,1.06-0.334,1.641c0,2.548,2.065,4.617,4.617,4.617 c2.159,0,3.965-1.483,4.471-3.482l15.916-4.923c0.977,1.815,2.893,3.05,5.099,3.05c1.273,0,2.447-0.417,3.403-1.114l7.12,6.611 c-0.038,0.193-0.059,0.393-0.059,0.597c0,1.734,1.406,3.14,3.14,3.14s3.139-1.405,3.139-3.14c0-1.733-1.405-3.139-3.139-3.139 c-0.707,0-1.358,0.236-1.883,0.631l-6.811-6.323c0.552-0.887,0.893-1.93,0.893-3.05c0-2.815-1.661-5.16-4.661-5.677V39.104 c1-0.172,1.082-0.478,1.513-0.878l13.332,7.848l11.179,15.655c-0.092,0.23-0.146,0.481-0.146,0.745c0,1.125,0.91,2.037,2.035,2.037 s2.037-0.912,2.037-2.037s-0.913-2.037-2.038-2.037c-0.03,0-0.06,0.003-0.09,0.005L85.094,45.422l9.931-8.459 C95.565,37.31,96.207,37.513,96.897,37.513z M61.07,62.474c0,0.21,0.013,0.416,0.035,0.62l-15.275,4.724 c-0.522-1.975-2.316-3.435-4.458-3.435c-1.123,0-2.114,0.451-2.913,1.113l-7.038-5.022c0.447-0.92,0.717-1.93,0.717-3.017 c0-1.492-0.487-2.871-1.29-3.999l8.233-8.237c0.686,0.401,1.438,0.694,2.291,0.694c1.642,0,3.079-0.857,3.897-2.147l17.222,14.914 C61.609,59.699,61.07,61.022,61.07,62.474z M66,56.797c-1,0.1-1.135,0.273-1.596,0.502l-18.36-15.846 c0.002-0.052-0.023-0.102-0.023-0.154c0-1.485-0.718-2.802-1.806-3.646l5.799-12.428c0.046,0.002,0.088,0.007,0.134,0.007 c0.53,0,1.023-0.147,1.449-0.399l11.621,9.229c-0.151,0.415-0.113,0.861-0.113,1.328c0,1.757,0.895,3.238,2.895,3.715V56.797z"/>
3
+ </svg>
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fontrobot do
4
+ let(:input_dir) { 'spec/fixtures/vectors' }
5
+ let(:output_dir) { 'tmp' }
6
+ let(:fake_file) { output_dir + '/non-vector.txt' }
7
+
8
+ context 'when ouput_dir already contains files' do
9
+ # Compile, add non-fontrobot file, change input vectors, recompile
10
+ before(:all) do
11
+ # originals
12
+ Fontrobot.compile(input_dir, '-o', output_dir, '-n', 'Original Font')
13
+ FileUtils.touch(fake_file, :verbose => true)
14
+ @original_fonts = Dir[output_dir + '/fontrobot-*.{woff,eot,ttf,svg}']
15
+ @original_css = File.read(output_dir + '/fontrobot.css')
16
+
17
+ FileUtils.mv(input_dir + '/C.svg', input_dir + '/E.svg', :verbose => true)
18
+ Fontrobot.compile(input_dir, '-o', output_dir)
19
+ end
20
+
21
+ after(:all) do
22
+ cleanup(output_dir)
23
+ FileUtils.mv(input_dir + '/E.svg', input_dir + '/C.svg', :verbose => true)
24
+ end
25
+
26
+ it 'should delete previous fontrobot generated files' do
27
+ new_files = Dir[output_dir + '/*']
28
+ @original_fonts.each do |original|
29
+ new_files.should_not include(original)
30
+ end
31
+ end
32
+
33
+ it 'should generate different css' do
34
+ new_css = File.read(output_dir + '/fontrobot.css')
35
+ new_css.should_not equal(@original_css)
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,75 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fontrobot::Generator do
4
+ let(:input_dir) { 'spec/fixtures/vectors' }
5
+ let(:output_dir) { 'tmp' }
6
+
7
+ context 'normally' do
8
+ before(:all) { Fontrobot::Generator.start([input_dir, '-o', output_dir]) }
9
+ after(:all) { cleanup(output_dir) }
10
+
11
+ it 'should create webfonts' do
12
+ exts = %w( .woff .eot .ttf .svg )
13
+ files = Dir[output_dir + '/*']
14
+ files.map! { |file| File.extname(file) }
15
+
16
+ exts.each { |ext| files.should include(ext) }
17
+ end
18
+
19
+ it 'should print font-face declarations in fontrobot.css' do
20
+ stylesheet = File.read(output_dir + '/fontrobot.css')
21
+ files = Dir[output_dir + '/*.{woff,eot,ttf,svg}']
22
+
23
+ files.each do |file|
24
+ stylesheet.should include(File.basename(file))
25
+ end
26
+ end
27
+
28
+ it 'should print icon-* CSS classes in fontrobot.css' do
29
+ stylesheet = File.read(output_dir + '/fontrobot.css')
30
+ icon_names = Dir[input_dir + '/*'].map { |file| File.basename(file)[0..-5].gsub(/\W/, '-').downcase }
31
+
32
+ icon_names.each do |name|
33
+ stylesheet.should include('.icon-' + name)
34
+ end
35
+ end
36
+ end
37
+
38
+ context 'when input_dir does not exist' do
39
+ let(:fake_input_dir) { 'does/not/exist' }
40
+
41
+ it 'should raise an error' do
42
+ results = capture(:stderr) { Fontrobot::Generator.start([fake_input_dir, '-o', output_dir]) }
43
+ results.should =~ /doesn't exist or isn't a directory/
44
+ end
45
+ end
46
+
47
+ context 'when input_dir does not contain vectors' do
48
+ let(:empty_input_dir) { 'spec/fixtures/empty' }
49
+
50
+ it 'should raise an error' do
51
+ results = capture(:stderr) { Fontrobot::Generator.start([empty_input_dir, output_dir]) }
52
+ results.should =~ /doesn't contain any vectors/
53
+ end
54
+ end
55
+
56
+ context 'when flags are passed' do
57
+ it 'should save output files with a custom name' do
58
+ Fontrobot::Generator.start([input_dir, '-o', output_dir, '-n', 'customname'])
59
+
60
+ file = Dir[File.join(output_dir, 'customname-*.ttf')].first
61
+ File.exists?(file).should be_true
62
+
63
+ cleanup(output_dir)
64
+ end
65
+
66
+ it 'should exclude the filename hash' do
67
+ Fontrobot::Generator.start([input_dir, '-o', output_dir, '--nohash'])
68
+
69
+ file = File.join(output_dir, 'fontrobot.ttf')
70
+ File.exists?(file).should be_true
71
+
72
+ cleanup(output_dir)
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fontrobot do
4
+ let (:input_dir) { 'spec/fixtures/vectors' }
5
+ let (:output_dir) { 'tmp' }
6
+ let (:fontrobot) { Fontrobot }
7
+
8
+ before(:all) do
9
+ fontrobot.watch(input_dir, output_dir)
10
+ end
11
+
12
+ context '#watch' do
13
+ it 'should detect when a vector file changes' do
14
+ `mv spec/fixtures/vectors/B.svg spec/fixtures/vectors/E.svg`
15
+ sleep 1
16
+ fontrobot.should_receive(:compile).with(input_dir, output_dir)
17
+ end
18
+
19
+ it 'should detect when a vector file is added' do
20
+ end
21
+
22
+ it 'should detect when a vector file is removed' do
23
+ end
24
+
25
+ it 'should send complain if the dir has no vectors' do
26
+ end
27
+ end
28
+
29
+ after(:all) do
30
+ Fontrobot.stop
31
+ `mv spec/fixtures/vectors/E.svg spec/fixtures/vectors/B.svg`
32
+ cleanup(output_dir)
33
+ end
34
+ end
@@ -0,0 +1,29 @@
1
+ require 'spork'
2
+
3
+ Spork.prefork do
4
+ require 'rspec'
5
+ require 'fileutils'
6
+
7
+ RSpec.configure do |c|
8
+ def cleanup(dir)
9
+ FileUtils.rm_r(dir, :verbose => true) if File.exists?(dir)
10
+ end
11
+
12
+ def capture(stream)
13
+ begin
14
+ stream = stream.to_s
15
+ eval "$#{stream} = StringIO.new"
16
+ yield
17
+ result = eval("$#{stream}").string
18
+ ensure
19
+ eval("$#{stream} = #{stream.upcase}")
20
+ end
21
+
22
+ result
23
+ end
24
+ end
25
+ end
26
+
27
+ Spork.each_run do
28
+ require File.expand_path('../../lib/fontrobot.rb', __FILE__)
29
+ end
metadata ADDED
@@ -0,0 +1,205 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fontrobot
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Tim Barkow
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-03-16 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: json
16
+ requirement: &70295096519860 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70295096519860
25
+ - !ruby/object:Gem::Dependency
26
+ name: thor
27
+ requirement: &70295096517940 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70295096517940
36
+ - !ruby/object:Gem::Dependency
37
+ name: listen
38
+ requirement: &70295096510920 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70295096510920
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: &70295096508960 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70295096508960
58
+ - !ruby/object:Gem::Dependency
59
+ name: bundler
60
+ requirement: &70295096506800 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70295096506800
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: &70295096505020 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70295096505020
80
+ - !ruby/object:Gem::Dependency
81
+ name: fakefs
82
+ requirement: &70295096503960 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70295096503960
91
+ - !ruby/object:Gem::Dependency
92
+ name: spork
93
+ requirement: &70295096503140 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *70295096503140
102
+ - !ruby/object:Gem::Dependency
103
+ name: guard-spork
104
+ requirement: &70295092408240 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: *70295092408240
113
+ - !ruby/object:Gem::Dependency
114
+ name: guard-rspec
115
+ requirement: &70295092404300 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: *70295092404300
124
+ - !ruby/object:Gem::Dependency
125
+ name: rb-fsevent
126
+ requirement: &70295092403120 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: 0.9.1
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: *70295092403120
135
+ description: Transforms EPS and SVG vectors into icon webfonts. Generates Bootstrap
136
+ compatible CSS for easy inclusion in your projects.
137
+ email:
138
+ - tim@robotloveskitten.com
139
+ executables:
140
+ - fontrobot
141
+ extensions: []
142
+ extra_rdoc_files: []
143
+ files:
144
+ - .gitignore
145
+ - CHANGELOG.md
146
+ - CONTRIBUTING.md
147
+ - Gemfile
148
+ - Guardfile
149
+ - LICENSES.txt
150
+ - README.md
151
+ - Rakefile
152
+ - bin/fontrobot
153
+ - fontcustom.gemspec
154
+ - lib/fontrobot.rb
155
+ - lib/fontrobot/cli.rb
156
+ - lib/fontrobot/generator.rb
157
+ - lib/fontrobot/scripts/eotlitetool.py
158
+ - lib/fontrobot/scripts/generate.py
159
+ - lib/fontrobot/scripts/sfnt2woff
160
+ - lib/fontrobot/templates/fontrobot-ie7.css
161
+ - lib/fontrobot/templates/fontrobot.css
162
+ - lib/fontrobot/templates/test.html
163
+ - lib/fontrobot/version.rb
164
+ - lib/fontrobot/watcher.rb
165
+ - spec/fixtures/empty/no_vectors_here.txt
166
+ - spec/fixtures/vectors/C.svg
167
+ - spec/fixtures/vectors/D.svg
168
+ - spec/fixtures/vectors/a_R3ally-eXotic f1Le Name.svg
169
+ - spec/fontrobot/fontcustom_spec.rb
170
+ - spec/fontrobot/generator_spec.rb
171
+ - spec/fontrobot/watcher_spec.rb.off
172
+ - spec/spec_helper.rb
173
+ homepage: http://robotloveskitten.github.com/fontrobot/
174
+ licenses: []
175
+ post_install_message:
176
+ rdoc_options: []
177
+ require_paths:
178
+ - lib
179
+ required_ruby_version: !ruby/object:Gem::Requirement
180
+ none: false
181
+ requirements:
182
+ - - ! '>='
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
185
+ required_rubygems_version: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ! '>='
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ requirements: []
192
+ rubyforge_project:
193
+ rubygems_version: 1.8.15
194
+ signing_key:
195
+ specification_version: 3
196
+ summary: Generate custom icon webfonts from the command line.
197
+ test_files:
198
+ - spec/fixtures/empty/no_vectors_here.txt
199
+ - spec/fixtures/vectors/C.svg
200
+ - spec/fixtures/vectors/D.svg
201
+ - spec/fixtures/vectors/a_R3ally-eXotic f1Le Name.svg
202
+ - spec/fontrobot/fontcustom_spec.rb
203
+ - spec/fontrobot/generator_spec.rb
204
+ - spec/fontrobot/watcher_spec.rb.off
205
+ - spec/spec_helper.rb