Sha256: dbe30165d876f4ddd7f8418e0f01bb261fa4f6aace3b7fa40d317c1574257510
Contents?: true
Size: 1.87 KB
Versions: 4
Compression:
Stored size: 1.87 KB
Contents
module Bulldog module Attachment class Pdf < Base handle :pdf # # 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 protected # --------------------------------------------------- # # Return the default processor class to use for this attachment. # def default_processor_type :image_magick end # # Read the original image metadata with ImageMagick's identify # command. # def run_examination if stream.missing? @original_dimensions = [1, 1] false else output = `identify -format "%w %h %[exif:Orientation]" #{stream.path}[0] 2> /dev/null` if $?.success? && output.present? width, height, orientation = *output.scan(/(\d+) (\d+) (\d?)/).first.map{|s| s.to_i} rotated = (orientation & 0x4).nonzero? @original_dimensions ||= rotated ? [height, width] : [width, height] true else Bulldog.logger.warn "command failed (#{$?.exitstatus})" @original_dimensions = [1, 1] false end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
bulldog-0.1.1 | lib/bulldog/attachment/pdf.rb |
bulldog-0.1.0 | lib/bulldog/attachment/pdf.rb |
bulldog-0.0.15 | lib/bulldog/attachment/pdf.rb |
bulldog-0.0.14 | lib/bulldog/attachment/pdf.rb |