mojo_magick 0.4.4 → 0.4.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e8d7e7a6d4e6182e2f6dfe239a5ea6479e18c23d
4
- data.tar.gz: a29fb27bbd8ffaef8acccd892abbf3245368b6c6
3
+ metadata.gz: 0cbc5f7e905a8bebd095f21a82f35e689139726e
4
+ data.tar.gz: 299c155a1930b3fe85fded5371cf8020c9220d31
5
5
  SHA512:
6
- metadata.gz: 48608b32f529b88428d4f4d65d88af56a8d26f3e89c7e90d6a957d02ede0ca23d2fc2d05299fdd50a2234457316e7559d431b42ff4e0ba982ba1daeca5708b94
7
- data.tar.gz: 187989b5dec6e00b1e43d17b64c9cfa7321ff43c36996aca7030775dd58fa664538f0016159c140762e1f9d3047931dc384423f150945b2b4e7044930b215995
6
+ metadata.gz: f882f66230b6266875239d5907a9ce1baa3ba3c7700bbcc92683b152d01bdd1e71667c3d6878fd773667cd8fa827160426c5a657c4a836b9d61578888fbaf1d4
7
+ data.tar.gz: 49df40b4ef661d3f21750dd76c8f1e21147c3b10699b7ff8ada38d94b5a7f1069cd972e18b63d25d390c49e40a3ed1c60b683c2e9a7170c38fbc1fd435b20d5f
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mojo_magick (0.4.4)
4
+ mojo_magick (0.4.5)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -122,6 +122,14 @@ complex commands.
122
122
  c.file 'output.jpg'
123
123
  end
124
124
 
125
+ ### Get a list of available fonts
126
+
127
+ fonts = MojoMagick::get_fonts
128
+
129
+ fonts.first
130
+ => #<MojoMagick::Font:0x000001015a8b90 @name="AvantGarde-Book", @family="AvantGarde", @style="Normal", @stretch="Normal", @weight="400", @glyphs="/usr/local/share/ghostscript/fonts/a010013l.pfb">
131
+
132
+
125
133
  ### Create a new image with text
126
134
 
127
135
  Note: Use with care. If you don't have fonts installed ImageMagick can spin off wildly leaving MojoMagick not knowing what to do. For Unix/MacOSX, you should install freetype and ghostscript.
data/init.rb CHANGED
@@ -1 +1,3 @@
1
1
  require File::expand_path(File::join(File::dirname(__FILE__), 'lib', 'mojo_magick'))
