48 lines
792 B
Ruby
48 lines
792 B
Ruby
module PostSets
|
|
class Base
|
|
attr_accessor :page, :before_id, :count, :posts
|
|
|
|
def initialize(options = {})
|
|
@page = options[:page] ? options[:page].to_i : 1
|
|
@before_id = options[:before_id]
|
|
load_posts
|
|
end
|
|
|
|
def has_wiki?
|
|
false
|
|
end
|
|
|
|
def use_sequential_paginator?
|
|
!use_numbered_paginator?
|
|
end
|
|
|
|
def use_numbered_paginator?
|
|
before_id.nil?
|
|
end
|
|
|
|
def load_posts
|
|
raise NotImplementedError
|
|
end
|
|
|
|
def to_xml
|
|
posts.to_xml
|
|
end
|
|
|
|
def to_json
|
|
posts.to_json
|
|
end
|
|
|
|
def presenter
|
|
@presenter ||= PostSetPresenter.new(self)
|
|
end
|
|
|
|
def offset
|
|
((page < 1) ? 0 : (page - 1)) * count
|
|
end
|
|
|
|
def limit
|
|
Danbooru.config.posts_per_page
|
|
end
|
|
end
|
|
end
|