dragonfly_fonts 0.0.3
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/.gitignore +23 -0
- data/Dockerfile +15 -0
- data/Gemfile +4 -0
- data/Guardfile +8 -0
- data/LICENSE.txt +22 -0
- data/README.md +196 -0
- data/Rakefile +9 -0
- data/circle.yml +23 -0
- data/docker-compose.yml +15 -0
- data/dragonfly_fonts.gemspec +28 -0
- data/lib/dragonfly_fonts.rb +8 -0
- data/lib/dragonfly_fonts/analysers/bbox.rb +35 -0
- data/lib/dragonfly_fonts/analysers/font_info.rb +15 -0
- data/lib/dragonfly_fonts/analysers/glyphs.rb +14 -0
- data/lib/dragonfly_fonts/analysers/gsub_tables.rb +14 -0
- data/lib/dragonfly_fonts/plugin.rb +43 -0
- data/lib/dragonfly_fonts/processors/correct_metrics.rb +21 -0
- data/lib/dragonfly_fonts/processors/encode.rb +57 -0
- data/lib/dragonfly_fonts/processors/extract_glyph.rb +19 -0
- data/lib/dragonfly_fonts/processors/normalize_names.rb +17 -0
- data/lib/dragonfly_fonts/processors/set_dimensions.rb +24 -0
- data/lib/dragonfly_fonts/processors/set_ttf_names.rb +52 -0
- data/lib/dragonfly_fonts/processors/set_underline.rb +26 -0
- data/lib/dragonfly_fonts/processors/set_width.rb +25 -0
- data/lib/dragonfly_fonts/processors/set_woff_metadata.rb +23 -0
- data/lib/dragonfly_fonts/processors/ttf_autohint.rb +21 -0
- data/lib/dragonfly_fonts/processors/web_friendly.rb +17 -0
- data/lib/dragonfly_fonts/unicode_ranges.rb +89 -0
- data/lib/dragonfly_fonts/version.rb +3 -0
- data/samples/Arial.ttf +0 -0
- data/samples/Inconsolata.otf +0 -0
- data/script/dimensions.py +28 -0
- data/script/font_info.py +49 -0
- data/script/glyphs.py +25 -0
- data/script/gsub_tables.py +43 -0
- data/script/normalize_names.sh +13 -0
- data/script/underline.py +20 -0
- data/script/webfonts.pe +49 -0
- data/script/woff_meta.py +81 -0
- data/test/dragonfly_fonts/analysers/bbox_test.rb +48 -0
- data/test/dragonfly_fonts/analysers/font_info_test.rb +65 -0
- data/test/dragonfly_fonts/analysers/glyphs_test.rb +27 -0
- data/test/dragonfly_fonts/analysers/gsub_tables_test.rb +42 -0
- data/test/dragonfly_fonts/plugin_test.rb +76 -0
- data/test/dragonfly_fonts/processors/correct_metrics_test.rb +22 -0
- data/test/dragonfly_fonts/processors/encode_test.rb +36 -0
- data/test/dragonfly_fonts/processors/extract_glyph_test.rb +22 -0
- data/test/dragonfly_fonts/processors/normalize_names_test.rb +18 -0
- data/test/dragonfly_fonts/processors/set_dimensions_test.rb +26 -0
- data/test/dragonfly_fonts/processors/set_ttf_names_test.rb +23 -0
- data/test/dragonfly_fonts/processors/set_underline_test.rb +22 -0
- data/test/dragonfly_fonts/processors/set_width_test.rb +48 -0
- data/test/dragonfly_fonts/processors/set_woff_metadata_test.rb +28 -0
- data/test/dragonfly_fonts/processors/ttf_autohint_test.rb +18 -0
- data/test/dragonfly_fonts/processors/web_friendly_test.rb +18 -0
- data/test/test_helper.rb +21 -0
- metadata +215 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DragonflyFonts
|
4
|
+
module Analysers
|
5
|
+
describe GsubTables do
|
6
|
+
let(:app) { test_app.configure_with(:fonts) }
|
7
|
+
let(:analyser) { DragonflyFonts::Analysers::GsubTables.new }
|
8
|
+
let(:font) { app.fetch_file(SAMPLES_DIR.join('Inconsolata.otf')) }
|
9
|
+
|
10
|
+
describe 'call' do
|
11
|
+
it 'returns Array' do
|
12
|
+
analyser.call(font).must_be_kind_of Array
|
13
|
+
end
|
14
|
+
|
15
|
+
# it 'includes info, subtables, name' do
|
16
|
+
# analyser.call(font).map(&:keys).uniq.flatten.must_equal %w(info subtables name)
|
17
|
+
# end
|
18
|
+
|
19
|
+
# describe 'info' do
|
20
|
+
# it 'is an Array' do
|
21
|
+
# analyser.call(font).shuffle.first['info'].must_be_kind_of Array
|
22
|
+
# end
|
23
|
+
# end
|
24
|
+
|
25
|
+
# describe 'subtables' do
|
26
|
+
# it 'is an Array' do
|
27
|
+
# analyser.call(font).shuffle.first['subtables'].must_be_kind_of Array
|
28
|
+
# end
|
29
|
+
# it 'has glyphs and name keys' do
|
30
|
+
# analyser.call(font).shuffle.first['subtables'].shuffle.first.keys.must_equal %w(glyphs name)
|
31
|
+
# end
|
32
|
+
# end
|
33
|
+
|
34
|
+
# describe 'name' do
|
35
|
+
# it 'is a String' do
|
36
|
+
# analyser.call(font).shuffle.first['name'].must_be_kind_of String
|
37
|
+
# end
|
38
|
+
# end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DragonflyFonts
|
4
|
+
describe Plugin do
|
5
|
+
let(:app) { test_app.configure_with(:fonts) }
|
6
|
+
let(:font) { app.fetch_file(SAMPLES_DIR.join('Inconsolata.otf')) }
|
7
|
+
|
8
|
+
# ---------------------------------------------------------------------
|
9
|
+
|
10
|
+
describe 'analysers' do
|
11
|
+
it 'adds #bbox' do
|
12
|
+
font.must_respond_to :bbox
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'adds #font_info' do
|
16
|
+
font.must_respond_to :font_info
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'adds #glyphs' do
|
20
|
+
font.must_respond_to :glyphs
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'adds #gsub_tables' do
|
24
|
+
font.must_respond_to :gsub_tables
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# ---------------------------------------------------------------------
|
29
|
+
|
30
|
+
describe 'processors' do
|
31
|
+
it 'adds #correct_metrics' do
|
32
|
+
font.must_respond_to :correct_metrics
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'adds #encode' do
|
36
|
+
font.must_respond_to :encode
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'adds #extract_glyph' do
|
40
|
+
font.must_respond_to :extract_glyph
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'adds #normalize_names' do
|
44
|
+
font.must_respond_to :normalize_names
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'adds #set_dimensions' do
|
48
|
+
font.must_respond_to :set_dimensions
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'adds #set_ttf_names' do
|
52
|
+
font.must_respond_to :set_ttf_names
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'adds #set_underline' do
|
56
|
+
font.must_respond_to :set_underline
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'adds #set_width' do
|
60
|
+
font.must_respond_to :set_width
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'adds #set_woff_metadata' do
|
64
|
+
font.must_respond_to :set_woff_metadata
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'adds #ttf_autohint' do
|
68
|
+
font.must_respond_to :ttf_autohint
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'adds #web_friendly' do
|
72
|
+
font.must_respond_to :web_friendly
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DragonflyFonts
|
4
|
+
module Processors
|
5
|
+
describe CorrectMetrics do
|
6
|
+
let(:app) { test_app.configure_with(:fonts) }
|
7
|
+
let(:asset) { app.fetch_file SAMPLES_DIR.join('Inconsolata.otf') }
|
8
|
+
|
9
|
+
# =====================================================================
|
10
|
+
|
11
|
+
it 'adjusts ascent value' do
|
12
|
+
skip 'need to find font that is changed by this'
|
13
|
+
asset.correct_metrics.font_info.must_equal '…'
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'adjusts descent value' do
|
17
|
+
skip 'need to find font that is changed by this'
|
18
|
+
asset.correct_metrics.font_info.must_equal '…'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DragonflyFonts
|
4
|
+
module Processors
|
5
|
+
describe Encode do
|
6
|
+
let(:app) { test_app.configure_with(:fonts) }
|
7
|
+
let(:asset) { app.fetch_file SAMPLES_DIR.join('Inconsolata.otf') }
|
8
|
+
|
9
|
+
# =====================================================================
|
10
|
+
|
11
|
+
it 'allows to convert to :eot' do
|
12
|
+
asset.encode(:eot).mime_type.must_equal 'application/vnd.ms-fontobject'
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'allows to convert to :otf' do
|
16
|
+
asset.encode(:otf).mime_type.must_equal 'application/vnd.oasis.opendocument.formula-template'
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'allows to convert to :ttf' do
|
20
|
+
asset.encode(:ttf).mime_type.must_equal 'application/octet-stream'
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'allows to convert to :svg' do
|
24
|
+
asset.encode(:svg).mime_type.must_equal 'image/svg+xml'
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'allows to convert to :woff' do
|
28
|
+
asset.encode(:woff).mime_type.must_equal 'application/font-woff'
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'allows to convert to :woff2' do
|
32
|
+
asset.encode(:woff2).data.must_match /\AwOF2OTTO/
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DragonflyFonts
|
4
|
+
module Processors
|
5
|
+
describe ExtractGlyph do
|
6
|
+
let(:app) { test_app.configure_with(:fonts) }
|
7
|
+
let(:asset) { app.fetch_file SAMPLES_DIR.join('Inconsolata.otf') }
|
8
|
+
|
9
|
+
let(:glyph) { 'A' }
|
10
|
+
|
11
|
+
# =====================================================================
|
12
|
+
|
13
|
+
it 'extracts specified glyph in SVG by default' do
|
14
|
+
asset.extract_glyph(glyph).data.must_include '</svg>'
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'allows to specify format' do
|
18
|
+
asset.extract_glyph(glyph, format: :svg).data.must_include '</svg>'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DragonflyFonts
|
4
|
+
module Processors
|
5
|
+
describe NormalizeNames do
|
6
|
+
let(:app) { test_app.configure_with(:fonts) }
|
7
|
+
let(:asset) { app.fetch_file SAMPLES_DIR.join('Arial.ttf') }
|
8
|
+
|
9
|
+
# =====================================================================
|
10
|
+
|
11
|
+
# TODO: how to test this?
|
12
|
+
|
13
|
+
it 'works' do
|
14
|
+
asset.normalize_names.mime_type.must_equal 'application/octet-stream'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DragonflyFonts
|
4
|
+
module Processors
|
5
|
+
describe SetDimensions do
|
6
|
+
let(:app) { test_app.configure_with(:fonts) }
|
7
|
+
let(:asset) { app.fetch_file SAMPLES_DIR.join('Inconsolata.otf') }
|
8
|
+
|
9
|
+
let(:ascent) { 200 }
|
10
|
+
let(:descent) { -200 }
|
11
|
+
|
12
|
+
let(:original_ascent) { asset.font_info['ascent'] }
|
13
|
+
let(:original_descent) { asset.font_info['descent'] }
|
14
|
+
|
15
|
+
# =====================================================================
|
16
|
+
|
17
|
+
describe 'upos' do
|
18
|
+
it 'sets the width to the value' do
|
19
|
+
skip 'somehow the :font_info does not seem to report correct values'
|
20
|
+
asset.set_dimensions(ascent: ascent).font_info['ascent'].must_equal (original_ascent + ascent)
|
21
|
+
asset.set_dimensions(descent: descent).font_info['descent'].must_equal (original_descent + descent)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DragonflyFonts
|
4
|
+
module Processors
|
5
|
+
describe SetTtfNames do
|
6
|
+
let(:app) { test_app.configure_with(:fonts) }
|
7
|
+
let(:asset) { app.fetch_file SAMPLES_DIR.join('Inconsolata.otf') }
|
8
|
+
|
9
|
+
let(:designer) { 'John Doe' }
|
10
|
+
let(:license_url) { 'http://www.google.com' }
|
11
|
+
|
12
|
+
# =====================================================================
|
13
|
+
|
14
|
+
it 'sets designer' do
|
15
|
+
asset.set_ttf_names(designer: designer).font_info['designer'].must_equal designer
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'sets license_url' do
|
19
|
+
asset.set_ttf_names(license_url: license_url).font_info['license_url'].must_equal license_url
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DragonflyFonts
|
4
|
+
module Processors
|
5
|
+
describe SetUnderline do
|
6
|
+
let(:app) { test_app.configure_with(:fonts) }
|
7
|
+
let(:asset) { app.fetch_file SAMPLES_DIR.join('Inconsolata.otf') }
|
8
|
+
|
9
|
+
let(:upos) { 1.0 }
|
10
|
+
let(:uwidth) { 2.0 }
|
11
|
+
|
12
|
+
# =====================================================================
|
13
|
+
|
14
|
+
describe 'upos' do
|
15
|
+
it 'sets the width to the value' do
|
16
|
+
asset.set_underline(upos: upos).font_info['upos'].must_equal upos
|
17
|
+
asset.set_underline(uwidth: uwidth).font_info['uwidth'].must_equal uwidth
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DragonflyFonts
|
4
|
+
module Processors
|
5
|
+
describe SetWidth do
|
6
|
+
let(:app) { test_app.configure_with(:fonts) }
|
7
|
+
let(:asset) { app.fetch_file SAMPLES_DIR.join('Inconsolata.otf') }
|
8
|
+
|
9
|
+
let(:analyser) { DragonflyFonts::Analysers::Bbox.new }
|
10
|
+
|
11
|
+
let(:glyph) { 'A' }
|
12
|
+
let(:default_bbox) { analyser.call(asset, glyph) }
|
13
|
+
|
14
|
+
let(:width) { 200 }
|
15
|
+
|
16
|
+
let(:bbox) { analyser.call(asset.set_width(width, relative), glyph) }
|
17
|
+
|
18
|
+
# =====================================================================
|
19
|
+
|
20
|
+
describe 'relative=0' do
|
21
|
+
let(:relative) { 0 }
|
22
|
+
|
23
|
+
it 'sets the width to the value' do
|
24
|
+
skip 'bbox does not reflect the changes'
|
25
|
+
bbox.width.must_equal width.to_f
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe 'relative=1' do
|
30
|
+
let(:relative) { 1 }
|
31
|
+
|
32
|
+
it 'increments the width by the value' do
|
33
|
+
skip 'bbox does not reflect the changes'
|
34
|
+
bbox.width.must_equal default_bbox.width + width.to_f
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe 'relative=2' do
|
39
|
+
let(:relative) { 2 }
|
40
|
+
|
41
|
+
it 'scales width by the value/100' do
|
42
|
+
skip 'bbox does not reflect the changes'
|
43
|
+
bbox.width.must_equal default_bbox.width * width / 100.0
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'nokogiri'
|
3
|
+
|
4
|
+
module DragonflyFonts
|
5
|
+
module Processors
|
6
|
+
describe SetWoffMetadata do
|
7
|
+
let(:app) { test_app.configure_with(:fonts) }
|
8
|
+
let(:asset) { app.fetch_file SAMPLES_DIR.join('Inconsolata.otf') }
|
9
|
+
|
10
|
+
let(:uniqueid) { 'UNIQUEID' }
|
11
|
+
let(:licensee_name) { 'John Doe' }
|
12
|
+
|
13
|
+
# =====================================================================
|
14
|
+
|
15
|
+
describe 'values' do
|
16
|
+
let(:woff_meta) { Nokogiri::XML(asset.set_woff_metadata(uniqueid, licensee_name).font_info['woff_metadata']) }
|
17
|
+
|
18
|
+
it 'sets uniqueid' do
|
19
|
+
woff_meta.xpath('//uniqueid').first.attribute('id').value.must_match(/\A#{uniqueid}/)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'sets licensee' do
|
23
|
+
woff_meta.xpath('//licensee').first.attribute('name').value.must_equal licensee_name
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DragonflyFonts
|
4
|
+
module Processors
|
5
|
+
describe TtfAutohint do
|
6
|
+
let(:app) { test_app.configure_with(:fonts) }
|
7
|
+
let(:asset) { app.fetch_file SAMPLES_DIR.join('Arial.ttf') }
|
8
|
+
|
9
|
+
# =====================================================================
|
10
|
+
|
11
|
+
# TODO: how to test this better?
|
12
|
+
|
13
|
+
it 'works' do
|
14
|
+
asset.ttf_autohint.mime_type.must_equal 'application/octet-stream'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DragonflyFonts
|
4
|
+
module Processors
|
5
|
+
describe WebFriendly do
|
6
|
+
let(:app) { test_app.configure_with(:fonts) }
|
7
|
+
let(:asset) { app.fetch_file SAMPLES_DIR.join('Arial.ttf') }
|
8
|
+
|
9
|
+
# =====================================================================
|
10
|
+
|
11
|
+
# TODO: how to test this?
|
12
|
+
|
13
|
+
it 'works' do
|
14
|
+
asset.web_friendly.mime_type.must_equal 'application/octet-stream'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
|
3
|
+
require 'minitest'
|
4
|
+
require 'minitest/autorun'
|
5
|
+
require 'minitest/spec'
|
6
|
+
|
7
|
+
require 'dragonfly'
|
8
|
+
require 'dragonfly_fonts'
|
9
|
+
|
10
|
+
# ---------------------------------------------------------------------
|
11
|
+
|
12
|
+
SAMPLES_DIR = Pathname.new(File.expand_path('../../samples', __FILE__))
|
13
|
+
|
14
|
+
# ---------------------------------------------------------------------
|
15
|
+
|
16
|
+
def test_app(name = nil)
|
17
|
+
app = Dragonfly::App.instance(name)
|
18
|
+
app.datastore = Dragonfly::MemoryDataStore.new
|
19
|
+
app.secret = 'test secret'
|
20
|
+
app
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,215 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dragonfly_fonts
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tomas Celizna
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-06-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: dragonfly
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.6'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.6'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: nokogiri
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: guard-minitest
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: minitest
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
description:
|
112
|
+
email:
|
113
|
+
- tomas.celizna@gmail.com
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- ".gitignore"
|
119
|
+
- Dockerfile
|
120
|
+
- Gemfile
|
121
|
+
- Guardfile
|
122
|
+
- LICENSE.txt
|
123
|
+
- README.md
|
124
|
+
- Rakefile
|
125
|
+
- circle.yml
|
126
|
+
- docker-compose.yml
|
127
|
+
- dragonfly_fonts.gemspec
|
128
|
+
- lib/dragonfly_fonts.rb
|
129
|
+
- lib/dragonfly_fonts/analysers/bbox.rb
|
130
|
+
- lib/dragonfly_fonts/analysers/font_info.rb
|
131
|
+
- lib/dragonfly_fonts/analysers/glyphs.rb
|
132
|
+
- lib/dragonfly_fonts/analysers/gsub_tables.rb
|
133
|
+
- lib/dragonfly_fonts/plugin.rb
|
134
|
+
- lib/dragonfly_fonts/processors/correct_metrics.rb
|
135
|
+
- lib/dragonfly_fonts/processors/encode.rb
|
136
|
+
- lib/dragonfly_fonts/processors/extract_glyph.rb
|
137
|
+
- lib/dragonfly_fonts/processors/normalize_names.rb
|
138
|
+
- lib/dragonfly_fonts/processors/set_dimensions.rb
|
139
|
+
- lib/dragonfly_fonts/processors/set_ttf_names.rb
|
140
|
+
- lib/dragonfly_fonts/processors/set_underline.rb
|
141
|
+
- lib/dragonfly_fonts/processors/set_width.rb
|
142
|
+
- lib/dragonfly_fonts/processors/set_woff_metadata.rb
|
143
|
+
- lib/dragonfly_fonts/processors/ttf_autohint.rb
|
144
|
+
- lib/dragonfly_fonts/processors/web_friendly.rb
|
145
|
+
- lib/dragonfly_fonts/unicode_ranges.rb
|
146
|
+
- lib/dragonfly_fonts/version.rb
|
147
|
+
- samples/Arial.ttf
|
148
|
+
- samples/Inconsolata.otf
|
149
|
+
- script/dimensions.py
|
150
|
+
- script/font_info.py
|
151
|
+
- script/glyphs.py
|
152
|
+
- script/gsub_tables.py
|
153
|
+
- script/normalize_names.sh
|
154
|
+
- script/underline.py
|
155
|
+
- script/webfonts.pe
|
156
|
+
- script/woff_meta.py
|
157
|
+
- test/dragonfly_fonts/analysers/bbox_test.rb
|
158
|
+
- test/dragonfly_fonts/analysers/font_info_test.rb
|
159
|
+
- test/dragonfly_fonts/analysers/glyphs_test.rb
|
160
|
+
- test/dragonfly_fonts/analysers/gsub_tables_test.rb
|
161
|
+
- test/dragonfly_fonts/plugin_test.rb
|
162
|
+
- test/dragonfly_fonts/processors/correct_metrics_test.rb
|
163
|
+
- test/dragonfly_fonts/processors/encode_test.rb
|
164
|
+
- test/dragonfly_fonts/processors/extract_glyph_test.rb
|
165
|
+
- test/dragonfly_fonts/processors/normalize_names_test.rb
|
166
|
+
- test/dragonfly_fonts/processors/set_dimensions_test.rb
|
167
|
+
- test/dragonfly_fonts/processors/set_ttf_names_test.rb
|
168
|
+
- test/dragonfly_fonts/processors/set_underline_test.rb
|
169
|
+
- test/dragonfly_fonts/processors/set_width_test.rb
|
170
|
+
- test/dragonfly_fonts/processors/set_woff_metadata_test.rb
|
171
|
+
- test/dragonfly_fonts/processors/ttf_autohint_test.rb
|
172
|
+
- test/dragonfly_fonts/processors/web_friendly_test.rb
|
173
|
+
- test/test_helper.rb
|
174
|
+
homepage: https://github.com/tomasc/dragonfly_fonts
|
175
|
+
licenses:
|
176
|
+
- MIT
|
177
|
+
metadata: {}
|
178
|
+
post_install_message:
|
179
|
+
rdoc_options: []
|
180
|
+
require_paths:
|
181
|
+
- lib
|
182
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - ">="
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '0'
|
187
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
188
|
+
requirements:
|
189
|
+
- - ">="
|
190
|
+
- !ruby/object:Gem::Version
|
191
|
+
version: '0'
|
192
|
+
requirements: []
|
193
|
+
rubyforge_project:
|
194
|
+
rubygems_version: 2.4.8
|
195
|
+
signing_key:
|
196
|
+
specification_version: 4
|
197
|
+
summary: Wraps common font-related tasks into Dragonfly analysers and processors.
|
198
|
+
test_files:
|
199
|
+
- test/dragonfly_fonts/analysers/bbox_test.rb
|
200
|
+
- test/dragonfly_fonts/analysers/font_info_test.rb
|
201
|
+
- test/dragonfly_fonts/analysers/glyphs_test.rb
|
202
|
+
- test/dragonfly_fonts/analysers/gsub_tables_test.rb
|
203
|
+
- test/dragonfly_fonts/plugin_test.rb
|
204
|
+
- test/dragonfly_fonts/processors/correct_metrics_test.rb
|
205
|
+
- test/dragonfly_fonts/processors/encode_test.rb
|
206
|
+
- test/dragonfly_fonts/processors/extract_glyph_test.rb
|
207
|
+
- test/dragonfly_fonts/processors/normalize_names_test.rb
|
208
|
+
- test/dragonfly_fonts/processors/set_dimensions_test.rb
|
209
|
+
- test/dragonfly_fonts/processors/set_ttf_names_test.rb
|
210
|
+
- test/dragonfly_fonts/processors/set_underline_test.rb
|
211
|
+
- test/dragonfly_fonts/processors/set_width_test.rb
|
212
|
+
- test/dragonfly_fonts/processors/set_woff_metadata_test.rb
|
213
|
+
- test/dragonfly_fonts/processors/ttf_autohint_test.rb
|
214
|
+
- test/dragonfly_fonts/processors/web_friendly_test.rb
|
215
|
+
- test/test_helper.rb
|