class DragonflyLibvips::Dimensions
Public Class Methods
call(*args)
click to toggle source
# File lib/dragonfly_libvips/dimensions.rb, line 3 def self.call(*args) new(*args).call end
Public Instance Methods
call()
click to toggle source
# File lib/dragonfly_libvips/dimensions.rb, line 7 def call return OpenStruct.new(width: orig_w, height: orig_h, scale: 1) if do_not_resize_if_image_smaller_than_requested? || do_not_resize_if_image_larger_than_requested? OpenStruct.new(width: width, height: height, scale: scale) end
Private Instance Methods
aspect_ratio()
click to toggle source
# File lib/dragonfly_libvips/dimensions.rb, line 39 def aspect_ratio orig_h.to_f / orig_w end
dimensions()
click to toggle source
# File lib/dragonfly_libvips/dimensions.rb, line 34 def dimensions w, h = geometry.scan(/\A(\d*)x(\d*)/).flatten.map(&:to_f) OpenStruct.new(width: w, height: h) end
dimensions_specified_by_height?()
click to toggle source
# File lib/dragonfly_libvips/dimensions.rb, line 47 def dimensions_specified_by_height? dimensions.height > 0 end
dimensions_specified_by_width?()
click to toggle source
# File lib/dragonfly_libvips/dimensions.rb, line 43 def dimensions_specified_by_width? dimensions.width > 0 end
do_not_resize_if_image_larger_than_requested?()
click to toggle source
# File lib/dragonfly_libvips/dimensions.rb, line 64 def do_not_resize_if_image_larger_than_requested? return false unless geometry.include? '<' orig_w > width && orig_h > height end
do_not_resize_if_image_smaller_than_requested?()
click to toggle source
# File lib/dragonfly_libvips/dimensions.rb, line 59 def do_not_resize_if_image_smaller_than_requested? return false unless geometry.include? '>' orig_w < width && orig_h < height end
height()
click to toggle source
# File lib/dragonfly_libvips/dimensions.rb, line 22 def height if landscape? dimensions_specified_by_width? ? dimensions.width * aspect_ratio : dimensions.height else dimensions_specified_by_height? ? dimensions.height : dimensions.width * aspect_ratio end end
landscape?()
click to toggle source
# File lib/dragonfly_libvips/dimensions.rb, line 51 def landscape? aspect_ratio <= 1.0 end
portrait?()
click to toggle source
# File lib/dragonfly_libvips/dimensions.rb, line 55 def portrait? !landscape? end
scale()
click to toggle source
# File lib/dragonfly_libvips/dimensions.rb, line 30 def scale width.to_f / orig_w.to_f end
width()
click to toggle source
# File lib/dragonfly_libvips/dimensions.rb, line 14 def width if landscape? dimensions_specified_by_width? ? dimensions.width : dimensions.height / aspect_ratio else dimensions_specified_by_height? ? dimensions.height / aspect_ratio : dimensions.width end end