class Asset

def geometry(style_name='original')

def geometry(style_name='original')
  raise Paperclip::StyleError, "Requested style #{style_name} is not defined for this asset." unless has_style?(style_name)
  @geometry ||= {}
  begin
    @geometry[style_name] ||= if style_name.to_s == 'original'
      original_geometry
    else
      style = self.asset.styles[style_name.to_sym]
      original_geometry.transformed_by(style.geometry)    # this can return dimensions for fully specified style sizes but not for relative sizes when there are no original dimensions
    end
  rescue Paperclip::TransformationError => e
    Rails.logger.warn "geometry transformation error: #{e}"
    original_geometry                                     # returns a blank geometry if the real geometry cannot be calculated
  end
end