Class: RGallery::Photos

Inherits:
PhotoConfig show all
Defined in:
lib/rails-gallery/rgallery/photos.rb

Instance Attribute Summary

Attributes inherited from PhotoConfig

#options

Instance Method Summary collapse

Constructor Details

#initialize(pages = nil, options = {}) ⇒ Photos

Returns a new instance of Photos.



5
6
7
8
9
10
11
12
# File 'lib/rails-gallery/rgallery/photos.rb', line 5

def initialize pages = nil, options = {}
  unless pages.nil?
    raise ArgumentError, "Must be a Photos::Pages or Array, was: #{pages}" unless valid_pages? pages
    pages = pages_class.new pages, options if pages.kind_of?(Array)
    @pages = pages
  end
  super options
end

Instance Method Details

#allObject



14
15
16
# File 'lib/rails-gallery/rgallery/photos.rb', line 14

def all
  pages.inject([]) {|res, page| res += page.photos }.flatten.compact
end

#page(id) ⇒ Object

Raises:

  • (ArgumentError)


22
23
24
25
# File 'lib/rails-gallery/rgallery/photos.rb', line 22

def page id
  raise ArgumentError, "Page id must be one #{valid_page_ids}, was: #{id}" unless valid_page_id? id
  pages.send(id)
end

#pagesObject



18
19
20
# File 'lib/rails-gallery/rgallery/photos.rb', line 18

def pages
  @pages ||= pages_class.new nil, options
end