compass-fontcustom 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 09fd173b97e0decca5edd88875fa5933a0563fbf
4
- data.tar.gz: 5aa0dd9935ab4fc1d858ffa79f6069243230addf
3
+ metadata.gz: cb0812751debead28ea3d4591379fee7e0583fbc
4
+ data.tar.gz: 029b22c2336088adab8a978424fc3010ea114544
5
5
  SHA512:
6
- metadata.gz: 5927c5e83d08a64cb9c374174a03700b18a9546a1798e84377515d0cf9b6f3ee72f26ac0ab2691b8d2658afeff14d73772a3a41f94c609a0a2af33a70819b872
7
- data.tar.gz: 6dbb765920258fafc1bcb9e804e2f7e3a383577cf2cc4d1fb09f7fc89a4f72293de09563e243ce7edb777cbbd7d417e3662f22e6fe7e1a6c1205e2c79e633c2d
6
+ metadata.gz: 2902fae6a25bde6f8943acecdb39e2ea5dc7d85e4f2a1724c23bc2517cb1ff04b60901ad8f585ef5907e67ef09ff45aab27c47f20eb1f241827dc5008257b406
7
+ data.tar.gz: 985c8f266cd4c3833e54cedd7c01259893977627a4564c801dc635f74e45274b5baa991459051736c9bc4f69a81719d032fabecdfdfca1255fa16bfb4b136041
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ **1.2.0** Major release
4
+
5
+ - Bundles Fontcustom 1.2.0
6
+ - **Compatibility**: CSS class name and glyph name normalization have been decoupled. See the readme for details.
7
+ - Extended documentation in the readme.
8
+
3
9
  **1.1.0** Minor release
4
10
 
5
11
  - Bundles Fontcustom 1.1.0
