cheapredwine 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -18,7 +18,7 @@ It assumes the following is installed and in the case where it applies, accessib
18
18
 
19
19
  * [cairo](http://www.cairographics.org/releases/)
20
20
  * [harfbuzz](http://www.freedesktop.org/software/harfbuzz/release/)
21
- * [ttx](git@github.com:mcolyer/fonttools.git)
21
+ * [ttx](https://github.com/mcolyer/fonttools)
22
22
 
23
23
  ## Usage
24
24
 
@@ -32,8 +32,7 @@ It assumes the following is installed and in the case where it applies, accessib
32
32
 
33
33
  image = CheapRedWine.image(font, "some text", options)
34
34
 
35
- `image` is an IO object that can then be use to write to disk
36
-
35
+ **Caveat: ** `image` is an IO object that can then be use to write to disk. `font` is any object that responds to `#features` and produces a list `["onum", "liga"]` as well as provide a font file object through `#file`. `file` need only know of it's full path to work properly.
37
36
 
38
37
  ##### Options
39
38
 
@@ -51,6 +50,10 @@ CheapRedWine needs to know where to put ttx files
51
50
  CheapRedWine::TTX.configure do |config|
52
51
  config.output_folder = '/path/to/folder'
53
52
  end
53
+
54
+ You can also change the output_folder dynamically through
55
+
56
+ CheapRedWine.ttx_output_folder = "path/to/folder"
54
57
 
55
58
  ## Contributing
56
59
 
@@ -59,3 +62,8 @@ CheapRedWine needs to know where to put ttx files
59
62
  3. Commit your changes (`git commit -am 'Add some feature'`)
60
63
  4. Push to the branch (`git push origin my-new-feature`)
61
64
  5. Create new Pull Request
65
+
66
+ ## TODO
67
+
68
+ 1. Create a new utility using fontTools to have more granularity regarding ttx file outputs
69
+ 2. Replace hb-view by something more appropriate (C Extension).
data/cheapredwine.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |gem|
10
10
  gem.email = ["hugo@hbastien.com"]
11
11
  gem.description = %q{I needed a way to test fonts on the web. I based this library on myfonts.com. CheapRedWine makes use to Harfbuzz' hb-view utility to generate images from fonts with a slew of different parameters. It also uses fontTools' ttx utility for font introspection.}
12
12
  gem.summary = %q{I needed a way to test fonts on the web. I based this library on myfonts.com. CheapRedWine makes use to Harfbuzz' hb-view utility to generate images from fonts with a slew of different parameters. It also uses fontTools' ttx utility for font introspection.}
13
- gem.homepage = ""
13
+ gem.homepage = "https://github.com/hugobast/cheapredwine"
14
14
 
15
15
  gem.files = `git ls-files`.split($/)
16
16
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
@@ -1,3 +1,3 @@
1
1
  module CheapRedWine
2
- VERSION = "0.0.2"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/cheapredwine.rb CHANGED
@@ -2,12 +2,9 @@ require "cheapredwine/version"
2
2
  require "cheapredwine/ttx"
3
3
  require "cheapredwine/image"
4
4
 
5
- CheapRedWine::TTX.configure do |config|
6
- config.output_folder = 'spec/fixtures'
7
- end
8
5
 
9
6
  module CheapRedWine
10
- class Font
7
+ class Meta
11
8
  attr_accessor :name, :family, :features, :path
12
9
 
13
10
  def initialize
@@ -19,13 +16,13 @@ module CheapRedWine
19
16
  end
20
17
  end
21
18
 
22
- def self.font(file)
19
+ def self.meta(file)
23
20
  parser = TTX.for_font(file)
24
- Font.new do |font|
25
- font.name = parser.font_name
26
- font.family = parser.family_name
27
- font.features = parser.features
28
- font.path = file
21
+ Meta.new do |meta|
22
+ meta.name = parser.font_name
23
+ meta.family = parser.family_name
24
+ meta.features = parser.features
25
+ meta.path = file
29
26
  end
30
27
  end
31
28
 
@@ -40,6 +37,14 @@ module CheapRedWine
40
37
  Image::Writer.new(params).exec
41
38
  end
42
39
 
40
+ def self.ttx_output_folder=(folder)
41
+ CheapRedWine::TTX.configuration.output_folder = folder
42
+ end
43
+
44
+ def self.ttx_output_folder
45
+ CheapRedWine::TTX.configuration.output_folder
46
+ end
47
+
43
48
  private
44
49
 
45
50
  def self.merge_features(all_features, selected_features)
@@ -3,16 +3,21 @@ require 'tempfile'
3
3
 
4
4
  describe CheapRedWine do
5
5
  let(:file) { File.new('spec/fixtures/hobo.otf') }
6
- let(:font) { CheapRedWine.font(file) }
6
+ let(:meta) { CheapRedWine.meta(file) }
7
7
 
8
- it "creates a Font object from a font file" do
9
- font.name.should eq "Hobo Std Medium"
10
- font.file.path.should match file.path
8
+ it "sets the output folder" do
9
+ CheapRedWine.ttx_output_folder = "spec/fixtures"
10
+ CheapRedWine.ttx_output_folder.should eq "spec/fixtures"
11
+ end
12
+
13
+ it "gets meta information from a font file" do
14
+ meta.name.should eq "Hobo Std Medium"
15
+ meta.file.path.should match file.path
11
16
  end
12
17
 
13
18
  it "can create images from text" do
14
19
  options = { size: 26, features: ['liga', 'frac'] }
15
- image = CheapRedWine.image(font, 'ffi 1/2', options)
20
+ image = CheapRedWine.image(meta, 'ffi 1/2', options)
16
21
  tempfile = Tempfile.new('image')
17
22
  tempfile.write(image.read)
18
23
  tempfile.close
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cheapredwine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-24 00:00:00.000000000 Z
12
+ date: 2013-02-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -83,7 +83,7 @@ files:
83
83
  - spec/ttx/extrator_spec.rb
84
84
  - spec/ttx/parser_spec.rb
85
85
  - spec/ttx_spec.rb
86
- homepage: ''
86
+ homepage: https://github.com/hugobast/cheapredwine
87
87
  licenses: []
88
88
  post_install_message:
89
89
  rdoc_options: []