class Picturama::Album

Public Class Methods

new(args) click to toggle source
# File lib/picturama/album.rb, line 6
def initialize(args)
  @folder     = args[:folder]
  @thumbnails = "#{@folder}/thumbnails"
  @resized    = "#{@folder}/resized"
end

Public Instance Methods

count_pictures() click to toggle source
# File lib/picturama/album.rb, line 37
def count_pictures
  pictures.size
end
folder() click to toggle source
# File lib/picturama/album.rb, line 21
def folder
  File.basename(@folder)
end
has_broken_thumbnails?() click to toggle source
# File lib/picturama/album.rb, line 49
def has_broken_thumbnails?
  thumbnails_found = Dir["#{@thumbnails}/*.{#{Picturama::config['allowed_formats'].join(',')}}"].size
  !has_thumbnails? || thumbnails_found < count_pictures
end
has_resized?() click to toggle source
# File lib/picturama/album.rb, line 45
def has_resized?
  File.directory?(@resized)
end
has_thumbnails?() click to toggle source
# File lib/picturama/album.rb, line 41
def has_thumbnails?
  File.directory?(@thumbnails)
end
info() click to toggle source
# File lib/picturama/album.rb, line 62
def info
  YAML.load_file("#{@folder}/.info.yml") if File.exists?("#{@folder}/.info.yml")
end
init_resized() click to toggle source
# File lib/picturama/album.rb, line 58
def init_resized
  FileUtils.mkdir_p("#{@resized}", :mode => 0775) unless has_resized?
end
init_thumbnails() click to toggle source
# File lib/picturama/album.rb, line 54
def init_thumbnails
  FileUtils.mkdir_p("#{@thumbnails}", :mode => 0775) unless has_thumbnails?
end
name() click to toggle source
# File lib/picturama/album.rb, line 25
def name
  (info.nil?) ? name! : info['album']['title']
end
name!() click to toggle source
# File lib/picturama/album.rb, line 29
def name!
  folder.humanize
end
pictures(order = :basename) click to toggle source
# File lib/picturama/album.rb, line 12
def pictures(order = :basename)
  [].tap do |list|
    filter = "#{@folder}/*.{#{Picturama::config['allowed_formats'].join(',')}}"
    Dir[filter].sort_by{ |filename| File.send(order, "#{filename}") }.each { |picture| 
      list << Picturama::Picture.new(picture)
    }
  end
end
slug() click to toggle source
# File lib/picturama/album.rb, line 33
def slug
  name!.to_url
end
valid?() click to toggle source
# File lib/picturama/album.rb, line 66
def valid?
  has_thumbnails? && !info.nil?
end