fontcustom 1.1.1 → 1.2.0

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.
@@ -0,0 +1,12 @@
1
+ language: ruby
2
+ before_install:
3
+ - sudo apt-get update -qq
4
+ - sudo apt-get install -qq fontforge
5
+ - wget http://people.mozilla.com/~jkew/woff/woff-code-latest.zip
6
+ - unzip woff-code-latest.zip -d sfnt2woff && cd sfnt2woff && make && sudo mv sfnt2woff /usr/local/bin/
7
+ - bundle
8
+ rvm:
9
+ - 2.0.0
10
+ - 1.9.3
11
+ - 1.9.2
12
+ script: bundle exec rake
@@ -1,3 +1,13 @@
1
+ ## 1.2.0 (11/2/2013)
2
+
3
+ * Preparation for fixed glyph code points.
4
+ * Tweaks command line options (more semantic aliases)
5
+ * Renames :data_cache to :manifest
6
+ * Sets the stage for a more streamlined, predictable workflow
7
+ * Drops EPS support (was buggy and unused)
8
+ * Turns glyph width adjustment into an option (off by default) ([#137](https://github.com/FontCustom/fontcustom/pull/137))
9
+ * Relaxes all dependency version requirements ([#127](https://github.com/FontCustom/fontcustom/issues/127))
10
+
1
11
  ## 1.1.1 (10/16/2013)
2
12
 
3
13
  * Preview characters are turned off by default in the preview template.
@@ -1,14 +1,27 @@
1
- # Contributor Guidelines
1
+ ## Help make Font Custom better!
2
2
 
3
- Thanks for helping make Font Custom better. This project was born out of an overheard conversation between two devs in a NYC coffee shop — it's come a long ways thanks to the support of folks like you.
3
+ This project was born out of an overheard conversation between two devs in a
4
+ NYC coffee shop — it's come a long ways thanks to your support.
4
5
 
5
- ## Conventions
6
+ ### Wishlist / Roadmap
6
7
 
7
- We try to follow the [Github ruby styleguide](https://github.com/styleguide/ruby) as much as possible.
8
+ * Ruby on Rails integration
9
+ * Compass integration
10
+ * Base 64 encode fonts into CSS
11
+ * Templates for LESS, stylus, etc.
12
+ * Ligature support
13
+ * Windows support
14
+ * Make better use of Thor
8
15
 
9
- If you catch a typo or a particularly unsightly piece of code — please _do_ let us know. No such thing as too small of an improvement.
16
+ ### Conventions
10
17
 
11
- ## Process
18
+ We try to follow the [Github ruby styleguide](https://github.com/styleguide/ruby)
19
+ as much as possible.
20
+
21
+ If you catch a typo or a block of code that could be more elegant — please let
22
+ us know. No such thing as too small of an improvement.
23
+
24
+ ### Process
12
25
 
13
26
  * Visit [issues](https://github.com/FontCustom/fontcustom/issues) for ideas.
14
27
  * Fork the repo.
data/README.md CHANGED
@@ -1,53 +1,76 @@
1
- # FontCustom v1.1.0
1
+ [![Gem Version](https://badge.fury.io/rb/fontcustom.png)](http://badge.fury.io/rb/fontcustom)
2
+ [![Build Status](https://api.travis-ci.org/FontCustom/fontcustom.png)](https://travis-ci.org/FontCustom/fontcustom)
3
+ [![Code Quality](https://codeclimate.com/github/FontCustom/fontcustom.png)](https://codeclimate.com/github/FontCustom/fontcustom)
2
4
 
3
- **Generate icon webfonts from the comfort of the command line.**
5
+ ## Font Custom
4
6
 
5
- [Full documentation](http://fontcustom.com)<br/>
7
+ **Icon fonts from the command line.**
8
+
9
+ Generate cross-browser compatible icon fonts and supporting files (e.g.
10
+ @font-face CSS) from a collection of SVGs.
11
+
12
+ [Documentation](http://fontcustom.com)<br/>
6
13
  [Changelog](https://github.com/FontCustom/fontcustom/blob/master/CHANGELOG.md)<br/>
7
- [Feedback and issues](https://github.com/FontCustom/fontcustom/issues)
14
+ [Support](https://github.com/FontCustom/fontcustom/issues)<br/>
15
+ [Contribute!](https://github.com/FontCustom/fontcustom/blob/master/CONTRIBUTING.md)
16
+
17
+ ### Installation
8
18
 
9
- ## Installation
19
+ Requires **Ruby 1.9.2+**, **FontForge** with Python scripting.
10
20
 
11
21
  ```sh
12
- # Requires FontForge
22
+ # On Mac
13
23
  brew install fontforge eot-utils ttfautohint
14
24
  gem install fontcustom
25
+
26
+ # On Linux
27
+ sudo apt-get install fontforge ttfautohint
28
+ wget http://people.mozilla.com/~jkew/woff/woff-code-latest.zip
29
+ unzip woff-code-latest.zip -d sfnt2woff && cd sfnt2woff && make && sudo mv sfnt2woff /usr/local/bin/
30
+ gem install fontcustom
15
31
  ```
16
32
 
17
- ## Quick Start
33
+ ### Quick Start
18
34
 
19
35
  ```sh
20
36
  fontcustom compile path/to/vectors # Compiles icons into `fontcustom/`
21
37
  fontcustom watch path/to/vectors # Compiles when vectors are changed/added/removed
22
38
 
23
39
  fontcustom compile # Uses configuration options from `fontcustom.yml`
24
- fontcustom watch # or `config/fontcustom.yml`
40
+ fontcustom watch
25
41
 
42
+ fontcustom config # Generate a blank a configuration file
26
43
  fontcustom help # See all options
27
44
  ```
28
45
 
29
- ## Configuration
46
+ ### Configuration
30
47
 
31
- To avoid finger-fatigue, create a configuration file with `fontcustom config`. Typically, this should live in the directory where you plan on running `fontcustom` commands.
48
+ To preserve options between compiles, create a configuration file with
49
+ `fontcustom config`. This should live in the directory where you plan on
50
+ running `fontcustom` commands.
32
51
 
33
52
  ```yml
34
- # Available Options (defaults shown)
35
- font_name: fontcustom # Names the font (also sets name and directory of generated files)
36
- project_root: (working dir) # Context for all relative paths
53
+ # General Options (defaults shown)
54
+ font_name: fontcustom # Names the font and sets the name and directory
55
+ # of generated files
56
+ project_root: (pwd) # Context for all relative paths
37
57
  input: (project_root) # Where vectors and templates are located
38
58
  output: (project_root)/(font name) # Where generated files will be saved
39
- no_hash: false # Remove asset-busting hashes from generated files
59
+ config: (pwd)/fontcustom.yml # Optional path to a configuration file
60
+ templates: [ css, preview ] # Templates to generate alongside fonts
61
+ # Possible values: preview, css, scss,
62
+ # scss-rails, bootstrap, bootstrap-scss,
63
+ # bootstrap-ie7, bootstrap-ie7-scss
40
64
  css_prefix: icon- # CSS class prefix
65
+ no_hash: false # Don't add asset-busting hashes
41
66
  preprocessor_path: "" # Font path used in CSS proprocessor templates
42
- data_cache: (same as fontcustom.yml) # Sets location of data file
67
+ autowidth: false # Automatically size glyphs based on the width of
68
+ # their individual vectors
43
69
  debug: false # Output raw messages from fontforge
44
70
  quiet: false # Silence all output messages
45
- templates: [ css, preview ] # Templates to generate alongside fonts
46
- # Possible values: preview, css, scss, scss-rails, bootstrap,
47
- # bootstrap-scss, bootstrap-ie7, bootstrap-ie7-scss
48
71
 
49
- # Advanced input/output
50
- # Set input or output as a hash for more control
72
+ # For more control over file locations,
73
+ # set input and output as Yaml hashes
51
74
  input:
52
75
  vectors: path/to/vectors # required
53
76
  templates: path/to/templates
@@ -56,12 +79,24 @@ output:
56
79
  fonts: app/assets/fonts # required
57
80
  css: app/assets/stylesheets
58
81
  preview: app/views/styleguide
59
- custom-template.yml: custom/path # set paths of custom templates by referencing their file name
82
+ custom-template.yml: custom/path
60
83
  ```
61
84
 
85
+ ### SVG Recommendations
86
+
87
+ All vectors are imported as a single layer with colors and strokes ignored. If
88
+ you run into trouble, try combining your paths and ensuring that you don't have
89
+ any white fills (which show up as colored).
90
+
91
+ By default, Font Custom scales each vector to fit a 512x512 canvas with a
92
+ baseline at 448. In practice, that means as long as your SVG `viewBox` is
93
+ square, icons will look exactly like your SVGs.
94
+
95
+ If you set the `autowidth` option, Font Custom will trim the widths of each
96
+ glyph to the vector width. Heights are unaffected.
97
+
62
98
  ---
63
99
 
64
- [Contributor Guidelines](https://github.com/FontCustom/fontcustom/blob/master/CONTRIBUTING.md)<br/>
65
100
  [Licenses](https://github.com/FontCustom/fontcustom/blob/master/LICENSES.txt)
66
101
 
67
102
  Brought to you by [@endtwist](https://github.com/endtwist) and [@ezYZ](https://github.com/ezYZ)
@@ -8,19 +8,19 @@ Gem::Specification.new do |gem|
8
8
  gem.version = Fontcustom::VERSION
9
9
  gem.authors = ["Kai Zau", "Joshua Gross"]
10
10
  gem.email = ["kai@kaizau.com", "joshua@gross.is"]
11
- gem.summary = "Generate icon webfonts from the comfort of the command line."
12
- gem.description = "Transforms EPS and SVG vectors into icon webfonts. Generates CSS or other template files for your projects."
11
+ gem.summary = "Generate icon fonts from the command line."
12
+ gem.description = "Font Custom makes using vector icons easy. Generate icon fonts and supporting templates (e.g. @font-face CSS) from a collection of SVGs."
13
13
  gem.homepage = "http://fontcustom.com"
14
- gem.post_install_message = " >> Thanks for installing Font Custom! Please ensure that fontforge is installed before compiling any icons."
14
+ gem.post_install_message = ">> Thanks for installing Font Custom! Please ensure that fontforge is installed before compiling any icons. Visit <http://fontcustom.com> for instructions."
15
15
 
16
16
  gem.files = `git ls-files`.split($/)
17
17
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
19
  gem.require_paths = ["lib"]
20
20
 
21
- gem.add_dependency "json", "~>1.7"
22
- gem.add_dependency "thor", "~>0.18.1"
23
- gem.add_dependency "listen", "~>1.3.1"
21
+ gem.add_dependency "json", "~>1.4"
22
+ gem.add_dependency "thor", "~>0.14"
23
+ gem.add_dependency "listen", "~>1.0"
24
24
 
25
25
  gem.add_development_dependency "rake"
26
26
  gem.add_development_dependency "bundler"
@@ -29,7 +29,7 @@ module Fontcustom
29
29
  :output => "PROJECT_ROOT/FONT_NAME",
30
30
  :config => "PROJECT_ROOT/fontcustom.yml OR PROJECT_ROOT/config/fontcustom.yml",
31
31
  :templates => "css preview",
32
- :data_cache => "CONFIG_DIR/.fontcustom-data OR at PROJECT_ROOT/.fontcustom-data"
32
+ :manifest => "CONFIG_DIR/.fontcustom-manifest.json OR PROJECT_ROOT/.fontcustom-manifest.json"
33
33
  }
34
34
 
35
35
  DEFAULT_OPTIONS = {
@@ -40,8 +40,9 @@ module Fontcustom
40
40
  :templates => %w|css preview|,
41
41
  :font_name => "fontcustom",
42
42
  :css_prefix => "icon-",
43
- :data_cache => nil,
43
+ :manifest => nil,
44
44
  :preprocessor_path => nil,
45
+ :autowidth => false,
45
46
  :no_hash => false,
46
47
  :debug => false,
47
48
  :quiet => false
@@ -34,17 +34,20 @@ module Fontcustom
34
34
  :desc => "Prefix for each glyph's CSS class.",
35
35
  :default => DEFAULT_OPTIONS[:css_prefix]
36
36
 
37
- class_option :data_cache, :aliases => "-d", :type => :string,
37
+ class_option :manifest, :aliases => "-m", :type => :string,
38
38
  :desc => "Path to a manifest of generated files. Used for garbage collection.",
39
- :default => EXAMPLE_OPTIONS[:data_cache]
39
+ :default => EXAMPLE_OPTIONS[:manifest]
40
40
 
41
- class_option :preprocessor_path, :aliases => "-s", :type => :string,
41
+ class_option :preprocessor_path, :aliases => "-p", :type => :string,
42
42
  :desc => "Optional font path for CSS proprocessor templates."
43
43
 
44
- class_option :no_hash, :aliases => "-h", :type => :boolean,
44
+ class_option :autowidth, :aliases => "-a", :type => :boolean,
45
+ :desc => "Auto-size glyphs to their individual vector widths."
46
+
47
+ class_option :no_hash, :aliases => "-n", :type => :boolean,
45
48
  :desc => "Generate fonts without asset-busting hashes."
46
49
 
47
- class_option :debug, :aliases => "-g", :type => :boolean,
50
+ class_option :debug, :aliases => "-d", :type => :boolean,
48
51
  :desc => "Display debugging messages."
49
52
 
50
53
  class_option :quiet, :aliases => "-q", :type => :boolean,
@@ -23,14 +23,14 @@ module Fontcustom
23
23
  end
24
24
  end
25
25
 
26
- def get_data
27
- if File.exists? opts.data_cache
26
+ def get_manifest
27
+ if File.exists? opts.manifest
28
28
  begin
29
- data = File.read opts.data_cache
29
+ data = File.read opts.manifest
30
30
  data = JSON.parse(data, :symbolize_names => true) unless data.empty?
31
31
  @data = data.is_a?(Hash) ? symbolize_hash(data) : Fontcustom::DATA_MODEL.dup
32
32
  rescue
33
- raise Fontcustom::Error, "Couldn't parse `#{relative_to_root(opts.data_cache)}`. Delete it to start from scratch. Any previously generated files will need to be deleted manually."
33
+ raise Fontcustom::Error, "Couldn't parse `#{relative_to_root(opts.manifest)}`. Delete it to start from scratch. Any previously generated files will need to be deleted manually."
34
34
  end
35
35
  else
36
36
  @data = Fontcustom::DATA_MODEL.dup
@@ -48,13 +48,14 @@ module Fontcustom
48
48
  ensure
49
49
  @data[:fonts] = @data[:fonts] - deleted
50
50
  json = JSON.pretty_generate @data
51
- overwrite_file opts.data_cache, json
51
+ overwrite_file opts.manifest, json
52
52
  say_changed :delete, deleted
53
53
  end
54
54
  end
55
55
 
56
56
  def generate
57
- cmd = "fontforge -script #{Fontcustom.gem_lib}/scripts/generate.py #{opts.input[:vectors]} #{opts.output[:fonts]} --name #{opts.font_name}"
57
+ cmd = "fontforge -script #{Fontcustom.gem_lib}/scripts/generate.py #{opts.input[:vectors]} #{opts.output[:fonts]} --name #{opts.font_name}"
58
+ cmd += " --autowidth" if opts.autowidth
58
59
  cmd += " --nohash" if opts.no_hash
59
60
  cmd += " --debug" if opts.debug
60
61
  output, err, status = execute_and_clean(cmd)
@@ -76,12 +77,12 @@ module Fontcustom
76
77
 
77
78
  def save_data
78
79
  json = JSON.pretty_generate @data
79
- overwrite_file opts.data_cache, json
80
+ overwrite_file opts.manifest, json
80
81
  end
81
82
 
82
83
  private
83
84
 
84
- def execute_and_clean cmd
85
+ def execute_and_clean(cmd)
85
86
  stdout, stderr, status = Open3::capture3(cmd)
86
87
  stdout = stdout.split("\n")
87
88
  stdout = stdout[1..-1] if stdout[0] == "CreateAllPyModules()"
@@ -19,14 +19,14 @@ module Fontcustom
19
19
  File.join Fontcustom.gem_lib, "templates"
20
20
  end
21
21
 
22
- def get_data
23
- if File.exists? opts.data_cache
24
- @data = JSON.parse File.read(opts.data_cache), :symbolize_names => true
22
+ def get_manifest
23
+ if File.exists? opts.manifest
24
+ @data = JSON.parse File.read(opts.manifest), :symbolize_names => true
25
25
  else
26
- raise Fontcustom::Error, "`#{relative_to_root(opts.data_cache)}` is missing. This file is required to generate templates."
26
+ raise Fontcustom::Error, "`#{relative_to_root(opts.manifest)}` is missing. This file is required to generate templates."
27
27
  end
28
28
  rescue
29
- raise Fontcustom::Error, "Couldn't parse `#{relative_to_root(opts.data_cache)}`. Delete it to start from scratch. Any previously generated files will need to be deleted manually."
29
+ raise Fontcustom::Error, "Couldn't parse `#{relative_to_root(opts.manifest)}`. Delete it to start from scratch. Any previously generated files will need to be deleted manually."
30
30
  end
31
31
 
32
32
  def reset_output
@@ -40,7 +40,7 @@ module Fontcustom
40
40
  ensure
41
41
  @data[:templates] = @data[:templates] - deleted
42
42
  json = JSON.pretty_generate @data
43
- overwrite_file opts.data_cache, json
43
+ overwrite_file opts.manifest, json
44
44
  say_changed :delete, deleted
45
45
  end
46
46
  end
@@ -88,7 +88,7 @@ module Fontcustom
88
88
  say_changed :create, created
89
89
  @data[:templates] = (@data[:templates] + created).uniq
90
90
  json = JSON.pretty_generate @data
91
- overwrite_file opts.data_cache, json
91
+ overwrite_file opts.manifest, json
92
92
  end
93
93
  end
94
94
  end
@@ -8,7 +8,7 @@ module Fontcustom
8
8
  class Options
9
9
  include Util
10
10
 
11
- attr_reader :project_root, :input, :output, :config, :templates, :font_name, :css_prefix, :data_cache, :preprocessor_path, :no_hash, :debug, :quiet, :skip_first
11
+ attr_reader :project_root, :input, :output, :config, :templates, :font_name, :css_prefix, :manifest, :preprocessor_path, :autowidth, :no_hash, :debug, :quiet, :skip_first
12
12
 
13
13
  def initialize(options = {})
14
14
  check_fontforge
@@ -91,23 +91,23 @@ module Fontcustom
91
91
  options = DEFAULT_OPTIONS.dup
92
92
  options = options.merge @config_options
93
93
  options = options.merge symbolize_hash(@cli_options)
94
- remove_instance_variable :@config_options
95
- remove_instance_variable :@cli_options
94
+ send :remove_instance_variable, :@config_options
95
+ send :remove_instance_variable, :@cli_options
96
96
 
97
97
  # :config is excluded since it's already been set
98
- keys = %w|project_root input output data_cache templates font_name css_prefix preprocessor_path skip_first no_hash debug quiet|
98
+ keys = %w|project_root input output manifest templates font_name css_prefix preprocessor_path skip_first autowidth no_hash debug quiet|
99
99
  keys.each { |key| instance_variable_set("@#{key}", options[key.to_sym]) }
100
100
 
101
101
  @font_name = @font_name.strip.gsub(/\W/, "-")
102
102
  end
103
103
 
104
104
  def set_data_path
105
- @data_cache = if ! @data_cache.nil?
106
- expand_path @data_cache
105
+ @manifest = if ! @manifest.nil?
106
+ expand_path @manifest
107
107
  elsif @config
108
- File.join File.dirname(@config), ".fontcustom-data"
108
+ File.join File.dirname(@config), ".fontcustom-manifest.json"
109
109
  else
110
- File.join @project_root, ".fontcustom-data"
110
+ File.join @project_root, ".fontcustom-manifest.json"
111
111
  end
112
112
  end
113
113
 
@@ -139,8 +139,8 @@ module Fontcustom
139
139
  @input = { :vectors => input, :templates => input }
140
140
  end
141
141
 
142
- if Dir[File.join(@input[:vectors], "*.{svg,eps}")].empty?
143
- raise Fontcustom::Error, "`#{relative_to_root(@input[:vectors])}` doesn't contain any vectors (*.svg or *.eps files)."
142
+ if Dir[File.join(@input[:vectors], "*.svg")].empty?
143
+ raise Fontcustom::Error, "`#{relative_to_root(@input[:vectors])}` doesn't contain any SVGs."
144
144
  end
145
145
  end
146
146
 
@@ -10,6 +10,7 @@ try:
10
10
  parser = argparse.ArgumentParser(description='Convert a directory of svg and eps files into a unified font file.')
11
11
  parser.add_argument('dir', metavar='directory', type=unicode, nargs=2, help='directory of vector files')
12
12
  parser.add_argument('--name', metavar='fontname', type=unicode, nargs='?', help='reference name of the font (no spaces)')
13
+ parser.add_argument('--autowidth', '-a', action='store_true', help='automatically size generated glyphs to their vector width')
13
14
  parser.add_argument('--nohash', '-n', action='store_true', help='disable hash fingerprinting of font files')
14
15
  parser.add_argument('--debug', '-d', action='store_true', help='display debug messages')
15
16
  args = parser.parse_args()
@@ -20,6 +21,7 @@ except ImportError:
20
21
  import optparse
21
22
  parser = optparse.OptionParser(description='Convert a directory of svg and eps files into a unified font file.')
22
23
  parser.add_option('--name', metavar='fontname', type='string', nargs='?', help='reference name of the font (no spaces)')
24
+ parser.add_option('--autowidth', '-a', action='store_true', help='automatically size generated glyphs to their vector width')
23
25
  parser.add_option('--nohash', '-n', action='store_true', help='disable hash fingerprinting of font files')
24
26
  parser.add_argument('--debug', '-d', action='store_true', help='display debug messages')
25
27
  (args, posargs) = parser.parse_args()
@@ -56,7 +58,7 @@ for dirname, dirnames, filenames in os.walk(indir):
56
58
  # replace the <switch> </switch> tags with 'nothing'
57
59
  svgtext = svgtext.replace('<switch>', '')
58
60
  svgtext = svgtext.replace('</switch>', '')
59
-
61
+
60
62
  tmpsvgfile.file.write(svgtext)
61
63
 
62
64
  svgfile.close()
@@ -64,7 +66,7 @@ for dirname, dirnames, filenames in os.walk(indir):
64
66
 
65
67
  filePath = tmpsvgfile.name
66
68
  # end hack
67
-
69
+
68
70
  m.update(filename + str(size) + ';')
69
71
  glyph = f.createChar(cp)
70
72
  glyph.importOutlines(filePath)
@@ -75,18 +77,25 @@ for dirname, dirnames, filenames in os.walk(indir):
75
77
 
76
78
  # glyph.left_side_bearing = KERNING
77
79
  # glyph.right_side_bearing = KERNING
78
- #glyph.width = 512
79
80
 
80
81
  # possible optimization?
81
82
  # glyph.simplify()
82
83
  # glyph.round()
83
- glyph.left_side_bearing = glyph.right_side_bearing = 0
84
- glyph.round()
84
+
85
+ # set glyph size explicitly or automatically depending on autowidth
86
+ if args.autowidth:
87
+ glyph.left_side_bearing = glyph.right_side_bearing = 0
88
+ glyph.round()
89
+ else:
90
+ # force a manual size when autowidth is disabled
91
+ glyph.width = 512
85
92
 
86
93
  files.append(name)
87
94
  cp += 1
88
95
 
89
- f.autoWidth(0, 0, 512)
96
+ # resize glyphs if autowidth is enabled
97
+ if args.autowidth:
98
+ f.autoWidth(0, 0, 512)
90
99
 
91
100
  if args.nohash:
92
101
  fontfile = outdir + '/' + args.name
@@ -1,44 +1,46 @@
1
- # ---------------------------------------------------------------------------- #
1
+ # --------------------------------------------------------------------------- #
2
2
  # Project Info
3
3
  # Default values shown. Learn more about these options by running
4
- # `fontcustom help` or visit <http://fontcustom.com>.
5
- # ---------------------------------------------------------------------------- #
4
+ # `fontcustom help` or visiting <http://fontcustom.com>.
5
+ # --------------------------------------------------------------------------- #
6
6
 
7
7
  #font_name: fontcustom
8
8
  #css_prefix: icon-
9
9
  #preprocessor_path: ""
10
+ #autowidth: false
10
11
  #no_hash: false
11
12
  #debug: false
12
13
  #quiet: false
13
14
 
14
15
 
15
- # ---------------------------------------------------------------------------- #
16
+ # --------------------------------------------------------------------------- #
16
17
  # Project Paths
17
- # Relative paths are expanded from PROJECT_ROOT (default: working directory).
18
- # INPUT and OUTPUT can be assigned as hashes instead of a strings.
19
- # The OUPUT hash can route custom templates according to their filename.
20
- # ---------------------------------------------------------------------------- #
18
+ # Relative paths are expanded from PROJECT_ROOT (defaults to the directory
19
+ # where the fontcustom command is run). INPUT and OUTPUT can be strings or
20
+ # hashes or file types / names.
21
+ # --------------------------------------------------------------------------- #
21
22
 
22
23
  #project_root: some/other/place
23
- #data_cache: tmp/fontcustom
24
+ #manifest: tmp/fontcustom
24
25
 
25
26
  #input:
26
- # vectors: app/assets/fonts/fontcustom/vectors
27
+ # vectors: app/assets/fonts/fontcustom/vectors # required
27
28
  # templates: app/assets/fonts/fontcustom/templates
28
29
 
29
30
  #output:
30
- # fonts: app/assets/fonts
31
+ # fonts: app/assets/fonts # required
31
32
  # css: app/assets/stylesheets
32
33
  # preview: app/views/styleguide
33
34
  # my-custom-template.yml: config
34
35
 
35
36
 
36
- # ---------------------------------------------------------------------------- #
37
+ # --------------------------------------------------------------------------- #
37
38
  # Templates
38
39
  # Included in Font Custom:
39
40
  # preview, css, scss, scss-rails, bootstrap, bootstrap-scss, bootstrap-ie7,
40
41
  # bootstrap-ie7-scss
41
- # Custom templates should be saved in the INPUT[:templates] directory.
42
- # ---------------------------------------------------------------------------- #
42
+ # Custom templates should be saved in the INPUT[:templates] directory and
43
+ # referenced by their base file name.
44
+ # --------------------------------------------------------------------------- #
43
45
 
44
46
  #templates: [ scss, preview, my-custom-template.yml ]
@@ -1,3 +1,3 @@
1
1
  module Fontcustom
2
- VERSION = "1.1.1"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -40,7 +40,7 @@ describe Fontcustom::Generator::Font do
40
40
  end
41
41
  end
42
42
 
43
- context "#get_data" do
43
+ context "#get_manifest" do
44
44
  it "should assign empty data model if data file is empty or missing" do
45
45
  options = {
46
46
  :project_root => fixture,
@@ -48,7 +48,7 @@ describe Fontcustom::Generator::Font do
48
48
  :quiet => true
49
49
  }
50
50
  gen = generator options
51
- gen.get_data
51
+ gen.get_manifest
52
52
  data = gen.instance_variable_get("@data")
53
53
  data.should == Fontcustom::DATA_MODEL
54
54
  end
@@ -62,7 +62,7 @@ describe Fontcustom::Generator::Font do
62
62
  :quiet => true
63
63
  }
64
64
  gen = generator options
65
- gen.get_data
65
+ gen.get_manifest
66
66
  data = gen.instance_variable_get("@data")
67
67
  data.should_not == Fontcustom::DATA_MODEL
68
68
  end
@@ -71,13 +71,13 @@ describe Fontcustom::Generator::Font do
71
71
  options = {
72
72
  :project_root => fixture,
73
73
  :config => "generators",
74
- :data_cache => "generators/.fontcustom-data-corrupted",
74
+ :manifest => "generators/.fontcustom-manifest-corrupted.json",
75
75
  :input => "shared/vectors",
76
76
  :output => "mixed-output",
77
77
  :quiet => true
78
78
  }
79
79
  gen = generator options
80
- expect { gen.get_data }.to raise_error Fontcustom::Error, /corrupted/
80
+ expect { gen.get_manifest }.to raise_error Fontcustom::Error, /corrupted/
81
81
  end
82
82
  end
83
83
 
@@ -114,7 +114,7 @@ describe Fontcustom::Generator::Font do
114
114
  end
115
115
 
116
116
  it "should update the data file" do
117
- file = fixture(".fontcustom-data")
117
+ file = fixture(".fontcustom-manifest.json")
118
118
  subject.should_receive(:overwrite_file).once.with(file, /"fonts":/)
119
119
  subject.reset_output
120
120
  end
@@ -219,7 +219,7 @@ describe Fontcustom::Generator::Font do
219
219
  )
220
220
  gen.stub :overwrite_file
221
221
  gen.instance_variable_set(:@data, data_file_contents)
222
- file = File.join fixture(".fontcustom-data")
222
+ file = File.join fixture(".fontcustom-manifest.json")
223
223
  gen.should_receive(:overwrite_file).once.with do |path, content|
224
224
  path.should == file
225
225
  content.should match(/"fonts":/)
@@ -11,14 +11,14 @@ describe Fontcustom::Generator::Template do
11
11
  Fontcustom::Generator::Template.new([opts])
12
12
  end
13
13
 
14
- context "#get_data" do
14
+ context "#get_manifest" do
15
15
  it "should raise error if data file doesn't exist" do
16
16
  gen = generator(
17
17
  :project_root => fixture,
18
18
  :input => "shared/vectors",
19
19
  :quiet => true
20
20
  )
21
- expect { gen.get_data }.to raise_error Fontcustom::Error, /\.fontcustom-data/
21
+ expect { gen.get_manifest }.to raise_error Fontcustom::Error, /\.fontcustom-manifest\.json/
22
22
  end
23
23
 
24
24
  it "should assign @data from data file" do
@@ -27,7 +27,7 @@ describe Fontcustom::Generator::Template do
27
27
  :input => "../shared/vectors",
28
28
  :quiet => true
29
29
  )
30
- gen.get_data
30
+ gen.get_manifest
31
31
  gen.instance_variable_get(:@data)[:templates].should =~ data_file_contents[:templates]
32
32
  end
33
33
  end
@@ -64,7 +64,7 @@ describe Fontcustom::Generator::Template do
64
64
  end
65
65
 
66
66
  it "should update the data file" do
67
- file = fixture("generators/.fontcustom-data")
67
+ file = fixture("generators/.fontcustom-manifest.json")
68
68
  subject.should_receive(:overwrite_file).once.with(file, /"templates":/)
69
69
  subject.reset_output
70
70
  end
@@ -136,7 +136,7 @@ describe Fontcustom::Generator::Template do
136
136
  end
137
137
 
138
138
  it "should update data file with generated templates" do
139
- file = fixture("generators/.fontcustom-data")
139
+ file = fixture("generators/.fontcustom-manifest.json")
140
140
  subject.should_receive(:overwrite_file).once.with do |path, content|
141
141
  path.should == file
142
142
  content.should match(/fontcustom\.css/)
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  require 'spec_helper'
2
3
 
3
4
  describe Fontcustom::Options do
@@ -125,7 +126,8 @@ describe Fontcustom::Options do
125
126
  o = options
126
127
  o.instance_variable_set :@config_options, {}
127
128
  o.send :merge_options
128
- o.instance_variables.length.should == Fontcustom::DEFAULT_OPTIONS.length + 2 # @shell, @mock_proxy (rspec)
129
+ o.send :remove_instance_variable, :@mock_proxy if o.instance_variable_get(:@mock_proxy)
130
+ o.instance_variables.length.should == Fontcustom::DEFAULT_OPTIONS.length + 1 # @shell
129
131
  end
130
132
 
131
133
  it "should overwrite defaults with config file" do
@@ -154,24 +156,24 @@ describe Fontcustom::Options do
154
156
  end
155
157
 
156
158
  context ".set_data_path" do
157
- it "should set :data_cache in the config dir by default" do
159
+ it "should set :manifest in the config dir by default" do
158
160
  silent
159
161
  o = options
160
162
  o.instance_variable_set :@config, "path/to/config/fontcustom.yml"
161
- o.instance_variable_set :@data_cache, nil
162
- o.remove_instance_variable :@cli_options
163
+ o.instance_variable_set :@manifest, nil
164
+ o.send :remove_instance_variable, :@cli_options
163
165
  o.send :set_data_path
164
- o.instance_variable_get(:@data_cache).should == "path/to/config/.fontcustom-data"
166
+ o.instance_variable_get(:@manifest).should == "path/to/config/.fontcustom-manifest.json"
165
167
  end
166
168
  end
167
169
 
168
170
  context "#send :set_input_paths" do
169
- it "should raise error if input[:vectors] doesn't contain vectors" do
171
+ it "should raise error if input[:vectors] doesn't contain SVGs" do
170
172
  o = options
171
173
  o.instance_variable_set :@project_root, fixture
172
174
  o.instance_variable_set :@input, "shared/vectors-empty"
173
- o.remove_instance_variable :@cli_options
174
- expect { o.send :set_input_paths }.to raise_error Fontcustom::Error, /doesn't contain any vectors/
175
+ o.send :remove_instance_variable, :@cli_options
176
+ expect { o.send :set_input_paths }.to raise_error Fontcustom::Error, /doesn't contain any SVGs/
175
177
  end
176
178
 
177
179
  context "when @input is a hash" do
@@ -180,7 +182,7 @@ describe Fontcustom::Options do
180
182
  o = options
181
183
  o.instance_variable_set :@project_root, fixture
182
184
  o.instance_variable_set :@input, hash
183
- o.remove_instance_variable :@cli_options
185
+ o.send :remove_instance_variable, :@cli_options
184
186
  o.send :set_input_paths
185
187
  input = o.instance_variable_get :@input
186
188
  input[:templates].should == fixture("shared/vectors")
@@ -191,7 +193,7 @@ describe Fontcustom::Options do
191
193
  o = options
192
194
  o.instance_variable_set :@project_root, fixture
193
195
  o.instance_variable_set :@input, hash
194
- o.remove_instance_variable :@cli_options
196
+ o.send :remove_instance_variable, :@cli_options
195
197
  o.send :set_input_paths
196
198
  input = o.instance_variable_get :@input
197
199
  input[:templates].should == fixture("shared/templates")
@@ -202,7 +204,7 @@ describe Fontcustom::Options do
202
204
  o = options
203
205
  o.instance_variable_set :@project_root, fixture
204
206
  o.instance_variable_set :@input, hash
205
- o.remove_instance_variable :@cli_options
207
+ o.send :remove_instance_variable, :@cli_options
206
208
  expect { o.send :set_input_paths }.to raise_error Fontcustom::Error, /contain a :vectors key/
207
209
  end
208
210
 
@@ -211,7 +213,7 @@ describe Fontcustom::Options do
211
213
  o = options
212
214
  o.instance_variable_set :@project_root, fixture
213
215
  o.instance_variable_set :@input, hash
214
- o.remove_instance_variable :@cli_options
216
+ o.send :remove_instance_variable, :@cli_options
215
217
  expect { o.send :set_input_paths }.to raise_error Fontcustom::Error, /should be a directory/
216
218
  end
217
219
  end
@@ -221,7 +223,7 @@ describe Fontcustom::Options do
221
223
  o = options
222
224
  o.instance_variable_set :@project_root, fixture
223
225
  o.instance_variable_set :@input, "shared/vectors"
224
- o.remove_instance_variable :@cli_options
226
+ o.send :remove_instance_variable, :@cli_options
225
227
  o.send :set_input_paths
226
228
  input = o.instance_variable_get :@input
227
229
  input.should have_key(:vectors)
@@ -232,7 +234,7 @@ describe Fontcustom::Options do
232
234
  o = options
233
235
  o.instance_variable_set :@project_root, fixture
234
236
  o.instance_variable_set :@input, "shared/vectors"
235
- o.remove_instance_variable :@cli_options
237
+ o.send :remove_instance_variable, :@cli_options
236
238
  o.send :set_input_paths
237
239
  input = o.instance_variable_get :@input
238
240
  input[:templates].should == fixture("shared/vectors")
@@ -242,7 +244,7 @@ describe Fontcustom::Options do
242
244
  o = options
243
245
  o.instance_variable_set :@project_root, fixture
244
246
  o.instance_variable_set :@input, "shared/not-a-dir"
245
- o.remove_instance_variable :@cli_options
247
+ o.send :remove_instance_variable, :@cli_options
246
248
  expect { o.send :set_input_paths }.to raise_error Fontcustom::Error, /should be a directory/
247
249
  end
248
250
  end
@@ -256,7 +258,7 @@ describe Fontcustom::Options do
256
258
  o.instance_variable_set :@project_root, fixture
257
259
  o.instance_variable_set :@font_name, "Test-Font"
258
260
  o.instance_variable_set :@output, nil
259
- o.remove_instance_variable :@cli_options
261
+ o.send :remove_instance_variable, :@cli_options
260
262
  o.send :set_output_paths
261
263
  output = o.instance_variable_get :@output
262
264
  output[:fonts].should == fixture("Test-Font")
@@ -267,7 +269,7 @@ describe Fontcustom::Options do
267
269
  o.instance_variable_set :@project_root, fixture
268
270
  o.instance_variable_set :@font_name, "Test-Font"
269
271
  o.instance_variable_set :@output, nil
270
- o.remove_instance_variable :@cli_options
272
+ o.send :remove_instance_variable, :@cli_options
271
273
  stdout = capture(:stdout) { o.send :set_output_paths }
272
274
  stdout.should match("Test-Font")
273
275
  end
@@ -279,7 +281,7 @@ describe Fontcustom::Options do
279
281
  o = options
280
282
  o.instance_variable_set :@project_root, fixture
281
283
  o.instance_variable_set :@output, hash
282
- o.remove_instance_variable :@cli_options
284
+ o.send :remove_instance_variable, :@cli_options
283
285
  o.send :set_output_paths
284
286
  output = o.instance_variable_get :@output
285
287
  output[:css].should == fixture("output/fonts")
@@ -295,7 +297,7 @@ describe Fontcustom::Options do
295
297
  o = options
296
298
  o.instance_variable_set :@project_root, fixture
297
299
  o.instance_variable_set :@output, hash
298
- o.remove_instance_variable :@cli_options
300
+ o.send :remove_instance_variable, :@cli_options
299
301
  o.send :set_output_paths
300
302
  output = o.instance_variable_get :@output
301
303
  output[:css].should == fixture("output/styles")
@@ -310,7 +312,7 @@ describe Fontcustom::Options do
310
312
  o = options
311
313
  o.instance_variable_set :@project_root, fixture
312
314
  o.instance_variable_set :@output, hash
313
- o.remove_instance_variable :@cli_options
315
+ o.send :remove_instance_variable, :@cli_options
314
316
  o.send :set_output_paths
315
317
  output = o.instance_variable_get :@output
316
318
  output[:"special.js"].should == fixture("assets/javascripts")
@@ -321,7 +323,7 @@ describe Fontcustom::Options do
321
323
  o = options
322
324
  o.instance_variable_set :@project_root, fixture
323
325
  o.instance_variable_set :@output, hash
324
- o.remove_instance_variable :@cli_options
326
+ o.send :remove_instance_variable, :@cli_options
325
327
  expect { o.send :set_output_paths }.to raise_error Fontcustom::Error, /contain a :fonts key/
326
328
  end
327
329
  end
@@ -331,7 +333,7 @@ describe Fontcustom::Options do
331
333
  o = options
332
334
  o.instance_variable_set :@project_root, fixture
333
335
  o.instance_variable_set :@output, "output/fonts"
334
- o.remove_instance_variable :@cli_options
336
+ o.send :remove_instance_variable, :@cli_options
335
337
  o.send :set_output_paths
336
338
  output = o.instance_variable_get :@output
337
339
  output.should be_a(Hash)
@@ -344,7 +346,7 @@ describe Fontcustom::Options do
344
346
  o = options
345
347
  o.instance_variable_set :@project_root, fixture
346
348
  o.instance_variable_set :@output, "output/fonts"
347
- o.remove_instance_variable :@cli_options
349
+ o.send :remove_instance_variable, :@cli_options
348
350
  o.send :set_output_paths
349
351
  output = o.instance_variable_get :@output
350
352
  output[:css].should == fixture("output/fonts")
@@ -355,7 +357,7 @@ describe Fontcustom::Options do
355
357
  o = options
356
358
  o.instance_variable_set :@project_root, fixture
357
359
  o.instance_variable_set :@output, "shared/not-a-dir"
358
- o.remove_instance_variable :@cli_options
360
+ o.send :remove_instance_variable, :@cli_options
359
361
  expect { o.send :set_output_paths }.to raise_error Fontcustom::Error, /directory, not a file/
360
362
  end
361
363
  end
@@ -367,7 +369,7 @@ describe Fontcustom::Options do
367
369
  o.instance_variable_set :@project_root, fixture
368
370
  o.instance_variable_set :@input, { :templates => "shared/templates" }
369
371
  o.instance_variable_set :@templates, %w|preview css scss bootstrap bootstrap-scss bootstrap-ie7 bootstrap-ie7-scss|
370
- o.remove_instance_variable :@cli_options
372
+ o.send :remove_instance_variable, :@cli_options
371
373
  o.send :set_template_paths
372
374
  templates = o.instance_variable_get :@templates
373
375
  templates.should =~ [
@@ -386,7 +388,7 @@ describe Fontcustom::Options do
386
388
  o.instance_variable_set :@project_root, fixture
387
389
  o.instance_variable_set :@input, { :templates => fixture("shared/templates") }
388
390
  o.instance_variable_set :@templates, %w|custom.css|
389
- o.remove_instance_variable :@cli_options
391
+ o.send :remove_instance_variable, :@cli_options
390
392
  o.send :set_template_paths
391
393
  templates = o.instance_variable_get :@templates
392
394
  templates.should =~ [fixture("shared/templates/custom.css")]
@@ -397,7 +399,7 @@ describe Fontcustom::Options do
397
399
  o.instance_variable_set :@project_root, fixture
398
400
  o.instance_variable_set :@input, { :templates => "shared/templates" }
399
401
  o.instance_variable_set :@templates, %w|fake-template.txt|
400
- o.remove_instance_variable :@cli_options
402
+ o.send :remove_instance_variable, :@cli_options
401
403
  expect { o.send :set_template_paths }.to raise_error Fontcustom::Error, /does not exist/
402
404
  end
403
405
  end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fontcustom
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Kai Zau
@@ -9,94 +10,106 @@ authors:
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2013-10-17 00:00:00.000000000 Z
13
+ date: 2013-11-03 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: json
16
17
  requirement: !ruby/object:Gem::Requirement
18
+ none: false
17
19
  requirements:
18
20
  - - ~>
19
21
  - !ruby/object:Gem::Version
20
- version: '1.7'
22
+ version: '1.4'
21
23
  type: :runtime
22
24
  prerelease: false
23
25
  version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
24
27
  requirements:
25
28
  - - ~>
26
29
  - !ruby/object:Gem::Version
27
- version: '1.7'
30
+ version: '1.4'
28
31
  - !ruby/object:Gem::Dependency
29
32
  name: thor
30
33
  requirement: !ruby/object:Gem::Requirement
34
+ none: false
31
35
  requirements:
32
36
  - - ~>
33
37
  - !ruby/object:Gem::Version
34
- version: 0.18.1
38
+ version: '0.14'
35
39
  type: :runtime
36
40
  prerelease: false
37
41
  version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
38
43
  requirements:
39
44
  - - ~>
40
45
  - !ruby/object:Gem::Version
41
- version: 0.18.1
46
+ version: '0.14'
42
47
  - !ruby/object:Gem::Dependency
43
48
  name: listen
44
49
  requirement: !ruby/object:Gem::Requirement
50
+ none: false
45
51
  requirements:
46
52
  - - ~>
47
53
  - !ruby/object:Gem::Version
48
- version: 1.3.1
54
+ version: '1.0'
49
55
  type: :runtime
50
56
  prerelease: false
51
57
  version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
52
59
  requirements:
53
60
  - - ~>
54
61
  - !ruby/object:Gem::Version
55
- version: 1.3.1
62
+ version: '1.0'
56
63
  - !ruby/object:Gem::Dependency
57
64
  name: rake
58
65
  requirement: !ruby/object:Gem::Requirement
66
+ none: false
59
67
  requirements:
60
- - - '>='
68
+ - - ! '>='
61
69
  - !ruby/object:Gem::Version
62
70
  version: '0'
63
71
  type: :development
64
72
  prerelease: false
65
73
  version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
66
75
  requirements:
67
- - - '>='
76
+ - - ! '>='
68
77
  - !ruby/object:Gem::Version
69
78
  version: '0'
70
79
  - !ruby/object:Gem::Dependency
71
80
  name: bundler
72
81
  requirement: !ruby/object:Gem::Requirement
82
+ none: false
73
83
  requirements:
74
- - - '>='
84
+ - - ! '>='
75
85
  - !ruby/object:Gem::Version
76
86
  version: '0'
77
87
  type: :development
78
88
  prerelease: false
79
89
  version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
80
91
  requirements:
81
- - - '>='
92
+ - - ! '>='
82
93
  - !ruby/object:Gem::Version
83
94
  version: '0'
84
95
  - !ruby/object:Gem::Dependency
85
96
  name: rspec
86
97
  requirement: !ruby/object:Gem::Requirement
98
+ none: false
87
99
  requirements:
88
- - - '>='
100
+ - - ! '>='
89
101
  - !ruby/object:Gem::Version
90
102
  version: '0'
91
103
  type: :development
92
104
  prerelease: false
93
105
  version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
94
107
  requirements:
95
- - - '>='
108
+ - - ! '>='
96
109
  - !ruby/object:Gem::Version
97
110
  version: '0'
98
- description: Transforms EPS and SVG vectors into icon webfonts. Generates CSS or other
99
- template files for your projects.
111
+ description: Font Custom makes using vector icons easy. Generate icon fonts and supporting
112
+ templates (e.g. @font-face CSS) from a collection of SVGs.
100
113
  email:
101
114
  - kai@kaizau.com
102
115
  - joshua@gross.is
@@ -106,6 +119,7 @@ extensions: []
106
119
  extra_rdoc_files: []
107
120
  files:
108
121
  - .gitignore
122
+ - .travis.yml
109
123
  - CHANGELOG.md
110
124
  - CONTRIBUTING.md
111
125
  - Gemfile
@@ -135,8 +149,8 @@ files:
135
149
  - lib/fontcustom/util.rb
136
150
  - lib/fontcustom/version.rb
137
151
  - lib/fontcustom/watcher.rb
138
- - spec/fixtures/generators/.fontcustom-data
139
- - spec/fixtures/generators/.fontcustom-data-corrupted
152
+ - spec/fixtures/generators/.fontcustom-manifest-corrupted.json
153
+ - spec/fixtures/generators/.fontcustom-manifest.json
140
154
  - spec/fixtures/generators/fontcustom.yml
141
155
  - spec/fixtures/generators/mixed-output/another-font.ttf
142
156
  - spec/fixtures/generators/mixed-output/dont-delete-me.bro
@@ -167,31 +181,39 @@ files:
167
181
  - spec/spec_helper.rb
168
182
  homepage: http://fontcustom.com
169
183
  licenses: []
170
- metadata: {}
171
- post_install_message: ' >> Thanks for installing Font Custom! Please ensure that
172
- fontforge is installed before compiling any icons.'
184
+ post_install_message: ! '>> Thanks for installing Font Custom! Please ensure that
185
+ fontforge is installed before compiling any icons. Visit <http://fontcustom.com>
186
+ for instructions.'
173
187
  rdoc_options: []
174
188
  require_paths:
175
189
  - lib
176
190
  required_ruby_version: !ruby/object:Gem::Requirement
191
+ none: false
177
192
  requirements:
178
- - - '>='
193
+ - - ! '>='
179
194
  - !ruby/object:Gem::Version
180
195
  version: '0'
196
+ segments:
197
+ - 0
198
+ hash: 1146963489862796142
181
199
  required_rubygems_version: !ruby/object:Gem::Requirement
200
+ none: false
182
201
  requirements:
183
- - - '>='
202
+ - - ! '>='
184
203
  - !ruby/object:Gem::Version
185
204
  version: '0'
205
+ segments:
206
+ - 0
207
+ hash: 1146963489862796142
186
208
  requirements: []
187
209
  rubyforge_project:
188
- rubygems_version: 2.0.3
210
+ rubygems_version: 1.8.23
189
211
  signing_key:
190
- specification_version: 4
191
- summary: Generate icon webfonts from the comfort of the command line.
212
+ specification_version: 3
213
+ summary: Generate icon fonts from the command line.
192
214
  test_files:
193
- - spec/fixtures/generators/.fontcustom-data
194
- - spec/fixtures/generators/.fontcustom-data-corrupted
215
+ - spec/fixtures/generators/.fontcustom-manifest-corrupted.json
216
+ - spec/fixtures/generators/.fontcustom-manifest.json
195
217
  - spec/fixtures/generators/fontcustom.yml
196
218
  - spec/fixtures/generators/mixed-output/another-font.ttf
197
219
  - spec/fixtures/generators/mixed-output/dont-delete-me.bro
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 4fc3add333473a23ddcb18a08c6b01eed71a029e
4
- data.tar.gz: 2e0d757e1a0b038dc6bc8abdb22d900b24cbb268
5
- SHA512:
6
- metadata.gz: 395f8eda59b936c25d52d832984dc514e594df0ba1a4742e652aa3115cfd388fbd8700e18eb72d6bc485af2b8dd784afedbe26e545117ebd3aea7b7970a5b377
7
- data.tar.gz: d7fc088e213741da7d607273ebe9896fb836c6e7d66028bdbb4aeb950d3f45d4fcb3ea0168c7b98fa2fbef662d14841d133407a1adb9e01ccaebfd0124ab0933