2
+
3
+
@@ -0,0 +1,9 @@
1
+ module ImageMagick
2
+ module Fonts
3
+ def get_fonts
4
+ @parser ||= MojoMagick::Util::Parser.new
5
+ fonts = self.raw_command('identify', '-list font')
6
+ @parser.parse_fonts(fonts)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,93 @@
1
+ # This module provides some mix-in methods to permit resource limitation commands in MojoMagick
2
+ module ImageMagick
3
+ module ResourceLimits
4
+ @@resource_limits = {}
5
+
6
+ # controls limits on memory and other resources for imagemagick.
7
+ # possible values for type can include:
8
+ # Area, Disk, File, Map, or Memory
9
+ # value is byte size for everything but Disk, where it's number of files
10
+ # type can be string or symbol.
11
+ # Just limiting Memory will not solve problems with imagemagick going out of
12
+ # control with resource consumption on certain bad files. You have to set disk,
13
+ # area and map limits too. Read up on imagemagick website for more.
14
+ # Different options have different units
15
+ # DISK: N GB
16
+ # AREA, MAP, MEMORY: N MB
17
+ # FILE: N num file handles
18
+ # Examples:
19
+ # # set disk to 5 gigabytes limit
20
+ # MiniMagick::Image::set_limit(:disk => 5)
21
+ # # set memory to 32mb, map to 64mb and disk to 0
22
+ # MiniMagick::Image::set_limit(:memory => 32, 'map' => 64, 'disk' => 0)
23
+ def set_limits(options)
24
+ mem_fix = 1
25
+ options.each do |resource, value|
26
+ @@resource_limits[resource.to_s.downcase.to_sym] = value.to_s
27
+ end
28
+ end
29
+
30
+ # remove a limit
31
+ def remove_limits(*options)
32
+ mem_fix = 1
33
+ @@resource_limits.delete_if do |resource, value|
34
+ resource == options.values_at(options.index(resource))[0].to_s.downcase.to_sym
35
+ end
36
+ end
37
+
38
+ # remove limits from resources
39
+ def unset_limits(options = {})
40
+ mem_fix = 1
41
+ @@resource_limits = {}
42
+ if options[:unset_env]
43
+ ENV["MAGICK_AREA_LIMIT"]=nil
44
+ ENV["MAGICK_MAP_LIMIT"]=nil
45
+ ENV["MAGICK_MEMORY_LIMIT"]=nil
46
+ ENV["MAGICK_DISK_LIMIT"]=nil
47
+ end
48
+ end
49
+
50
+ # returns the default limits that imagemagick is using, when run with no "-limit" parameters
51
+ # options:
52
+ # :show_actual_values => true (default false) - will return integers instead of readable values
53
+ def get_default_limits(options = {})
54
+ mem_fix = 1
55
+ parse_limits(options.merge(:get_current_limits => false))
56
+ end
57
+
58
+ # returns the limits that imagemagick is running based on any "set_limits" calls
59
+ def get_current_limits(options = {})
60
+ mem_fix = 1
61
+ parse_limits(options.merge(:get_current_limits => true))
62
+ end
63
+
64
+ alias :get_limits :get_current_limits
65
+
66
+ def parse_limits(options)
67
+ show_actual_values = options[:show_actual_values]
68
+ if options[:get_current_limits]
69
+ raw_limits = self.raw_command('identify', '-list resource')
70
+ else
71
+ # we run a raw shell command here to obtain limits without applying command line limit params
72
+ raw_limits = `identify -list resource`
73
+ end
74
+ actual_values, readable_values = parser.parse_limits(raw_limits)
75
+ show_actual_values ? actual_values : readable_values
76
+ end # parse_limits
77
+
78
+ # returns a string suitable for passing as a set of imagemagick params
79
+ # that contains all the limit constraints
80
+ def get_limits_as_params
81
+ retval = ''
82
+ # we upcase the value here for newer versions of ImageMagick (>=6.8.x)
83
+ @@resource_limits.each do |type, value|
84
+ retval += " -limit #{type.to_s} #{value.upcase} "
85
+ end
86
+ retval
87
+ end
88
+
89
+ def parser
90
+ @parser ||= MojoMagick::Util::Parser.new
91
+ end
92
+ end
93
+ end
@@ -1,125 +0,0 @@
1
- # This module provides some mix-in methods to permit resource limitation commands in MojoMagick
2
- # They're stored here simply to make MojoMagick more readable
3
- module ImageMagickResources
4
- module ResourceLimits
5
- @@resource_limits = {}
6
-
7
- # controls limits on memory and other resources for imagemagick.
8
- # possible values for type can include:
9
- # Area, Disk, File, Map, or Memory
10
- # value is byte size for everything but Disk, where it's number of files
11
- # type can be string or symbol.
12
- # Just limiting Memory will not solve problems with imagemagick going out of
13
- # control with resource consumption on certain bad files. You have to set disk,
14
- # area and map limits too. Read up on imagemagick website for more.
15
- # Different options have different units
16
- # DISK: N GB
17
- # AREA, MAP, MEMORY: N MB
18
- # FILE: N num file handles
19
- # Examples:
20
- # # set disk to 5 gigabytes limit
21
- # MiniMagick::Image::set_limit(:disk => 5)
22
- # # set memory to 32mb, map to 64mb and disk to 0
23
- # MiniMagick::Image::set_limit(:memory => 32, 'map' => 64, 'disk' => 0)
24
- def set_limits(options)
25
- mem_fix = 1
26
- options.each do |resource, value|
27
- @@resource_limits[resource.to_s.downcase.to_sym] = value.to_s
28
- end
29
- end
30
-
31
- # remove a limit
32
- def remove_limits(*options)
33
- mem_fix = 1
34
- @@resource_limits.delete_if do |resource, value|
35
- resource == options.values_at(options.index(resource))[0].to_s.downcase.to_sym
36
- end
37
- end
38
-
39
- # remove limits from resources
40
- def unset_limits(options = {})
41
- mem_fix = 1
42
- @@resource_limits = {}
43
- if options[:unset_env]
44
- ENV["MAGICK_AREA_LIMIT"]=nil
45
- ENV["MAGICK_MAP_LIMIT"]=nil
46
- ENV["MAGICK_MEMORY_LIMIT"]=nil
47
- ENV["MAGICK_DISK_LIMIT"]=nil
48
- end
49
- end
50
-
51
- # returns the default limits that imagemagick is using, when run with no "-limit" parameters
52
- # options:
53
- # :show_actual_values => true (default false) - will return integers instead of readable values
54
- def get_default_limits(options = {})
55
- mem_fix = 1
56
- parse_limits(options.merge(:get_current_limits => false))
57
- end
58
-
59
- # returns the limits that imagemagick is running based on any "set_limits" calls
60
- def get_current_limits(options = {})
61
- mem_fix = 1
62
- parse_limits(options.merge(:get_current_limits => true))
63
- end
64
-
65
- alias :get_limits :get_current_limits
66
-
67
- def parse_limits(options)
68
- show_actual_values = options[:show_actual_values]
69
- if options[:get_current_limits]
70
- raw_limits = self.raw_command('identify', '-list resource')
71
- else
72
- # we run a raw shell command here to obtain limits without applying command line limit params
73
- raw_limits = `identify -list resource`
74
- end
75
- row_limits = raw_limits.split("\n")
76
- header = row_limits[0].chomp
77
- data = row_limits[2].chomp
78
- resources = header.strip.split
79
- limits = data.strip.split
80
- #resources = header.scan(/^ *([A-Z][a-z]+) +([A-Z][a-z]+) +([A-Z][a-z]+) +([A-Z][a-z]+) +([A-Z][a-z]+)/)[0]
81
- #limits = data.scan(/^ *([0-9]+[.0-9a-z]+) +([0-9]+[.0-9a-z]+) +([0-9]+[.0-9a-z]+) +([0-9]+[.0-9a-z]+) +([0-9]+[.0-9a-z]+)/)[0]
82
- actual_values = {}
83
- readable_values = {}
84
- resources.each_index do |i|
85
- resource = resources[i].downcase.to_sym
86
- scale = limits[i].match(%r{[a-z]+$}) || []
87
- value = limits[i].match(%r{^[0-9]+})
88
- unscaled_value = value ? value[0].to_i : -1
89
- case scale[0]
90
- when 'eb'
91
- scaled_value = unscaled_value * (2 ** 60)
92
- when 'pb'
93
- scaled_value = unscaled_value * (2 ** 50)
94
- when 'tb'
95
- scaled_value = unscaled_value * (2 ** 40)
96
- when 'gb'
97
- scaled_value = unscaled_value * (2 ** 30)
98
- when 'mb'
99
- scaled_value = unscaled_value * (2 ** 20)
100
- when 'kb'
101
- scaled_value = unscaled_value * (2 ** 10)
102
- when 'b'
103
- scaled_value = unscaled_value
104
- else
105
- scaled_value = unscaled_value
106
- end
107
- actual_values[resource] = scaled_value
108
- readable_values[resource] = limits[i]
109
- end
110
- # return actual values if requested in options, otherwise readable values
111
- show_actual_values ? actual_values : readable_values
112
- end # parse_limits
113
-
114
- # returns a string suitable for passing as a set of imagemagick params
115
- # that contains all the limit constraints
116
- def get_limits_as_params
117
- retval = ''
118
- # we upcase the value here for newer versions of ImageMagick (>=6.8.x)
119
- @@resource_limits.each do |type, value|
120
- retval += " -limit #{type.to_s} #{value.upcase} "
121
- end
122
- retval
123
- end
124
- end
125
- end
@@ -0,0 +1,8 @@
1
+ class Hash
2
+ def symbolize_keys!
3
+ keys.each do |key|
4
+ self[(key.to_sym rescue key) || key] = delete(key)
5
+ end
6
+ self
7
+ end
8
+ end
data/lib/mojo_magick.rb CHANGED
@@ -1,6 +1,11 @@
1
1
  cwd = File::dirname(__FILE__)
