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