lib/carrierwave/test/matchers.rb in carrierwave-0.4.0 vs lib/carrierwave/test/matchers.rb in carrierwave-0.4.1

- old
+ new

@@ -59,27 +59,27 @@ end def matches?(actual) @actual = actual # Satisfy expectation here. Return false or raise an error if it's not met. - require 'RMagick' - img = ::Magick::Image.read(@actual.path).first + img = ::Magick::Image.read(@actual.current_path).first @actual_width = img.columns @actual_height = img.rows @actual_width <= @width && @actual_height <= @height end def failure_message - "expected #{@actual.inspect} to be no larger than #{@width} by #{@height}, but it was #{@actual_height} by #{@actual_width}." + "expected #{@actual.current_path.inspect} to be no larger than #{@width} by #{@height}, but it was #{@actual_width} by #{@actual_height}." end def negative_failure_message - "expected #{@actual.inspect} to be larger than #{@width} by #{@height}, but it wasn't." + "expected #{@actual.current_path.inspect} to be larger than #{@width} by #{@height}, but it wasn't." end end def be_no_larger_than(width, height) + load_rmagick BeNoLargerThan.new(width, height) end class HaveDimensions # :nodoc: def initialize(width, height) @@ -87,27 +87,41 @@ end def matches?(actual) @actual = actual # Satisfy expectation here. Return false or raise an error if it's not met. - require 'RMagick' - img = ::Magick::Image.read(@actual.path).first + img = ::Magick::Image.read(@actual.current_path).first @actual_width = img.columns @actual_height = img.rows @actual_width == @width && @actual_height == @height end def failure_message - "expected #{@actual.inspect} to have an exact size of #{@width} by #{@height}, but it was #{@actual_height} by #{@actual_width}." + "expected #{@actual.current_path.inspect} to have an exact size of #{@width} by #{@height}, but it was #{@actual_width} by #{@actual_height}." end def negative_failure_message - "expected #{@actual.inspect} not to have an exact size of #{@width} by #{@height}, but it did." + "expected #{@actual.current_path.inspect} not to have an exact size of #{@width} by #{@height}, but it did." end end def have_dimensions(width, height) + load_rmagick HaveDimensions.new(width, height) + end + + private + + def load_rmagick + unless defined? Magick + begin + require 'rmagick' + rescue LoadError + require 'RMagick' + rescue LoadError + puts "WARNING: Failed to require rmagick, image processing may fail!" + end + end end end # SpecHelper end # Test end # CarrierWave \ No newline at end of file