2
- require File::join(cwd, 'image_resources')
2
+ initializers_dir = File::expand_path(File::join(cwd, 'initializers'))
3
+ Dir.glob(File::join(initializers_dir, '*.rb')).each { |f| require f }
4
+ require File::join(cwd, 'mojo_magick/util/parser')
5
+ require File::join(cwd, 'image_magick/resource_limits')
6
+ require File::join(cwd, 'image_magick/fonts')
3
7
  require File::join(cwd, 'mojo_magick/opt_builder')
8
+ require File::join(cwd, 'mojo_magick/font')
4
9
  require 'tempfile'
5
10
 
6
11
 
@@ -60,7 +65,8 @@ module MojoMagick
60
65
  class MojoFailed < MojoMagickException; end
61
66
 
62
67
  # enable resource limiting functionality
63
- extend ImageMagickResources::ResourceLimits
68
+ extend ImageMagick::ResourceLimits
69
+ extend ImageMagick::Fonts
64
70
 
65
71
  def MojoMagick::windows?
66
72
  mem_fix = 1
@@ -126,6 +132,11 @@ module MojoMagick
126
132
  dest_file
127
133
  end
128
134
 
135
+ def MojoMagick::available_fonts
136
+ # returns width, height of image if available, nil if not
137
+ Font.all
138
+ end
139
+
129
140
  # returns an empty hash or a hash with :width and :height set (e.g. {:width => INT, :height => INT})
