Class: Picturama::Album

Inherits:
Object
  • Object
show all
Defined in:
lib/picturama/album.rb

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ Album

Returns a new instance of Album.



6
7
8
9
10
11
# File 'lib/picturama/album.rb', line 6

def initialize(args)
  @folder = args[:folder]
  @thumbnails = "#{args[:folder]}/thumbnails"
  @resized = "#{args[:folder]}/resized"
  @info = "#{args[:folder]}/.info.yml"
end

Instance Method Details

#count_picturesObject



48
49
50
# File 'lib/picturama/album.rb', line 48

def count_pictures
  pictures.size
end

#folderObject



28
29
30
# File 'lib/picturama/album.rb', line 28

def folder
  File.basename(@folder)
end

#has_broken_thumbnails?Boolean

Returns:

  • (Boolean)


60
61
62
63
# File 'lib/picturama/album.rb', line 60

def has_broken_thumbnails?
  thumbnails_found = Dir["#{@thumbnails}/*.{#{Picturama::config['allowed_formats'].join(',')}}"].size
  !has_thumbnails? || thumbnails_found < count_pictures
end

#has_resized?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/picturama/album.rb', line 56

def has_resized?
  File.directory?(@resized)
end

#has_thumbnails?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/picturama/album.rb', line 52

def has_thumbnails?
  File.directory?(@thumbnails)
end

#infoObject



77
78
79
80
81
# File 'lib/picturama/album.rb', line 77

def info
  if File.exists?(@info)
    YAML.load_file(@info)
  end
end

#init_resizedObject



71
72
73
74
75
# File 'lib/picturama/album.rb', line 71

def init_resized
  unless has_resized?
    FileUtils.mkdir_p "#{@resized}"
  end
end

#init_thumbnailsObject



65
66
67
68
69
# File 'lib/picturama/album.rb', line 65

def init_thumbnails
  unless has_thumbnails?
    FileUtils.mkdir_p "#{@thumbnails}"
  end
end

#nameObject



32
33
34
35
36
37
38
# File 'lib/picturama/album.rb', line 32

def name
  if info.nil?
    name!
  else
    info['album']['title']
  end
end

#name!Object



40
41
42
# File 'lib/picturama/album.rb', line 40

def name!
  folder.humanize
end

#pictures(order = true) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/picturama/album.rb', line 13

def pictures(order = true)
  if File.directory?(@folder)
    list = []
    filter = "#{@folder}/*.{#{Picturama::config['allowed_formats'].join(',')}}"
    dir_list = generate_sorting(filter)
    dir_list.each do |picture|
      list.push(Picturama::Picture.new(picture))
    end
    unless order
      list.reverse!
    end
    list
  end
end

#slugObject



44
45
46
# File 'lib/picturama/album.rb', line 44

def slug
  name!.to_url
end

#valid?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/picturama/album.rb', line 83

def valid?
  has_thumbnails? && !info.nil?
end