fontsquirrel-download 0.0.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/fontsquirrel-download/download.rb +42 -14
- data/lib/fontsquirrel-download/version.rb +1 -1
- data/lib/tasks/fontsquirrel-download.rake +3 -3
- metadata +22 -24
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c356c2c0a752b8ec5291a889a4841b2e4ce4da22
|
4
|
+
data.tar.gz: 9cdd7fa686bc80679739afe16981b04ec1e1efa7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 74338ddcca78d04bfbdfadd0fd833a61f5545e0362c1487db9f1d182381a7d5de067c679817d6e4a6bc4932fb17356a1efc63c9e19ff516a24d75691cfe9133f
|
7
|
+
data.tar.gz: 739eae9bb096beee3c94fbea47c3d0502a8048cccf3b9bdcffd928e1747f7ca6b3a31eaae382abd4d7a5947cc9012f2222ef5b545ccb80ea366a14eb4941f632
|
@@ -2,6 +2,14 @@ require "open-uri"
|
|
2
2
|
require "zip/zip"
|
3
3
|
module FontSquirrel
|
4
4
|
class Download
|
5
|
+
TEMPLATE = <<-DOC
|
6
|
+
@font-face
|
7
|
+
font-family: "{{name}}"
|
8
|
+
{{src}}
|
9
|
+
font-weight: {{weight}}
|
10
|
+
font-style: {{style}}
|
11
|
+
DOC
|
12
|
+
|
5
13
|
# Provide Font-Name as written in URL of font-squirrel,
|
6
14
|
# like TeX-Gyre-Bonum
|
7
15
|
def initialize(name,options={})
|
@@ -9,34 +17,52 @@ module FontSquirrel
|
|
9
17
|
@name = name
|
10
18
|
download(name)
|
11
19
|
FileUtils.mkdir_p @options[:font_dir]
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
+
zipfile = nil
|
21
|
+
quietly do
|
22
|
+
zipfile = Zip::ZipFile.open(@options[:tmp_name])
|
23
|
+
end
|
24
|
+
zipfile.each do |entry|
|
25
|
+
case entry.name
|
26
|
+
when %r{/stylesheet.css$}
|
27
|
+
append_stylesheet(entry)
|
28
|
+
when /ttf|woff|eot|svg/
|
29
|
+
extract_font(entry)
|
20
30
|
end
|
21
31
|
end
|
22
|
-
FileUtils.rm @options[:tmp_name].to_s
|
23
32
|
|
33
|
+
FileUtils.rm @options[:tmp_name].to_s
|
34
|
+
ensure
|
35
|
+
zipfile.close
|
24
36
|
end
|
25
37
|
|
26
|
-
|
27
|
-
|
28
38
|
private
|
39
|
+
|
29
40
|
def name; @name; end
|
41
|
+
|
30
42
|
def append_stylesheet(entry)
|
31
43
|
content = entry.get_input_stream.read
|
32
44
|
text = Sass::Engine.new(content, syntax: :scss).to_tree.to_sass
|
33
45
|
text.gsub!(/url\(([^\)]+)\)/, "asset-url(\\1, font)")
|
34
|
-
|
35
|
-
|
46
|
+
headline = text.lines.grep(/font-family/).first
|
47
|
+
weight = 'normal'
|
48
|
+
style = 'normal'
|
49
|
+
if headline[ /italic/ ]
|
50
|
+
style = 'italic'
|
51
|
+
end
|
52
|
+
if headline[ /bold/ ]
|
53
|
+
weight = 'bold'
|
54
|
+
end
|
55
|
+
template = TEMPLATE.
|
56
|
+
gsub('{{name}}', @name).
|
57
|
+
gsub('{{weight}}', weight).
|
58
|
+
gsub('{{style}}', style).
|
59
|
+
gsub('{{src}}', text.lines.grep(/src:/).join.strip)
|
60
|
+
log "Writing new font-definitions to #{@options[:font_file].to_s} ( Font-Family: #{@name}, #{style}, #{weight})"
|
61
|
+
File.open(@options[:font_file].to_s, "a") {|f| f.write template }
|
36
62
|
end
|
37
63
|
|
38
64
|
def extract_font(entry)
|
39
|
-
target = @options[:font_dir].join(entry.
|
65
|
+
target = @options[:font_dir].join(File.basename entry.to_s).to_s
|
40
66
|
FileUtils.copy_stream entry.get_input_stream, File.open(target, "wb+")
|
41
67
|
log "Extracting #{target}"
|
42
68
|
end
|
@@ -53,3 +79,5 @@ module FontSquirrel
|
|
53
79
|
|
54
80
|
end
|
55
81
|
end
|
82
|
+
|
83
|
+
__END__
|
@@ -9,9 +9,9 @@ namespace :font do
|
|
9
9
|
end
|
10
10
|
require "fontsquirrel-download/download"
|
11
11
|
FontSquirrel::Download.new name,
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
tmp_name: Rails.root.join("tmp/fontsquirrel.zip").to_s,
|
13
|
+
font_file: Rails.root.join("app/assets/stylesheets/_fonts.css.sass"),
|
14
|
+
font_dir: Rails.root.join("app/assets/fonts")
|
15
15
|
|
16
16
|
end
|
17
17
|
end
|
metadata
CHANGED
@@ -1,39 +1,44 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fontsquirrel-download
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Stefan Wienert
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-11-01 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rubyzip
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: rails
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '3.1'
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
-
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.1'
|
41
|
+
description: ' Download and extract font-kits from fontsquirrel easily with a rake
|
37
42
|
tasks.'
|
38
43
|
email:
|
39
44
|
- stefan.wienert@pludoni.de
|
@@ -54,32 +59,25 @@ files:
|
|
54
59
|
- lib/tasks/fontsquirrel-download.rake
|
55
60
|
homepage: https://github.com/zealot128/fontsquirrel-download
|
56
61
|
licenses: []
|
62
|
+
metadata: {}
|
57
63
|
post_install_message:
|
58
64
|
rdoc_options: []
|
59
65
|
require_paths:
|
60
66
|
- lib
|
61
67
|
required_ruby_version: !ruby/object:Gem::Requirement
|
62
|
-
none: false
|
63
68
|
requirements:
|
64
|
-
- -
|
69
|
+
- - '>='
|
65
70
|
- !ruby/object:Gem::Version
|
66
71
|
version: '0'
|
67
|
-
segments:
|
68
|
-
- 0
|
69
|
-
hash: 542117729
|
70
72
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
73
|
requirements:
|
73
|
-
- -
|
74
|
+
- - '>='
|
74
75
|
- !ruby/object:Gem::Version
|
75
76
|
version: '0'
|
76
|
-
segments:
|
77
|
-
- 0
|
78
|
-
hash: 542117729
|
79
77
|
requirements: []
|
80
78
|
rubyforge_project:
|
81
|
-
rubygems_version:
|
79
|
+
rubygems_version: 2.0.3
|
82
80
|
signing_key:
|
83
|
-
specification_version:
|
81
|
+
specification_version: 4
|
84
82
|
summary: Download and extract font-kits from fontsquirrel easily with a rake tasks.
|
85
83
|
test_files: []
|