130
141
  # raises MojoFailed when results are indeterminate (width and height could not be determined)
131
142
  def MojoMagick::get_image_size(source_file)
@@ -0,0 +1,23 @@
1
+ module MojoMagick
2
+
3
+ class Font
4
+
5
+ attr_accessor :name, :family, :style, :stretch, :weight, :glyphs
6
+
7
+ def valid?
8
+ !(name.nil?)
9
+ end
10
+
11
+ def initialize(property_hash = {})
12
+ property_hash.symbolize_keys!
13
+ [:name, :family, :style, :stretch, :weight, :glyphs].each do |f|
14
+ setter = "#{f}="
15
+ self.send(setter, property_hash[f])
16
+ end
17
+ end
18
+
19
+ def self.all
20
+ ImageMagick::Font.all.map{|font_info| Font.new(font_info)}
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,69 @@
1
+ module MojoMagick
2
+ module Util
3
+ class Parser
4
+ # handle parsing outputs from ImageMagick commands
5
+
6
+ def parse_fonts(raw_fonts)
7
+ font = nil
8
+ fonts = {}
9
+ enumerator = raw_fonts.split(/\n/).each
10
+ name = nil
11
+ while (begin; line = enumerator.next; rescue StopIteration; line=nil; end) do
12
+ line.chomp!
13
+ line = enumerator.next if line.nil? || line.empty? || (/^\s+$/ =~ line)
14
+ if m = /^\s*Font:\s+(.*)$/.match(line)
15
+ name = m[1].strip
16
+ fonts[name] = {:name => name}
17
+ else
18
+ key_val = line.split(/:/).map(&:strip)
19
+ k = key_val[0].downcase.to_sym
20
+ v = key_val[1]
21
+ if k && name
22
+ fonts[name][k] = key_val[1]
23
+ end
24
+ end
25
+ end
26
+ fonts.values.map{|f| MojoMagick::Font.new f}
27
+ end
28
+
29
+ def parse_limits(raw_limits)
30
+
31
+ row_limits = raw_limits.split("\n")
32
+ header = row_limits[0].chomp
33
+ data = row_limits[2].chomp
34
+ resources = header.strip.split
35
+ limits = data.strip.split
36
+
37
+ actual_values = {}
38
+ readable_values = {}
39
+ resources.each_index do |i|
40
+ resource = resources[i].downcase.to_sym
41
+ scale = limits[i].match(%r{[a-z]+$}) || []
42
+ value = limits[i].match(%r{^[0-9]+})
43
+ unscaled_value = value ? value[0].to_i : -1
44
+ case scale[0]
45
+ when 'eb'
46
+ scaled_value = unscaled_value * (2 ** 60)
47
+ when 'pb'
48
+ scaled_value = unscaled_value * (2 ** 50)
49
+ when 'tb'
50
+ scaled_value = unscaled_value * (2 ** 40)
51
+ when 'gb'
52
+ scaled_value = unscaled_value * (2 ** 30)
53
+ when 'mb'
54
+ scaled_value = unscaled_value * (2 ** 20)
55
+ when 'kb'
56
+ scaled_value = unscaled_value * (2 ** 10)
57
+ when 'b'
58
+ scaled_value = unscaled_value
59
+ else
60
+ scaled_value = unscaled_value
61
+ end
62
+ actual_values[resource] = scaled_value
63
+ readable_values[resource] = limits[i]
64
+ end
65
+ [actual_values, readable_values]
66
+ end
67
+ end
68
+ end
69
+ end
@@ -1,3 +1,3 @@
1
1
  module MojoMagick
