Sha256: 6c0fde6996e3e132bd35a994bd25a0f5bd9d6ef6c26238727eae64dcc2f3fc36

Contents?: true

Size: 1.28 KB

Versions: 52

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

module Alchemy
  class Picture < BaseRecord
    module Calculations
      # An Image smaller than dimensions
      # can not be cropped to given size - unless upsample is true.
      #
      def can_be_cropped_to?(string, upsample = false)
        return true if upsample

        is_bigger_than? sizes_from_string(string)
      end

      # Returns true if both dimensions of the base image are bigger than the dimensions hash.
      #
      def is_bigger_than?(dimensions)
        image_file_width > dimensions[:width] && image_file_height > dimensions[:height]
      end

      # Returns true is one dimension of the base image is smaller than the dimensions hash.
      #
      def is_smaller_than?(dimensions)
        !is_bigger_than?(dimensions)
      end

      # Given a string with an x, this function returns a Hash with point
      # :width and :height.
      #
      def sizes_from_string(string)
        width, height = string.to_s.split("x", 2).map(&:to_i)

        {
          width: width,
          height: height
        }
      end

      # This function returns the :width and :height of the image file
      # as a Hash
      def image_size
        {
          width: image_file_width,
          height: image_file_height
        }
      end
    end
  end
end

Version data entries

52 entries across 52 versions & 1 rubygems

Version Path
alchemy_cms-7.4.0 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.3.5 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.2.8 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.1.13 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.0.16 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.3.4 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.3.3 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.3.2 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.2.7 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.3.1 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.3.0 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.2.6 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.2.5 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.1.12 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.0.15 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.2.4 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.1.11 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.2.3 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.1.10 app/models/alchemy/picture/calculations.rb
alchemy_cms-7.2.2 app/models/alchemy/picture/calculations.rb