imanip 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ == 0.1.4 2008-10-16
2
+
3
+ * minor enhancements
4
+ * Added Image#ratio
5
+ * Crop resize is way better based on ratios
6
+
1
7
  == 0.1.2 2008-08-27
2
8
 
3
9
  * minor enhancements
@@ -49,6 +49,10 @@ module Imanip
49
49
  end
50
50
  end
51
51
 
52
+ def ratio
53
+ width.to_f / height.to_f
54
+ end
55
+
52
56
  def crop(to_file, options = {})
53
57
  @options = options
54
58
  parse_size_options!
@@ -70,13 +74,8 @@ module Imanip
70
74
  crop_width = @geometry[:width]
71
75
  crop_height = @geometry[:height]
72
76
  if !(crop_height.nil? || crop_width.nil?)
73
- if width == height
74
- if portrait?
75
- crop_resize_string << "-resize #{to_geometry_string(:width => crop_width)}"
76
- else
77
- crop_resize_string << "-resize #{to_geometry_string(:height => crop_height)}"
78
- end
79
- elsif portrait?
77
+ crop_ratio = crop_width.to_f / crop_height.to_f
78
+ if crop_ratio > ratio
80
79
  crop_resize_string << "-resize #{to_geometry_string(:width => crop_width)}"
81
80
  else
82
81
  crop_resize_string << "-resize #{to_geometry_string(:height => crop_height)}"
@@ -2,7 +2,7 @@ module Imanip #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- TINY = 3
5
+ TINY = 4
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -47,6 +47,10 @@ class ImanipMagickTest < Test::Unit::TestCase
47
47
  assert !@portrait_image.landscape?
48
48
  end
49
49
 
50
+ def test_ratio_should_return_width_over_height
51
+ assert_equal(@landscape_image.width.to_f / @landscape_image.height.to_f, @landscape_image.ratio)
52
+ end
53
+
50
54
  def test_resize_should_save_to_new_file
51
55
  assert !File.readable?(new_image_path)
52
56
  assert @portrait_image.resize(new_image_path, :width => 50)
@@ -73,6 +77,21 @@ class ImanipMagickTest < Test::Unit::TestCase
73
77
  assert @portrait_image.crop_resize(new_image_path, :dimensions => dimensions)
74
78
  @new_image = new_imanip_image(new_image_path)
75
79
  assert_equal dimensions, @new_image.dimensions
80
+
81
+ dimensions = [200,153]
82
+ assert @landscape_image.crop_resize(new_image_path, :dimensions => dimensions)
83
+ @new_image = new_imanip_image(new_image_path)
84
+ assert_equal dimensions, @new_image.dimensions
85
+
86
+ dimensions = [100,125]
87
+ assert @portrait_image.crop_resize(new_image_path, :dimensions => dimensions)
88
+ @new_image = new_imanip_image(new_image_path)
89
+ assert_equal dimensions, @new_image.dimensions
90
+
91
+ dimensions = [100,125]
92
+ assert @landscape_image.crop_resize(new_image_path, :dimensions => dimensions)
93
+ @new_image = new_imanip_image(new_image_path)
94
+ assert_equal dimensions, @new_image.dimensions
76
95
  end
77
96
 
78
97
  def test_crop_resize_should_crop_and_resize_image_to_exact_dimensions_with_square_dimensions
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imanip
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Quint
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-09-26 00:00:00 -04:00
12
+ date: 2008-10-16 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency