Sha256: 446a2e07ab635c2d5df0ccaf3ab3baa32e18384886485945dab54ac3d08d6588
Contents?: true
Size: 1.86 KB
Versions: 2
Compression:
Stored size: 1.86 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(&: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(&: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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bulldog-0.0.13 | lib/bulldog/attachment/pdf.rb |
bulldog-0.0.12 | lib/bulldog/attachment/pdf.rb |