lib/bulldog/attachment/image.rb in bulldog-0.1.1 vs lib/bulldog/attachment/image.rb in bulldog-0.2.0

- old
+ new

@@ -1,36 +1,14 @@ module Bulldog module Attachment class Image < Base handle :image - - # - # Return the width and height of the named style, as a 2-element - # array. - # - # For :original, this is based on the output of ImageMagick's - # <tt>identify</tt> command. Other styles are calculated from - # the original style's dimensions, plus the style's :size and - # :filled attributes. - # - # +style_name+ defaults to the attribute's #default_style. - # - def dimensions(style_name) - if style_name.equal?(:original) - from_examination :original_dimensions - else - style = reflection.styles[style_name] - target_dimensions = style[:size].split(/x/).map{|s| s.to_i} - resized_dimensions(dimensions(:original), target_dimensions, style[:filled]) - end - end - include HasDimensions def unload super - @original_dimensions = nil + @original_width = @original_height = nil end protected # --------------------------------------------------- # @@ -44,21 +22,22 @@ # Read the original image metadata with ImageMagick's identify # command. # def run_examination if stream.missing? - @original_dimensions = [1, 1] + @original_width, @original_height = 1, 1 false else output = `identify -format "%w %h %[exif:Orientation]" #{stream.path} 2> /dev/null` if $?.success? && output.present? width, height, orientation = *output.scan(/(\d+) (\d+) (\d?)/).first.map{|s| s.to_i} rotated = (5..8).include?(orientation) - @original_dimensions = rotated ? [height, width] : [width, height] + @original_width = rotated ? height : width + @original_height = rotated ? width : height true else Bulldog.logger.warn "command failed (#{$?.exitstatus})" - @original_dimensions = [1, 1] + @original_width, @original_height = 1, 1 false end end end end