data/README.md CHANGED
@@ -9,7 +9,8 @@ This is my attempt of integrating [Font Custom](http://fontcustom.com) with [Com
9
9
 
10
10
  ## Requirements
11
11
 
12
- Made for ruby 1.9+. Tested on 1.9.3 and 2.0.0.
12
+ Made for ruby 1.9+. Tested on 1.9.3 and 2.0.0.
13
+ You'll need to have fontforge and the [WOFF font toolset](http://people.mozilla.com/~jkew/woff) installed as outlined in the Font Custom [installation instructions](http://fontcustom.com/#installation).
13
14
 
14
15
  ## Installation
15
16
 
@@ -35,14 +36,39 @@ You can let Font Custom generate your fonts upon Compass' css compilation:
35
36
  @include all-myfont-glyphs;
36
37
  ```
37
38
 
38
- This will import `fontcustom.css` into your stylesheet so that you can use the font `myfont` and the generated classes.
39
+ This will setup a proper `@font-face` and generate icon classes named `.icon-<font_name>-<glyph_name>` for each glyph.
39
40
 
40
- The font files will be searched in `images_path/myfont` and be written to Compass' `fonts_path`.
41
+ ### Custom class names
41
42
 
42
- ## Disabling file name hashes
43
+ You can also use custom class names using the `<font_name>-glyph()` mixin:
43
44
 
44
- You can choose to disable file name hashes if you're already using an asset pipeline that handles this for you:
45
- Use the `fontcustom_hash` compass option in `config.rb`
45
+ ```css
46
+ .custom-class-name {
47
+ @include myfont-glyph(glyph-file-name);
48
+ }
49
+ ```
50
+
51
+ which will result into CSS along the lines of:
52
+
53
+ ```css
54
+ .myfont-font, .custom-class-name {
55
+ font-family: "myfont";
56
+ }
57
+ .custom-class-name:before {
58
+ content: "\f100";
59
+ }
60
+ ```
61
+
62
+ > **Attention**
63
+ > Generated CSS class names will be normalized and reserved characters removed.
64
+ > That means if you have a glyph file name of `a_R3ally-eXotic f1Le+Name.svg` the generated class name will be `.icon-myfont-a_R3ally-eXotic-f1Le-Name`.
65
+
66
+ ## Configuration options
67
+
68
+ ### Filename hashing
69
+
70
+ You can choose to disable file name hashes if you're already using an asset pipeline which handles this for you:
71
+ Use the `fontcustom_hash` option in `config.rb`
46
72
 
47
73
  ```ruby
48
74
  compass_config do |config|
@@ -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.1.0"
24
+ spec.add_dependency "fontcustom", "~> 1.2.0"
25
25
 
26
26
  spec.add_development_dependency "bundler", "~> 1.3"
27
27
  spec.add_development_dependency "rake"
@@ -69,7 +69,7 @@ module Compass
69
69
  raise Compass::SpriteException, %Q{No glyph images were found matching "#{uri}" in the images path. Your current images path is: #{folder}}
70
70
  end
71
71
 
72
- files.map { |f| File.basename(f)[0..-5].gsub(/[^0-9A-Za-z]/, '') }
72
+ files.map { |f| File.basename(f)[0..-5] }
73
73
  end
74
74
 
75
75
  # Returns `Sass::Engine` options with defaults
@@ -15,7 +15,7 @@ module Compass
15
15
 
16
16
  # TODO: improve extraction of aboslute path
17
17
  path = File.dirname glyphs.first
18
- glyphs.map! { |file| File.basename(file)[0..-5].gsub(/[^0-9A-Za-z]/, '') }
18
+ glyphs.map! { |file| File.basename(file)[0..-5] }
19
19
 
20
20
  new glyphs, path, name, context
21
21
  end
@@ -78,6 +78,12 @@ module Compass
78
78
  font_url(font_file).value
79
79
  end
80
80
 
81
+ def sanitize_symbol(name)
82
+ sanitized = name.value.to_s.gsub(/[.+{};]+/, ' ').strip.gsub(/[ ]+/, '-')
83
+ Sass::Script::String.new sanitized
84
+ end
85
+ Sass::Script::Functions.declare :sanitize_symbol, [:name]
86
+
81
87
  end
82
88
 
83
89
  end
@@ -1,5 +1,5 @@
1
1
  module Compass
2
2
  module Fontcustom
3
- VERSION = "1.1.0"
3
+ VERSION = "1.2.0"
4
4
  end
5
5
  end
@@ -18,7 +18,7 @@
18
18
  @each $glyph-name in $glyph-names {
19
19
 
20
20
  $index: index($glyph-names, $glyph-name);
21
- $class_name: "icon-#{$name}-#{$glyph-name}";
21
+ $class_name: "icon-#{$name}-#{sanitize-symbol($glyph-name)}";
22
22
 
23
23
  .#{$class_name} {
24
24
  @if $base-class { @extend #{$base-class}; }
@@ -70,6 +70,8 @@ class FontImporterTest < Test::Unit::TestCase
70
70
  assert css =~ %r{.#{fontname}-font}, "base font class missing"
71
71
  assert css =~ %r{.icon-#{fontname}-c}i, "icon c css class missing"
72
72
  assert css =~ %r{.icon-#{fontname}-d}i, "icon d css class missing"
73
+ assert css =~ %r{.icon-#{fontname}-a_R3ally-eXotic-f1Le-Name}i, "exotic name css class missing"
74
+ assert css =~ %r{.icon-#{fontname}-google}i, "google icon css class missing"
73
75
  end
74
76
 
75
77
  def test_glyph_mixin
@@ -82,13 +84,13 @@ class FontImporterTest < Test::Unit::TestCase
82
84
  @include fontcustom-font-face($myfont-glyphs);
83
85
 
84
86
  .custom-class-name {
85
- @include myfont-glyph(C);
87
+ @include myfont-glyph('a_R3ally-eXotic f1Le Name');
86
88
  }
87
89
  SCSS
88
90
 
89
91
  assert css =~ %r{.#{fontname}-font, .custom-class-name}, "extending base class missing"
90
92
  assert css =~ %r{@font-face}, "font-face definition missing"
91
- assert css =~ %r{.custom-class-name:before}, "cusom class missing missing"
93
+ assert css =~ %r{.custom-class-name:before}, "custom class missing missing"
92
94
  end
93
95
 
94
96
  end
@@ -16,10 +16,4 @@ 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
-
25
19
  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.1.0
4
+ version: 1.2.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-09-26 00:00:00.000000000 Z
11
+ date: 2013-11-10 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.1.0
33
+ version: 1.2.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.1.0
40
+ version: 1.2.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement