Class: Gallery::Album

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(remote, params) ⇒ Album

Returns a new instance of Album.



5
6
7
# File 'lib/gallery/album.rb', line 5

def initialize(remote, params)
  @remote, @params = remote, params
end

Instance Attribute Details

#paramsObject

Returns the value of attribute params.



3
4
5
# File 'lib/gallery/album.rb', line 3

def params
  @params
end

#remoteObject

Returns the value of attribute remote.



3
4
5
# File 'lib/gallery/album.rb', line 3

def remote
  @remote
end

Instance Method Details

#add_album(title, params = {}) ⇒ Object



34
35
36
# File 'lib/gallery/album.rb', line 34

def add_album(title, params = {})
  @remote.new_album(name, { :newAlbumName => title_to_name(title), :newAlbumTitle => title }.merge(params))
end

#add_item(file_name, params = {}) ⇒ Object



30
31
32
# File 'lib/gallery/album.rb', line 30

def add_item(file_name, params = {})
  @remote.add_item(name, file_name, params)
end

#images(params = {}) ⇒ Object



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

def images(params = {})
  response = @remote.fetch_album_images(name, params)
  image_params = response.keys.inject([]) do |image_params, key|
    next image_params unless key =~ /image\.(.*)\.(\d+)/
    _, param, index = key.match(/image\.(.*)\.(\d+)/).to_a
    index = index.to_i
    image_params[index] ||= {}
    image_params[index][param] = response[key]
    image_params
  end.compact # Keys are 1-based; remove first element
  image_params.map do |params|
    image = Image.new(@remote, params)
    yield image if block_given?
    image
  end
end

#nameObject



38
39
40
# File 'lib/gallery/album.rb', line 38

def name
  @params['name']
end

#parentObject



46
47
48
# File 'lib/gallery/album.rb', line 46

def parent
  @params['parent']
end

#properties(params = {}) ⇒ Object



9
10
11
# File 'lib/gallery/album.rb', line 9

def properties(params = {})
  @remote.album_properties(name, params)
end

#titleObject



42
43
44
# File 'lib/gallery/album.rb', line 42

def title
  @params['title']
end

#to_sObject



50
51
52
# File 'lib/gallery/album.rb', line 50

def to_s
  "Album #{name}: #{title}"
end