Commit 51bb0f9f by Prem Sichanugrist

Adding Attachment#geometry to get file's dimension

Fixes #768
parent 7088f5b9
......@@ -319,6 +319,11 @@ module Paperclip
instance.send(getter) if responds || attr.to_s == "file_name"
end
# Returns a geometry object which you can get the image's dimension.
def geometry(style = :original)
Geometry.from_file(path(style))
end
private
def path_option
......
......@@ -11,6 +11,11 @@ module Paperclip
@modifier = modifier
end
# Returns the equality based on height, width, and modifier
def ==(other)
height == other.height && width == other.width && modifier == other.modifier
end
# Uses ImageMagick to determing the dimensions of a file, passed in as either a
# File or path.
# NOTE: (race cond) Do not reassign the 'file' variable inside this method as it is likely to be
......
......@@ -1158,4 +1158,19 @@ class AttachmentTest < Test::Unit::TestCase
end
end
context "attachment's geometry" do
setup do
rebuild_model
@dummy = Dummy.new
@file = File.new(File.join(File.dirname(__FILE__), "fixtures", "5k.png"), 'rb')
@dummy.avatar = @file
@dummy.save!
@attachment = @dummy.avatar
@geometry = Paperclip::Geometry.from_file(@file.path)
end
should "return a correct geometry object" do
assert_equal @geometry, @attachment.geometry
end
end
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment