compass-fontcustom 1.0.0 → 1.1.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 +4 -4
- data/CHANGELOG.md +8 -0
- data/compass-fontcustom.gemspec +1 -1
- data/lib/compass/fontcustom.rb +3 -1
- data/lib/compass/fontcustom/font_importer.rb +10 -6
- data/lib/compass/fontcustom/glyph_map.rb +15 -6
- data/lib/compass/fontcustom/rails.rb +11 -0
- data/lib/compass/fontcustom/templates/stylesheet.scss.erb +2 -2
- data/lib/compass/fontcustom/version.rb +1 -1
- data/test/fixtures/myfont/google+.svg +21 -0
- data/test/unit/font_importer_test.rb +1 -0
- data/test/unit/glyph_map_test.rb +6 -0
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 09fd173b97e0decca5edd88875fa5933a0563fbf
|
4
|
+
data.tar.gz: 5aa0dd9935ab4fc1d858ffa79f6069243230addf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5927c5e83d08a64cb9c374174a03700b18a9546a1798e84377515d0cf9b6f3ee72f26ac0ab2691b8d2658afeff14d73772a3a41f94c609a0a2af33a70819b872
|
7
|
+
data.tar.gz: 6dbb765920258fafc1bcb9e804e2f7e3a383577cf2cc4d1fb09f7fc89a4f72293de09563e243ce7edb777cbbd7d417e3662f22e6fe7e1a6c1205e2c79e633c2d
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
**1.1.0** Minor release
|
4
|
+
|
5
|
+
- Bundles Fontcustom 1.1.0
|
6
|
+
- Adds proper support for Rails' asset pipeline. Should work with Rails >= 3.1, tested with 4.0.
|
7
|
+
- Changes/fixes behavior of naming CSS classes: Special characters, other than a-z and 0-9, are now being stripped when generating class names from glyph file names to prevent CSS from throwing up:
|
8
|
+
|
9
|
+
File name `google+.svg` becomes class name `.icon-yourfont-google` -- without the `+` sign.
|
10
|
+
|
3
11
|
**1.0.0** Feature release
|
4
12
|
|
5
13
|
- Adding mixin for generating custom glyph classes
|
data/compass-fontcustom.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.required_ruby_version = '>= 1.9.3'
|
22
22
|
|
23
23
|
spec.add_dependency "compass"
|
24
|
-
spec.add_dependency "fontcustom", "~> 1.
|
24
|
+
spec.add_dependency "fontcustom", "~> 1.1.0"
|
25
25
|
|
26
26
|
spec.add_development_dependency "bundler", "~> 1.3"
|
27
27
|
spec.add_development_dependency "rake"
|
data/lib/compass/fontcustom.rb
CHANGED
@@ -54,18 +54,22 @@ module Compass
|
|
54
54
|
path
|
55
55
|
end
|
56
56
|
|
57
|
+
def search_paths
|
58
|
+
[Compass.configuration.images_path.to_s]
|
59
|
+
end
|
60
|
+
|
57
61
|
# Returns all glyph names inside the folder at `uri`.
|
58
62
|
# @param uri [String] the uri to glob files from
|
59
63
|
# @return [Array]
|
60
64
|
def glyph_names(uri)
|
61
|
-
|
62
|
-
files
|
65
|
+
files = []
|
66
|
+
search_paths.each { |p| files.concat Dir[File.join(p, uri)] }
|
63
67
|
|
64
68
|
if files.empty?
|
65
69
|
raise Compass::SpriteException, %Q{No glyph images were found matching "#{uri}" in the images path. Your current images path is: #{folder}}
|
66
70
|
end
|
67
71
|
|
68
|
-
files.map { |f| File.basename(f)[0..-5].gsub(
|
72
|
+
files.map { |f| File.basename(f)[0..-5].gsub(/[^0-9A-Za-z]/, '') }
|
69
73
|
end
|
70
74
|
|
71
75
|
# Returns `Sass::Engine` options with defaults
|
@@ -114,9 +118,9 @@ module Compass
|
|
114
118
|
# @param uri [String] the uri to glob files from
|
115
119
|
# @return [Array]
|
116
120
|
def files(uri)
|
117
|
-
|
118
|
-
|
119
|
-
|
121
|
+
[].tap do |files|
|
122
|
+
search_paths.each { |p| files.concat Dir[File.join p, uri] }
|
123
|
+
end
|
120
124
|
end
|
121
125
|
|
122
126
|
end # end class methods
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'fontcustom
|
1
|
+
require 'fontcustom'
|
2
2
|
require 'compass/fontcustom/configurable'
|
3
3
|
|
4
4
|
module Compass
|
@@ -11,10 +11,19 @@ module Compass
|
|
11
11
|
# @param context [Object] usually an instance of FontImporter
|
12
12
|
def self.from_uri(uri, context)
|
13
13
|
path, name = FontImporter.path_and_name uri
|
14
|
-
glyphs = FontImporter.files(uri).sort
|
14
|
+
glyphs = FontImporter.files(uri).sort
|
15
|
+
|
16
|
+
# TODO: improve extraction of aboslute path
|
17
|
+
path = File.dirname glyphs.first
|
18
|
+
glyphs.map! { |file| File.basename(file)[0..-5].gsub(/[^0-9A-Za-z]/, '') }
|
19
|
+
|
15
20
|
new glyphs, path, name, context
|
16
21
|
end
|
17
22
|
|
23
|
+
# @param glyphs [Array] all the glyphs found at path
|
24
|
+
# @param path [String] the absolute path where glyphs are stored
|
25
|
+
# @param name [String] the name of the glyph font
|
26
|
+
# @param context [Object] the invoking object
|
18
27
|
def initialize(glyphs, path, name, context)
|
19
28
|
raise StandardError, "No glyphs found at '#{path}'" if glyphs.empty?
|
20
29
|
@glyphs = glyphs
|
@@ -32,13 +41,13 @@ module Compass
|
|
32
41
|
unless exists?
|
33
42
|
args = self.class.config.generator_options || {}
|
34
43
|
args.merge!(
|
35
|
-
:input =>
|
44
|
+
:input => path,
|
36
45
|
:output => output_dir,
|
37
46
|
:font_name => @name,
|
38
|
-
:
|
39
|
-
:
|
47
|
+
:no_hash => !Compass.configuration.fontcustom_hash,
|
48
|
+
:quiet => true
|
40
49
|
)
|
41
|
-
::Fontcustom::Generator::Font.start [args]
|
50
|
+
::Fontcustom::Generator::Font.start [::Fontcustom::Options.new(args)]
|
42
51
|
end
|
43
52
|
end
|
44
53
|
|
@@ -10,11 +10,11 @@ $<%= name %>-glyphs: glyph-map("<%= uri %>");
|
|
10
10
|
|
11
11
|
@mixin all-<%= name %>-glyphs {
|
12
12
|
@include fontcustom-font-face($<%= name %>-glyphs);
|
13
|
-
@include glyphs($<%= name %>-glyphs, <%= glyph_names.join " " %>, $<%= name %>-font-base-class)
|
13
|
+
@include glyphs($<%= name %>-glyphs, <%= glyph_names.map{ |g| "'#{g}'" }.join " " %>, $<%= name %>-font-base-class)
|
14
14
|
}
|
15
15
|
|
16
16
|
@mixin <%= name %>-glyph($glyph-name) {
|
17
17
|
@extend #{$<%= name %>-font-base-class};
|
18
|
-
$index: index(<%= glyph_names.join " " %>, $glyph-name);
|
18
|
+
$index: index(<%= glyph_names.map{ |g| "'#{g}'" }.join " " %>, $glyph-name);
|
19
19
|
&:before { content: glyph($index); }
|
20
20
|
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5
|
+
width="415px" height="415px" viewBox="0 0 415 415" enable-background="new 0 0 415 415" xml:space="preserve">
|
6
|
+
<g>
|
7
|
+
<polygon points="368.346,131.916 314.569,131.916 314.569,78.139 301.125,78.139 301.125,131.916 247.348,131.916 247.348,145.36
|
8
|
+
301.125,145.36 301.125,199.137 314.569,199.137 314.569,145.36 368.346,145.36 "/>
|
9
|
+
<path d="M188.43,232.613c-7.512-5.317-21.877-18.25-21.877-25.851c0-8.908,2.543-13.298,15.951-23.774
|
10
|
+
c13.745-10.74,23.472-25.836,23.472-43.4c0-20.905-9.311-41.283-26.79-48.004h26.352l18.599-13.445c0,0-62.333,0-83.108,0
|
11
|
+
c-37.26,0-72.326,28.228-72.326,60.926c0,33.413,25.398,60.381,63.304,60.381c2.636,0,5.197-0.052,7.705-0.232
|
12
|
+
c-2.46,4.709-4.219,10.015-4.219,15.521c0,9.286,4.995,16.815,11.312,22.96c-4.771,0-9.381,0.138-14.407,0.138
|
13
|
+
c-46.15,0-81.671,29.393-81.671,59.872c0,30.017,38.94,48.795,85.092,48.795c52.613,0,81.672-29.853,81.672-59.872
|
14
|
+
C217.488,262.557,210.387,248.142,188.43,232.613L188.43,232.613z M144.031,190.975L144.031,190.975
|
15
|
+
c-21.414-0.64-41.762-23.955-45.458-52.069c-3.695-28.119,10.661-49.641,32.069-49.001c21.406,0.644,41.763,23.205,45.46,51.32
|
16
|
+
C179.796,169.344,165.436,191.614,144.031,190.975L144.031,190.975z M135.646,333.229L135.646,333.229
|
17
|
+
c-31.898,0-54.938-20.192-54.938-44.449c0-23.773,28.576-43.562,60.475-43.218c7.445,0.079,14.382,1.277,20.681,3.315
|
18
|
+
c17.315,12.042,29.737,18.847,33.241,32.57c0.66,2.784,1.018,5.646,1.018,8.57C196.123,314.273,180.493,333.229,135.646,333.229z"
|
19
|
+
/>
|
20
|
+
</g>
|
21
|
+
</svg>
|
@@ -50,6 +50,7 @@ class FontImporterTest < Test::Unit::TestCase
|
|
50
50
|
assert css =~ %r{.#{fontname}-font}, "base font class missing"
|
51
51
|
assert css =~ %r{.icon-#{fontname}-c}i, "icon c css class missing"
|
52
52
|
assert css =~ %r{.icon-#{fontname}-d}i, "icon d css class missing"
|
53
|
+
assert css =~ %r{.icon-#{fontname}-google}i, "icon google+ css class missing"
|
53
54
|
end
|
54
55
|
|
55
56
|
def test_should_skip_file_name_hashes_if_option_is_set
|
data/test/unit/glyph_map_test.rb
CHANGED
@@ -16,4 +16,10 @@ class GlyphMapTest < Test::Unit::TestCase
|
|
16
16
|
assert_equal 0, @glyph_map.index_for_glyph('C')
|
17
17
|
end
|
18
18
|
|
19
|
+
def test_glyph_name_normalization
|
20
|
+
glyphs = @glyph_map.instance_variable_get(:@glyphs)
|
21
|
+
assert ! glyphs.include?('google+')
|
22
|
+
assert glyphs.include?('google')
|
23
|
+
end
|
24
|
+
|
19
25
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: compass-fontcustom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- glaszig
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: compass
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
33
|
+
version: 1.1.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.
|
40
|
+
version: 1.1.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -97,6 +97,7 @@ files:
|
|
97
97
|
- lib/compass/fontcustom/configurable.rb
|
98
98
|
- lib/compass/fontcustom/font_importer.rb
|
99
99
|
- lib/compass/fontcustom/glyph_map.rb
|
100
|
+
- lib/compass/fontcustom/rails.rb
|
100
101
|
- lib/compass/fontcustom/sass_extensions.rb
|
101
102
|
- lib/compass/fontcustom/templates/stylesheet.scss.erb
|
102
103
|
- lib/compass/fontcustom/version.rb
|
@@ -104,6 +105,7 @@ files:
|
|
104
105
|
- test/fixtures/myfont/C.svg
|
105
106
|
- test/fixtures/myfont/D.svg
|
106
107
|
- test/fixtures/myfont/a_R3ally-eXotic f1Le Name.svg
|
108
|
+
- test/fixtures/myfont/google+.svg
|
107
109
|
- test/test_helper.rb
|
108
110
|
- test/unit/font_importer_test.rb
|
109
111
|
- test/unit/glyph_map_test.rb
|
@@ -135,6 +137,7 @@ test_files:
|
|
135
137
|
- test/fixtures/myfont/C.svg
|
136
138
|
- test/fixtures/myfont/D.svg
|
137
139
|
- test/fixtures/myfont/a_R3ally-eXotic f1Le Name.svg
|
140
|
+
- test/fixtures/myfont/google+.svg
|
138
141
|
- test/test_helper.rb
|
139
142
|
- test/unit/font_importer_test.rb
|
140
143
|
- test/unit/glyph_map_test.rb
|