class Compass::Core::SassExtensions::Functions::ImageSize::ImageProperties

Public Class Methods

new(file) click to toggle source
# File lib/compass/core/sass_extensions/functions/image_size.rb, line 17
def initialize(file)
  @file = (file.respond_to?(:to_path) ? file.to_path : file)
  @file_type = File.extname(@file)[1..-1].downcase
  unless KNOWN_TYPES.include?(@file_type)
    raise Sass::SyntaxError, "Unrecognized file type: #{@file_type}"
  end
end

Public Instance Methods

size() click to toggle source
# File lib/compass/core/sass_extensions/functions/image_size.rb, line 25
def size
  @dimensions ||= send(:"get_size_for_#{@file_type}")
end

Private Instance Methods

get_size_for_gif() click to toggle source
# File lib/compass/core/sass_extensions/functions/image_size.rb, line 34
def get_size_for_gif
  File.open(@file, "rb") {|io| io.read}[6..10].unpack('SS')
end
get_size_for_jpeg() click to toggle source
# File lib/compass/core/sass_extensions/functions/image_size.rb, line 42
def get_size_for_jpeg
  jpeg = JPEG.new(@file)
  [jpeg.width, jpeg.height]
end
get_size_for_jpg() click to toggle source
# File lib/compass/core/sass_extensions/functions/image_size.rb, line 38
def get_size_for_jpg
  get_size_for_jpeg
end
get_size_for_png() click to toggle source
# File lib/compass/core/sass_extensions/functions/image_size.rb, line 30
def get_size_for_png
  File.open(@file, "rb") {|io| io.read}[0x10..0x18].unpack('NN')
end