Files
danbooru/app/logical/post_sets/pool.rb
2011-07-03 19:12:31 -04:00

47 lines
928 B
Ruby

module PostSets
class Pool < Base
module ActiveRecordExtension
attr_accessor :total_pages, :current_page
end
attr_reader :pool, :page, :posts
def initialize(pool, page)
@pool = pool
@page = page
@posts = pool.posts(:offset => offset, :limit => limit)
@posts.extend(ActiveRecordExtension)
@posts.total_pages = total_pages
@posts.current_page = current_page
end
def offset
([page.to_i, 1].max - 1) * limit
end
def limit
Danbooru.config.posts_per_page
end
def tag_array
["pool:#{pool.id}"]
end
def tag_string
tag_array.join("")
end
def presenter
@presenter ||= PostSetPresenters::Pool.new(self)
end
def total_pages
(pool.post_count.to_f / limit).ceil
end
def current_page
(offset.to_f / pool.post_count).floor
end
end
end