fontcustom 1.3.1 → 1.3.2

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: 85393f70ef9449d5090ffb19a913dabe764fb59b
4
- data.tar.gz: 781c8c82bfb28d11cd367432e800c224e211f075
3
+ metadata.gz: c735f457e4f3c87c9fe6a4bfb96a838ceb41e5ed
4
+ data.tar.gz: 9cb39edaaed9d22c46cc5293de50659c5d259544
5
5
  SHA512:
6
- metadata.gz: e38e9a78191b62c3ca1b9c4feff9ba819ab7306f448719a5572f7be3e61212408a1f6402afc6128ea94117d4c55f30cbb96f4eb515f6eec8a8c43a8187902ee8
7
- data.tar.gz: f8c94493f73344e717ae7862fddf0348d71c6c806fbafd11f24d23028e2523fe7a1bfa0dec1e1155901a3b3c438e6ba251c01234c1ace92b51eefd96a7c95056
6
+ metadata.gz: 4a01dd169d606ae246fe0b31cca4c511f9b2d13364f9cb22253912c28fd0ca14c4e8de3623016c3cc67a545e2f51191e9cd53e0278ea445cfe93b63e20e428b0
7
+ data.tar.gz: 315d840c2ffb6d314a9e0db5df8f852c6cc47ea5d22e627974769504523b86524b8cbde3be92f2420027058f0f25578870813a2b8171e727c5ca0c860e6ce243
data/.gitignore CHANGED
@@ -15,6 +15,6 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
- spec/fixtures/fontcustom/*
18
+ spec/fixtures/sandbox/*
19
19
  .DS_Store
20
20
  .ruby-version
data/.travis.yml CHANGED
@@ -6,6 +6,7 @@ before_install:
6
6
  - unzip woff-code-latest.zip -d sfnt2woff && cd sfnt2woff && make && sudo mv sfnt2woff /usr/local/bin/
7
7
  - bundle
8
8
  rvm:
9
+ - 2.1.0
9
10
  - 2.0.0
10
11
  - 1.9.3
11
12
  - 1.9.2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 1.3.2 (1/31/2014)
2
+
3
+ * Fixes `preprocessor_path` for Rails asset pipeline / Sprockets ([#162](https://github.com/FontCustom/fontcustom/pull/162), [#167](https://github.com/FontCustom/fontcustom/pull/167))
4
+ * Fixes bug where `preprocessor_path` was ignored by the scss template ([#171](https://github.com/FontCustom/fontcustom/issues/171))
5
+ * Fixes bug where relative output paths containing ".." would fail to compile
6
+
1
7
  ## 1.3.1 (12/28/2013)
2
8
 
3
9
  * Fixes syntax error in generate.py that affects Python 2.6
data/README.md CHANGED
@@ -85,6 +85,7 @@ templates: [ css, preview ] # List of templates to generate alongside
85
85
  # Possible values: preview, css, scss, scss-rails
86
86
  css_selector: .icon-{{glyph}} # CSS selector format (`{{glyph}}` is replaced)
87
87
  preprocessor_path: "" # Font path used in CSS proprocessor templates
88
+ # Set to "" or false to use the bare font name
88
89
 
89
90
  # Custom templates should live in the `input`
90
91
  # or `input[:templates]` directory and be added
@@ -32,11 +32,17 @@ module Fontcustom
32
32
  def set_relative_paths
33
33
  fonts = @manifest.get :fonts
34
34
  name = File.basename fonts.first, File.extname(fonts.first)
35
- fonts_path = Pathname.new @options[:output][:fonts]
36
- css_path = Pathname.new @options[:output][:css]
37
- preview_path = Pathname.new @options[:output][:preview]
35
+ fonts_path = Pathname.new(@options[:output][:fonts]).realdirpath
36
+ css_path = Pathname.new(@options[:output][:css]).realdirpath
37
+ preview_path = Pathname.new(@options[:output][:preview]).realdirpath
38
38
  @font_path = File.join fonts_path.relative_path_from(css_path).to_s, name
39
- @font_path_alt = @options[:preprocessor_path].nil? ? @font_path : File.join(@options[:preprocessor_path], name)
39
+ @font_path_alt = if @options[:preprocessor_path].nil?
40
+ @font_path
41
+ elsif ! @options[:preprocessor_path] || @options[:preprocessor_path].empty?
42
+ name
43
+ else
44
+ File.join(@options[:preprocessor_path], name)
45
+ end
40
46
  @font_path_preview = File.join fonts_path.relative_path_from(preview_path).to_s, name
41
47
  end
42
48
 
@@ -109,7 +115,7 @@ module Fontcustom
109
115
 
110
116
  def font_face(style = :normal)
111
117
  case style
112
- when :rails
118
+ when :preprocessor
113
119
  url = "font-url"
114
120
  path = @font_path_alt
115
121
  when :preview
@@ -2,7 +2,7 @@
2
2
  // Icon Font: <%= font_name %>
3
3
  //
4
4
 
5
- <%= font_face(:rails) %>
5
+ <%= font_face(:preprocessor) %>
6
6
 
7
7
  [data-icon]:before { content: attr(data-icon); }
8
8
 
@@ -2,7 +2,7 @@
2
2
  // Icon Font: <%= font_name %>
3
3
  //
4
4
 
5
- <%= font_face %>
5
+ <%= font_face(:preprocessor) %>
6
6
 
7
7
  [data-icon]:before { content: attr(data-icon); }
8
8
 
@@ -1,3 +1,3 @@
1
1
  module Fontcustom
2
- VERSION = "1.3.1"
2
+ VERSION = "1.3.2"
3
3
  end
@@ -24,28 +24,38 @@ describe Fontcustom::Generator::Template do
24
24
  it "should assign @font_path, @font_path_alt, and @font_path_preview" do
25
25
  gen = Fontcustom::Generator::Template.new fixture("generators/.fontcustom-manifest.json")
26
26
  options = gen.instance_variable_get :@options
27
- options[:output] = {:fonts => fixture("foo/fonts"), :css => fixture("output/css"), :preview => fixture("views/")}
27
+ options[:output] = {:fonts => fixture("sandbox/test/fonts"), :css => fixture("sandbox/test/css"), :preview => fixture("sandbox/test")}
28
28
 
29
29
  gen.send :set_relative_paths
30
- gen.instance_variable_get(:@font_path).should match("../../foo/fonts")
31
- gen.instance_variable_get(:@font_path_alt).should match("../../foo/fonts")
32
- gen.instance_variable_get(:@font_path_preview).should match("../foo/fonts")
30
+ gen.instance_variable_get(:@font_path).should match("../fonts")
31
+ gen.instance_variable_get(:@font_path_alt).should match("../fonts")
32
+ gen.instance_variable_get(:@font_path_preview).should match(".")
33
33
  end
34
34
 
35
- it "should assign @font_path_alt if :preprocessor_font_path is set" do
35
+ it "should assign @font_path_alt if :preprocessor_path is set" do
36
36
  gen = Fontcustom::Generator::Template.new fixture("generators/.fontcustom-manifest.json")
37
37
  options = gen.instance_variable_get :@options
38
- options[:preprocessor_font_path] = "fonts/fontcustom"
39
- options[:output] = {:fonts => fixture("foo/fonts"), :css => fixture("output/css"), :preview => fixture("views/")}
38
+ options[:preprocessor_path] = "fonts/fontcustom"
39
+ options[:output] = {:fonts => fixture("sandbox/test/fonts"), :css => fixture("sandbox/test/css"), :preview => fixture("sandbox/test")}
40
40
 
41
41
  gen.send :set_relative_paths
42
42
  gen.instance_variable_get(:@font_path_alt).should match("fonts/fontcustom")
43
43
  end
44
44
 
45
+ it "should assign @font_path_alt as bare font name if :preprocessor_path is false" do
46
+ gen = Fontcustom::Generator::Template.new fixture("generators/.fontcustom-manifest.json")
47
+ options = gen.instance_variable_get :@options
48
+ options[:preprocessor_path] = false
49
+ options[:output] = {:fonts => fixture("sandbox/test/fonts"), :css => fixture("sandbox/test/css"), :preview => fixture("sandbox/test")}
50
+
51
+ gen.send :set_relative_paths
52
+ gen.instance_variable_get(:@font_path_alt).should_not match("../fonts")
53
+ end
54
+
45
55
  it "should assign '.' when paths are the same" do
46
56
  gen = Fontcustom::Generator::Template.new fixture("generators/.fontcustom-manifest.json")
47
57
  options = gen.instance_variable_get :@options
48
- options[:output] = {:fonts => fixture("foo/fonts"), :css => fixture("foo/fonts"), :preview => fixture("foo/fonts")}
58
+ options[:output] = {:fonts => fixture("sandbox/test/fonts"), :css => fixture("sandbox/test/fonts"), :preview => fixture("sandbox/test/fonts")}
49
59
 
50
60
  gen.send :set_relative_paths
51
61
  gen.instance_variable_get(:@font_path).should match("./")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fontcustom
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kai Zau
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-12-28 00:00:00.000000000 Z
12
+ date: 2014-01-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -165,7 +165,6 @@ files:
165
165
  - spec/fontcustom/cli_spec.rb
166
166
  - spec/fontcustom/generator/font_spec.rb
167
167
  - spec/fontcustom/generator/template_spec.rb
168
- - spec/fontcustom/generator/template_spec.rb.off
169
168
  - spec/fontcustom/manifest_spec.rb
170
169
  - spec/fontcustom/options_spec.rb
171
170
  - spec/fontcustom/utility_spec.rb
@@ -226,7 +225,6 @@ test_files:
226
225
  - spec/fontcustom/cli_spec.rb
227
226
  - spec/fontcustom/generator/font_spec.rb
228
227
  - spec/fontcustom/generator/template_spec.rb
229
- - spec/fontcustom/generator/template_spec.rb.off
230
228
  - spec/fontcustom/manifest_spec.rb
231
229
  - spec/fontcustom/options_spec.rb
232
230
  - spec/fontcustom/utility_spec.rb
@@ -1,215 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Fontcustom::Generator::Template do
4
- before(:each) do
5
- Fontcustom::Options.any_instance.stub :say_message
6
- end
7
-
8
- def generator(options)
9
- opts = Fontcustom::Options.new(options)
10
- Fontcustom::Generator::Template.new([opts])
11
- end
12
-
13
- context "#get_manifest" do
14
- it "should raise error if data file doesn't exist" do
15
- gen = generator(
16
- :project_root => fixture,
17
- :input => "shared/vectors",
18
- :quiet => true
19
- )
20
- expect { gen.get_manifest }.to raise_error Fontcustom::Error, /\.fontcustom-manifest\.json/
21
- end
22
-
23
- it "should assign @data from data file" do
24
- gen = generator(
25
- :project_root => fixture("generators"),
26
- :input => "../shared/vectors",
27
- :quiet => true
28
- )
29
- gen.get_manifest
30
- gen.instance_variable_get(:@data)[:templates].should =~ data_file_contents[:templates]
31
- end
32
- end
33
-
34
- context "#reset_output" do
35
- subject do
36
- gen = generator(
37
- :project_root => fixture("generators"),
38
- :input => "../shared/vectors",
39
- :output => "mixed-output",
40
- :quiet => true
41
- )
42
- gen.stub :remove_file
43
- gen.stub :overwrite_file
44
- gen.instance_variable_set(:@data, data_file_contents)
45
- gen
46
- end
47
-
48
- it "should delete files from @data[:templates]" do
49
- subject.should_receive(:remove_file).once.with(/fontcustom\.css/, anything)
50
- subject.reset_output
51
- end
52
-
53
- it "should not delete non-template files" do
54
- subject.should_not_receive(:remove_file).with("dont-delete-me.bro")
55
- subject.should_not_receive(:remove_file).with("another-font.ttf")
56
- subject.should_not_receive(:remove_file).with(/fontcustom_cc5ce52f2ae4f9ce2e7ee8131bbfee1e/)
57
- subject.reset_output
58
- end
59
-
60
- it "should empty @data[:fonts]" do
61
- subject.reset_output
62
- subject.instance_variable_get(:@data)[:templates].should be_empty
63
- end
64
-
65
- it "should update the data file" do
66
- file = fixture("generators/.fontcustom-manifest.json")
67
- subject.should_receive(:overwrite_file).once.with(file, /"templates":/)
68
- subject.reset_output
69
- end
70
-
71
- it "should be silent" do
72
- stdout = capture(:stdout) { subject.reset_output }
73
- stdout.should == ""
74
- end
75
- end
76
-
77
- context "#make_relative_paths" do
78
- it "should assign @font_path, @font_path_alt, and @font_path_preview" do
79
- gen = generator(
80
- :project_root => fixture,
81
- :input => "shared/vectors",
82
- :output => {:fonts => "foo/fonts", :css => "output/css", :preview => "views/"}
83
- )
84
- gen.instance_variable_set :@data, data_file_contents
85
- gen.make_relative_paths
86
- gen.instance_variable_get(:@font_path).should match("../../foo/fonts")
87
- gen.instance_variable_get(:@font_path_alt).should match("../../foo/fonts")
88
- gen.instance_variable_get(:@font_path_preview).should match("../foo/fonts")
89
- end
90
-
91
- it "should assign @font_path_alt if :preprocessor_font_path is set" do
92
- gen = generator(
93
- :project_root => fixture,
94
- :preprocessor_font_path => "fonts/fontcustom",
95
- :input => "shared/vectors",
96
- :output => {:fonts => "foo/bar/fonts", :css => "output/css", :preview => ""}
97
- )
98
- gen.instance_variable_set "@data", data_file_contents
99
- gen.make_relative_paths
100
- gen.instance_variable_get(:@font_path_alt).should match("fonts/fontcustom")
101
- end
102
-
103
- it "should assign '.' when paths are the same" do
104
- gen = generator(
105
- :project_root => fixture,
106
- :input => "shared/vectors",
107
- :output => "output"
108
- )
109
- gen.instance_variable_set "@data", data_file_contents
110
- gen.make_relative_paths
111
- gen.instance_variable_get(:@font_path).should match("./")
112
- end
113
- end
114
-
115
- context "#generate" do
116
- subject do
117
- gen = generator(
118
- :project_root => fixture("generators"),
119
- :input => {:vectors => "../shared/vectors", :templates => "../shared/templates"},
120
- :output => "mixed-output",
121
- :templates => %W|scss css custom.css|,
122
- :quiet => true
123
- )
124
- gen.instance_variable_set :@data, data_file_contents
125
- gen.stub :template
126
- gen.stub :overwrite_file
127
- gen
128
- end
129
-
130
- it "should call #template for each template" do
131
- subject.should_receive(:template).exactly(3).times do |*args|
132
- args[1].should match(/(fontcustom\.css|_fontcustom\.scss|custom\.css)/)
133
- end
134
- subject.generate
135
- end
136
-
137
- it "should update data file with generated templates" do
138
- file = fixture("generators/.fontcustom-manifest.json")
139
- subject.should_receive(:overwrite_file).once.with do |path, content|
140
- path.should == file
141
- content.should match(/fontcustom\.css/)
142
- content.should match(/_fontcustom\.scss/)
143
- content.should match(/custom\.css/)
144
- end
145
- subject.generate
146
- end
147
-
148
- it "should be silent if :quiet is set" do
149
- stdout = capture(:stdout) { subject.generate }
150
- stdout.should == ""
151
- end
152
-
153
- it "should rename stock templates according to opts.font_name" do
154
- gen = generator(
155
- :project_root => fixture("generators"),
156
- :font_name => "Test Font",
157
- :input => {:vectors => "../shared/vectors", :templates => "../shared/templates"},
158
- :templates => %W|scss css|,
159
- :quiet => true
160
- )
161
- gen.instance_variable_set :@data, data_file_contents
162
- gen.stub :template
163
- gen.stub :overwrite_file
164
- gen.should_receive(:template).exactly(2).times do |*args|
165
- args[1].should match(/(Test-Font\.css|_Test-Font\.scss)/)
166
- end
167
- gen.generate
168
- end
169
-
170
- context "when various output locations are given" do
171
- subject do
172
- gen = generator(
173
- :project_root => fixture,
174
- :input => {:vectors => "shared/vectors", :templates => "shared/templates"},
175
- :output => {:fonts => "output/fonts", :css => "output/css", :preview => "output/views", "custom.css" => "output/custom"},
176
- :templates => %W|scss preview css custom.css regular.css|,
177
- :quiet => true
178
- )
179
- gen.instance_variable_set :@data, data_file_contents
180
- gen.stub :template
181
- gen.stub :overwrite_file
182
- gen
183
- end
184
-
185
- # 6 times because preview also includes preview-css
186
- it "should output custom templates to their matching :output paths" do
187
- subject.should_receive(:template).exactly(5).times do |*args|
188
- if File.basename(args[0]) == :"custom.css"
189
- args[1].should == fixture("output/custom/custom.css")
190
- end
191
- end
192
- subject.generate
193
- end
194
-
195
- it "should output css templates into :css" do
196
- subject.should_receive(:template).exactly(5).times do |*args|
197
- name = File.basename(args[0])
198
- if %w|_fontcustom.scss fontcustom.css regular.css|.include? name
199
- args[1].should match(/output\/css\/#{name}/)
200
- end
201
- end
202
- subject.generate
203
- end
204
-
205
- it "should output fontcustom-preview.html into :preview" do
206
- subject.should_receive(:template).exactly(5).times do |*args|
207
- if File.basename(args[0]) == "fontcustom-preview.html"
208
- args[1].should == fixture("output/views/fontcustom-preview.html")
209
- end
210
- end
211
- subject.generate
212
- end
213
- end
214
- end
215
- end