2
- VERSION = '0.4.4'
2
+ VERSION = '0.4.5'
3
3
  end
data/test/font_test.rb ADDED
@@ -0,0 +1,35 @@
1
+
2
+ require File::join(File::dirname(__FILE__), 'test_helper')
3
+
4
+ IDENTIFY_FONT_RESPONSE =<<EOF
5
+ Font: Zapf-Dingbats
6
+ family: Zapf Dingbats
7
+ style: Normal
8
+ stretch: Normal
9
+ weight: 400
10
+ glyphs: /System/Library/Fonts/ZapfDingbats.ttf
11
+ Font: Zapfino
12
+ family: Zapfino
13
+ style: Italic
14
+ stretch: Normal
15
+ weight: 400
16
+ glyphs: /Library/Fonts/Zapfino.ttf
17
+ EOF
18
+
19
+ class FontTest < Test::Unit::TestCase
20
+
21
+ def test_font
22
+ f = MojoMagick::Font.new
23
+ assert_equal f.name, nil
24
+ assert_equal f.valid?, false
25
+
26
+ f = MojoMagick::Font.new(:name => "Zapfino", :weight => 400)
27
+ assert_equal f.name, 'Zapfino'
28
+ assert_equal f.valid?, true
29
+ assert_equal f.weight, 400
30
+
31
+ end
32
+
33
+ end
34
+
35
+
@@ -0,0 +1,12 @@
1
+ require File::join(File::dirname(__FILE__), 'test_helper')
2
+
3
+ class FontsTest < Test::Unit::TestCase
4
+
5
+ def test_get_fonts
6
+ fonts = MojoMagick::get_fonts
7
+ assert fonts.is_a? Array
8
+ assert fonts.length > 1
9
+ assert fonts.first.name
10
+ assert (fonts.first.name.is_a? String)
11
+ end
12
+ end
@@ -131,38 +131,6 @@ class MojoMagickTest < Test::Unit::TestCase
131
131
  assert_equal 120, dim[:height]
132
132
  end
133
133
 
134
- def test_resource_limits
135
- orig_limits = MojoMagick::get_default_limits
136
- assert_equal 7, orig_limits.size
137
- orig_limits_test = orig_limits.dup
138
- orig_limits_test.delete_if do |resource, value|
139
- assert [:area, :map, :disk, :memory, :file, :thread, :time].include?(resource), "Found unexpected resource #{resource}"
140
- true
141
- end
142
- assert_equal 0, orig_limits_test.size
143
-
144
- # set area to 32mb limit
145
- MojoMagick::set_limits(:area => '32mb')
146
- new_limits = MojoMagick::get_current_limits
147
- assert_equal '32mb', new_limits[:area].downcase
148
-
149
- # remove limits on area
150
- MojoMagick::remove_limits(:area)
151
- new_limits = MojoMagick::get_current_limits
152
- assert_equal orig_limits[:area], new_limits[:area]
153
-
154
- # set memory to 64 mb, disk to 0 and
155
- MojoMagick::set_limits(:memory => '64mb', :disk => '0b')
156
- new_limits = MojoMagick::get_current_limits(:show_actual_values => true)
157
- assert_equal 61, new_limits[:memory]
158
- assert_equal 0, new_limits[:disk]
159
-
160
- # return to original/default limit values
161
- MojoMagick::unset_limits
162
- new_limits = MojoMagick::get_current_limits
163
- assert_equal orig_limits, new_limits
164
- end
165
-
166
134
  def test_tempfile
167
135
  # Create a tempfile and return the path
168
136
  filename = MojoMagick::tempfile('binary data')
