fontastic2sass 1.0.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.
- checksums.yaml +7 -0
- data/bin/fontastic2sass +3 -0
- data/lib/fontastic2sass/archive.rb +23 -0
- data/lib/fontastic2sass/cli.rb +31 -0
- data/lib/fontastic2sass/dir.rb +21 -0
- data/lib/fontastic2sass/font.rb +24 -0
- data/lib/fontastic2sass/sass.rb +42 -0
- data/lib/fontastic2sass/templates/list.sass.erb +27 -0
- data/lib/fontastic2sass/templates/map.sass.erb +51 -0
- data/lib/fontastic2sass/templates/oocss_list.sass.erb +7 -0
- data/lib/fontastic2sass/templates/oocss_map.sass.erb +6 -0
- data/lib/fontastic2sass/utilities.rb +9 -0
- data/lib/fontastic2sass/version.rb +4 -0
- data/lib/fontastic2sass/zip.rb +22 -0
- data/lib/fontastic2sass.rb +72 -0
- data/lib/hash.rb +26 -0
- data/lib/run.rb +96 -0
- metadata +104 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: eb468deae4baf15a019bc0233f3646c65a908679
|
4
|
+
data.tar.gz: c05b43d68f048a571d6533f24ab97197a24abd98
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1576aedf8ee7c5fd0910917e4a72bcbe99c04f6290fef5194bf601afb7a0269414d7145bbe50360d7e7310ac65f9b67f7b0f470edf080be72e9e436c21ce3a1a
|
7
|
+
data.tar.gz: 2b0b731e45ee4dc741f00912949756c8e4ecf6e959ecdf7ccb76516984e3befe962ce3c896c4c8c28cb0f172fca546fa3fc2601562027f8daa6d3d32e320bab0
|
data/bin/fontastic2sass
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
class Fontastic2Sass::Archive
|
2
|
+
attr_reader :files
|
3
|
+
|
4
|
+
EXTRACTABLE_PATTERN = /(fonts\/.*|styles\.css|icons-reference\.html)/
|
5
|
+
|
6
|
+
def font_files
|
7
|
+
@_font_files ||= @files.reject {|key| !key.match(/fonts/) }
|
8
|
+
end
|
9
|
+
|
10
|
+
def metadata_file
|
11
|
+
@_metadata_file ||= @files.reject {|key| !key.match(/styles.css/) }.values.first
|
12
|
+
end
|
13
|
+
|
14
|
+
def demo_files
|
15
|
+
@_demo_files ||= begin
|
16
|
+
demo_files = @files.reject {|key| !key.match(/(\.html|\.css)/) }
|
17
|
+
demo_files['demo-files/style.css'] = demo_files.delete('styles.css')
|
18
|
+
demo_files
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'thor/group'
|
3
|
+
require 'fontastic2sass'
|
4
|
+
|
5
|
+
class Fontastic2Sass::CLI < Thor::Group
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
argument :source
|
9
|
+
|
10
|
+
class_option :'font-path', type: :string, default: './', desc: 'Destination path for font files'
|
11
|
+
class_option :'sass-path', type: :string, default: './', desc: 'Destination path for Sass files'
|
12
|
+
class_option :scss, type: :boolean, default: false, desc: 'Use the SCSS syntax'
|
13
|
+
class_option :compatible, aliases: '-c', type: :boolean, default: false, desc: 'Generate code compatible with Sass 3.2'
|
14
|
+
class_option :oocss, type: :boolean, default: false, desc: 'Generate OOCSS-style classes'
|
15
|
+
class_option :'demo-path', type: :string, default: false, desc: 'Destination path for demo.html'
|
16
|
+
|
17
|
+
def start
|
18
|
+
|
19
|
+
begin
|
20
|
+
Fontastic2Sass.run! source, options['font-path'], options['sass-path'], options
|
21
|
+
|
22
|
+
rescue Exception => e
|
23
|
+
say_status(e, '', :red)
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
return
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class Fontastic2Sass::Dir < Fontastic2Sass::Archive
|
2
|
+
|
3
|
+
def initialize(directory)
|
4
|
+
@files = {}
|
5
|
+
|
6
|
+
Dir.glob("#{directory}/**/*", File::FNM_DOTMATCH) do |file|
|
7
|
+
next if ['.','..','.DS_Store'].include? file
|
8
|
+
|
9
|
+
@files[file.sub("#{directory}/", '')] = File.read(file) if extractable? file
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def extractable?(entry)
|
17
|
+
return EXTRACTABLE_PATTERN.match(entry) && File.file?(entry)
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class Fontastic2Sass::Font
|
2
|
+
attr_reader :font_family
|
3
|
+
|
4
|
+
def initialize(file)
|
5
|
+
@font_family = file.scan(/font-family\: \"(.+)\"/).first.first
|
6
|
+
|
7
|
+
@raw_icons = file.scan(/\.icon-(.+)\:.+{\s+content\: \"(.+)\"/)
|
8
|
+
end
|
9
|
+
|
10
|
+
def icons
|
11
|
+
@icons ||= begin
|
12
|
+
icons = {}
|
13
|
+
|
14
|
+
@raw_icons.each do |icon|
|
15
|
+
icons[icon.first] = {
|
16
|
+
codepoint: icon.last
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
icons
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'erb'
|
2
|
+
require 'sass'
|
3
|
+
|
4
|
+
class Fontastic2Sass::Sass
|
5
|
+
attr_reader :code, :syntax
|
6
|
+
|
7
|
+
def initialize(font, syntax = 'sass', compatible = false)
|
8
|
+
@font = font
|
9
|
+
@syntax = syntax
|
10
|
+
|
11
|
+
@format = compatible ? 'list' : 'map'
|
12
|
+
|
13
|
+
@code = sass_convert 'sass', syntax, template(@format)
|
14
|
+
end
|
15
|
+
|
16
|
+
def oocss
|
17
|
+
sass_convert 'sass', syntax, template("oocss_#{@format}")
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def template(tmpl)
|
23
|
+
icons = @font.icons
|
24
|
+
font_family = @font.font_family
|
25
|
+
|
26
|
+
renderer = ERB.new File.read("#{File.dirname(__FILE__)}/templates/#{tmpl}.sass.erb")
|
27
|
+
renderer.result(binding)
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
def sass_convert(from_syntax, to_syntax, sass)
|
32
|
+
return sass if from_syntax == to_syntax
|
33
|
+
|
34
|
+
begin
|
35
|
+
Sass::Engine.new(sass, {:from => from_syntax.to_sym, :to => to_syntax.to_sym, :syntax => from_syntax.to_sym}).to_tree.send("to_#{to_syntax}").chomp
|
36
|
+
rescue Sass::SyntaxError => e
|
37
|
+
sass
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
// This file was generated with fontastic2sass. (https://github.com/jedfoster/fontastic2sass)
|
2
|
+
// You may lose edits if you run fontastic2sass again.
|
3
|
+
|
4
|
+
<% icons.each do |icon, content|
|
5
|
+
%>$<%= "#{icon}-icon: \'#{content[:codepoint]}\'" %>
|
6
|
+
<% end %>
|
7
|
+
|
8
|
+
%icon-pseudo-content
|
9
|
+
font-family: '<%= font_family %>'
|
10
|
+
speak: none
|
11
|
+
font-style: normal
|
12
|
+
font-weight: normal
|
13
|
+
font-variant: normal
|
14
|
+
text-transform: none
|
15
|
+
line-height: 1
|
16
|
+
|
17
|
+
// Better Font Rendering
|
18
|
+
-webkit-font-smoothing: antialiased
|
19
|
+
-moz-osx-font-smoothing: grayscale
|
20
|
+
|
21
|
+
<% icons.each do |icon, content| %>
|
22
|
+
<%= "%#{icon}-icon" %>
|
23
|
+
@extend %icon-pseudo-content
|
24
|
+
|
25
|
+
content: <%= "$#{icon}-icon" %>
|
26
|
+
<% end %>
|
27
|
+
|
@@ -0,0 +1,51 @@
|
|
1
|
+
$icons: ( <%=
|
2
|
+
list = []
|
3
|
+
icons.each do |icon, contents|
|
4
|
+
list.push "#{icon}: '#{contents[:codepoint]}'"
|
5
|
+
end
|
6
|
+
|
7
|
+
list.join(", ")
|
8
|
+
%> )
|
9
|
+
|
10
|
+
|
11
|
+
///**
|
12
|
+
// * Allows you to access an individual icon by name.
|
13
|
+
// *
|
14
|
+
// * @param {String} $name - name of icon
|
15
|
+
// *
|
16
|
+
// * @example scss
|
17
|
+
// * .foo {
|
18
|
+
// * content: icon(github);
|
19
|
+
// * }
|
20
|
+
// *
|
21
|
+
// * @return {String | Null}
|
22
|
+
// */
|
23
|
+
@function icon($name)
|
24
|
+
@return map-get($icons, $name)
|
25
|
+
|
26
|
+
|
27
|
+
// This file was generated with fontastic2sass. (https://github.com/jedfoster/fontastic2sass)
|
28
|
+
// You may lose edits if you run fontastic2sass again.
|
29
|
+
|
30
|
+
%icon-pseudo-content
|
31
|
+
font-family: '<%= font_family %>'
|
32
|
+
speak: none
|
33
|
+
font-style: normal
|
34
|
+
font-weight: normal
|
35
|
+
font-variant: normal
|
36
|
+
text-transform: none
|
37
|
+
line-height: 1
|
38
|
+
vertical-align: middle
|
39
|
+
|
40
|
+
// Better Font Rendering
|
41
|
+
-webkit-font-smoothing: antialiased
|
42
|
+
-moz-osx-font-smoothing: grayscale
|
43
|
+
|
44
|
+
|
45
|
+
@each $placeholder, $content in $icons
|
46
|
+
%#{$placeholder}-icon
|
47
|
+
@extend %icon-pseudo-content
|
48
|
+
|
49
|
+
@each $value in $content
|
50
|
+
content: $value
|
51
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'zip'
|
2
|
+
|
3
|
+
class Fontastic2Sass::Zip < Fontastic2Sass::Archive
|
4
|
+
|
5
|
+
def initialize(zip_file)
|
6
|
+
@files = {}
|
7
|
+
|
8
|
+
Zip::File.open(zip_file) do |z|
|
9
|
+
z.each do |entry|
|
10
|
+
@files[entry.name] = z.get_input_stream(entry).read if extractable? entry
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def extractable?(entry)
|
18
|
+
return EXTRACTABLE_PATTERN.match(entry.name) && entry.ftype == :file
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'fontastic2sass/version'
|
2
|
+
require 'fontastic2sass/archive'
|
3
|
+
require 'fontastic2sass/zip'
|
4
|
+
require 'fontastic2sass/dir'
|
5
|
+
require 'fontastic2sass/font'
|
6
|
+
require 'fontastic2sass/sass'
|
7
|
+
require 'fontastic2sass/utilities'
|
8
|
+
require 'hash'
|
9
|
+
|
10
|
+
|
11
|
+
module Fontastic2Sass
|
12
|
+
|
13
|
+
def self.run!(source, font_path, sass_path, options = {})
|
14
|
+
defaults = {
|
15
|
+
scss: false,
|
16
|
+
compatible: false,
|
17
|
+
oocss: false,
|
18
|
+
demo_path: options[:"demo-path"]
|
19
|
+
}
|
20
|
+
|
21
|
+
options = defaults.merge options.symbolize_keys
|
22
|
+
|
23
|
+
utilities = Fontastic2Sass::Utilities.new
|
24
|
+
|
25
|
+
if source.end_with? '.zip'
|
26
|
+
files = Fontastic2Sass::Zip.new source
|
27
|
+
|
28
|
+
elsif ::Dir.exists? source
|
29
|
+
files = Fontastic2Sass::Dir.new source
|
30
|
+
|
31
|
+
else
|
32
|
+
raise 'Source must be either a directory or .zip file!'
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
# raise 'Source must contain \'selection.json\'.' unless files.files['selection.json']
|
37
|
+
|
38
|
+
font = Fontastic2Sass::Font.new files.metadata_file
|
39
|
+
|
40
|
+
syntax = options[:scss] ? 'scss' : 'sass'
|
41
|
+
|
42
|
+
compatible = options[:compatible] || false
|
43
|
+
|
44
|
+
sass = Fontastic2Sass::Sass.new font, syntax, compatible
|
45
|
+
|
46
|
+
|
47
|
+
# Save the Sass file
|
48
|
+
utilities.create_file "#{sass_path}/_icons.#{sass.syntax}", sass.code
|
49
|
+
|
50
|
+
if options[:oocss]
|
51
|
+
utilities.create_file "#{sass_path}/_oocss_icons.#{sass.syntax}", sass.oocss
|
52
|
+
end
|
53
|
+
|
54
|
+
files.font_files.each do |filename, content|
|
55
|
+
utilities.create_file "#{font_path}/#{filename.sub('fonts/', '')}", content
|
56
|
+
end
|
57
|
+
|
58
|
+
if options[:demo_path]
|
59
|
+
files.demo_files.each do |filename, content|
|
60
|
+
utilities.create_file "#{options[:demo_path]}/#{filename}", content
|
61
|
+
end
|
62
|
+
|
63
|
+
files.font_files.each do |filename, content|
|
64
|
+
utilities.create_file "#{options[:demo_path]}/demo-files/fonts/#{filename.sub('fonts/', '')}", content
|
65
|
+
end
|
66
|
+
|
67
|
+
utilities.gsub_file "#{options[:demo_path]}/icons-reference.html", /href="styles.css">/, 'href="demo-files/styles.css">'
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
data/lib/hash.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
class Hash
|
2
|
+
def transform_keys
|
3
|
+
result = {}
|
4
|
+
each_key do |key|
|
5
|
+
result[yield(key)] = self[key]
|
6
|
+
end
|
7
|
+
result
|
8
|
+
end
|
9
|
+
|
10
|
+
def transform_keys!
|
11
|
+
keys.each do |key|
|
12
|
+
self[yield(key)] = delete(key)
|
13
|
+
end
|
14
|
+
self
|
15
|
+
end
|
16
|
+
|
17
|
+
def symbolize_keys
|
18
|
+
transform_keys{ |key| key.to_sym rescue key }
|
19
|
+
end
|
20
|
+
|
21
|
+
def symbolize_keys!
|
22
|
+
transform_keys!{ |key| key.to_sym rescue key }
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
data/lib/run.rb
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'fontastic2sass/cli'
|
2
|
+
|
3
|
+
|
4
|
+
ARGV << '--help' if ARGV.empty?
|
5
|
+
|
6
|
+
|
7
|
+
help_message = <<-EOT
|
8
|
+
Usage: fontastic2sass path/to/fontastic(.zip) [OPTIONS]
|
9
|
+
|
10
|
+
You can also pass the path to an unzipped directory.
|
11
|
+
|
12
|
+
|
13
|
+
OPTIONS
|
14
|
+
--font-path PATH Destination path for font files, defaults to current directory
|
15
|
+
--sass-path PATH Destination path for Sass files, defaults to current directory
|
16
|
+
--scss Use the SCSS syntax
|
17
|
+
-c, --compatible Generate code compatible with Sass 3.2
|
18
|
+
--oocss Generate OOCSS-style classes
|
19
|
+
--demo-path PATH Copy demo.html from SOURCE to PATH/demo.html
|
20
|
+
If omitted, the demo file will be ignored
|
21
|
+
|
22
|
+
|
23
|
+
OUTPUT
|
24
|
+
By default fontastic2sass generates Sass code in the indented Sass syntax. Further,
|
25
|
+
the default generated code is only compatible with Sass 3.3+.
|
26
|
+
|
27
|
+
$icons: (
|
28
|
+
github: \'\\28\',
|
29
|
+
twitter: \'\\29\',
|
30
|
+
gear: \'\\e002\',
|
31
|
+
...
|
32
|
+
)
|
33
|
+
|
34
|
+
@each $placeholder, $content in $icons
|
35
|
+
%\#{$placeholder}-icon
|
36
|
+
@each $value in $content
|
37
|
+
content: $value
|
38
|
+
|
39
|
+
Sass 3.2 doesn't support hash-like maps, so if you're still using 3.2, you'll need
|
40
|
+
to set the '-c' flag, which will generate code like this:
|
41
|
+
|
42
|
+
$github-icon: \'\\28\'
|
43
|
+
$twitter-icon: \'\\29\'
|
44
|
+
$gear-icon: \'\\e002\'
|
45
|
+
|
46
|
+
...
|
47
|
+
|
48
|
+
%github-icon
|
49
|
+
content: $github-icon
|
50
|
+
|
51
|
+
%twitter-icon
|
52
|
+
content: $twitter-icon
|
53
|
+
|
54
|
+
%gear-icon
|
55
|
+
content: $gear-icon
|
56
|
+
|
57
|
+
OOCSS
|
58
|
+
|
59
|
+
By default, fontastic2sass only generates Sass placeholder selectors. If you need
|
60
|
+
literal CSS classes pass the '--oocss' flag, and fontastic2sass will generate a
|
61
|
+
second Sass file, '_oocss_icons.sass', containing CSS classes for each icon.
|
62
|
+
|
63
|
+
@each $placeholder, $content in $icons
|
64
|
+
.\#{$placeholder}-icon:before
|
65
|
+
@extend %\#{$placeholder}-icon
|
66
|
+
|
67
|
+
Or, for Sass 3.2, something like this:
|
68
|
+
|
69
|
+
.github-icon:before
|
70
|
+
@extend %github-icon
|
71
|
+
|
72
|
+
.twitter-icon:before
|
73
|
+
@extend %twitter-icon
|
74
|
+
|
75
|
+
.gear-icon:before
|
76
|
+
@extend %gear-icon
|
77
|
+
EOT
|
78
|
+
|
79
|
+
command = ARGV[0]
|
80
|
+
|
81
|
+
if !(command.nil? || command == '--help')
|
82
|
+
Fontastic2Sass::CLI.start
|
83
|
+
|
84
|
+
|
85
|
+
elsif command == '--help'
|
86
|
+
puts help_message
|
87
|
+
|
88
|
+
else
|
89
|
+
puts "Error: Command '#{command}' not recognized"
|
90
|
+
if %x{rake #{command} --dry-run 2>&1 } && $?.success?
|
91
|
+
puts "Did you mean: `$ rake #{command}` ?\n\n"
|
92
|
+
end
|
93
|
+
puts help_message
|
94
|
+
exit(1)
|
95
|
+
end
|
96
|
+
|
metadata
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: fontastic2sass
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jed Foster
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-02-09 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: thor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.19'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.19'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rubyzip
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.1'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: sass
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.2.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.2.0
|
55
|
+
description: Utility for using Fontastic.me icon sets in Sass projects
|
56
|
+
email:
|
57
|
+
- jed@jedfoster.com
|
58
|
+
executables:
|
59
|
+
- fontastic2sass
|
60
|
+
extensions: []
|
61
|
+
extra_rdoc_files: []
|
62
|
+
files:
|
63
|
+
- lib/fontastic2sass/archive.rb
|
64
|
+
- lib/fontastic2sass/cli.rb
|
65
|
+
- lib/fontastic2sass/dir.rb
|
66
|
+
- lib/fontastic2sass/font.rb
|
67
|
+
- lib/fontastic2sass/sass.rb
|
68
|
+
- lib/fontastic2sass/templates/list.sass.erb
|
69
|
+
- lib/fontastic2sass/templates/map.sass.erb
|
70
|
+
- lib/fontastic2sass/templates/oocss_list.sass.erb
|
71
|
+
- lib/fontastic2sass/templates/oocss_map.sass.erb
|
72
|
+
- lib/fontastic2sass/utilities.rb
|
73
|
+
- lib/fontastic2sass/version.rb
|
74
|
+
- lib/fontastic2sass/zip.rb
|
75
|
+
- lib/fontastic2sass.rb
|
76
|
+
- lib/hash.rb
|
77
|
+
- lib/run.rb
|
78
|
+
- bin/fontastic2sass
|
79
|
+
homepage: https://github.com/jedfoster/fontastic2sass
|
80
|
+
licenses:
|
81
|
+
- MIT
|
82
|
+
metadata: {}
|
83
|
+
post_install_message:
|
84
|
+
rdoc_options: []
|
85
|
+
require_paths:
|
86
|
+
- lib
|
87
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - '>='
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
requirements: []
|
98
|
+
rubyforge_project:
|
99
|
+
rubygems_version: 2.0.14
|
100
|
+
signing_key:
|
101
|
+
specification_version: 4
|
102
|
+
summary: Command line utility that extracts fonts and codepoints from an Fontastic
|
103
|
+
.zip file and generates a Sass file with variables and placholders.
|
104
|
+
test_files: []
|