@@ -0,0 +1,30 @@
1
+ require File::join(File::dirname(__FILE__), 'test_helper')
2
+
3
+ IDENTIFY_FONT_RESPONSE =<<EOF
4
+
5
+ Font: Zapf-Dingbats
6
+ family: Zapf Dingbats
7
+ style: Normal
8
+ stretch: Normal
9
+ weight: 400
10
+ glyphs: /System/Library/Fonts/ZapfDingbats.ttf
11
+
12
+ Font: Zapfino
13
+ family: Zapfino
14
+ style: Italic
15
+ stretch: Normal
16
+ weight: 400
17
+ glyphs: /Library/Fonts/Zapfino.ttf
18
+
19
+
20
+ EOF
21
+
22
+ class ParserTest < Test::Unit::TestCase
23
+
24
+ def test_parse_fonts
25
+ parser = MojoMagick::Util::Parser.new
26
+ parsed_fonts = parser.parse_fonts(IDENTIFY_FONT_RESPONSE)
27
+ assert_equal parsed_fonts.length, 2
28
+ assert_equal parsed_fonts[1].style, 'Italic'
29
+ end
30
+ end
@@ -0,0 +1,37 @@
1
+ require File::join(File::dirname(__FILE__), 'test_helper')
2
+
3
+ class ResourceLimitsTest < Test::Unit::TestCase
4
+
5
+ def test_resource_limits
6
+ orig_limits = MojoMagick::get_default_limits
7
+ assert_equal 7, orig_limits.size
8
+ orig_limits_test = orig_limits.dup
9
+ orig_limits_test.delete_if do |resource, value|
10
+ assert [:area, :map, :disk, :memory, :file, :thread, :time].include?(resource), "Found unexpected resource #{resource}"
11
+ true
12
+ end
13
+ assert_equal 0, orig_limits_test.size
14
+
15
+ # set area to 32mb limit
16
+ MojoMagick::set_limits(:area => '32mb')
17
+ new_limits = MojoMagick::get_current_limits
18
+ assert_equal '32mb', new_limits[:area].downcase
19
+
20
+ # remove limits on area
21
+ MojoMagick::remove_limits(:area)
22
+ new_limits = MojoMagick::get_current_limits
23
+ assert_equal orig_limits[:area], new_limits[:area]
24
+
25
+ # set memory to 64 mb, disk to 0 and
26
+ MojoMagick::set_limits(:memory => '64mb', :disk => '0b')
27
+ new_limits = MojoMagick::get_current_limits(:show_actual_values => true)
28
+ assert_equal 61, new_limits[:memory]
29
+ assert_equal 0, new_limits[:disk]
30
+
31
+ # return to original/default limit values
32
+ MojoMagick::unset_limits
33
+ new_limits = MojoMagick::get_current_limits
34
+ assert_equal orig_limits, new_limits
35
+ end
36
+
37
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mojo_magick
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Midgley
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-11-21 00:00:00.000000000 Z
13
+ date: 2013-11-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
@@ -69,16 +69,25 @@ files:
69
69
  - README.md
70
70
  - Rakefile
71
71
  - init.rb
72
+ - lib/image_magick/fonts.rb
73
+ - lib/image_magick/resource_limits.rb
72
74
  - lib/image_resources.rb
75
+ - lib/initializers/hash.rb
73
76
  - lib/mojo_magick.rb
77
+ - lib/mojo_magick/font.rb
74
78
  - lib/mojo_magick/opt_builder.rb
79
+ - lib/mojo_magick/util/parser.rb
75
80
  - lib/mojo_magick/version.rb
76
81
  - mojo_magick.gemspec
77
82
  - test/fixtures/5742.jpg
78
83
  - test/fixtures/not_an_image.jpg
79
84
  - test/fixtures/zero_byte_image.jpg
85
+ - test/font_test.rb
86
+ - test/fonts_test.rb
80
87
  - test/mojo_magick_test.rb
81
88
  - test/opt_builder_test.rb
89
+ - test/parser_test.rb
90
+ - test/resource_limits_test.rb
82
91
  - test/test_helper.rb
83
92
  homepage: http://github.com/bunnymatic/mojo_magick
84
93
  licenses: []
@@ -110,11 +119,15 @@ rubyforge_project: mojo_magick
110
119
  rubygems_version: 2.0.3
111
120
  signing_key:
112
121
  specification_version: 4
113
- summary: mojo_magick-0.4.4
122
+ summary: mojo_magick-0.4.5
114
123
  test_files:
115
124
  - test/fixtures/5742.jpg
116
125
  - test/fixtures/not_an_image.jpg
117
126
  - test/fixtures/zero_byte_image.jpg
127
+ - test/font_test.rb
128
+ - test/fonts_test.rb
118
129
  - test/mojo_magick_test.rb
119
130
  - test/opt_builder_test.rb
131
+ - test/parser_test.rb
132
+ - test/resource_limits_test.rb
120
133
  - test/test_helper.rb