pool views
This commit is contained in:
@@ -3,7 +3,7 @@ module PostSets
|
||||
attr_accessor :page, :before_id, :count, :posts
|
||||
|
||||
def initialize(options = {})
|
||||
@page = options[:page].to_i
|
||||
@page = options[:page] ? options[:page].to_i : 1
|
||||
@before_id = options[:before_id]
|
||||
load_posts
|
||||
end
|
||||
@@ -33,7 +33,15 @@ module PostSets
|
||||
end
|
||||
|
||||
def presenter
|
||||
@presnter ||= PostSetPresenter.new(self)
|
||||
@presenter ||= PostSetPresenter.new(self)
|
||||
end
|
||||
|
||||
def offset
|
||||
((page < 1) ? 0 : (page - 1)) * count
|
||||
end
|
||||
|
||||
def limit
|
||||
Danbooru.config.posts_per_page
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -14,9 +14,5 @@ module PostSets
|
||||
def load_posts
|
||||
@posts = user.favorite_posts(:before_id => before_id)
|
||||
end
|
||||
|
||||
def limit
|
||||
Danbooru.config.posts_per_page
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
33
app/logical/post_sets/pool.rb
Normal file
33
app/logical/post_sets/pool.rb
Normal file
@@ -0,0 +1,33 @@
|
||||
module PostSets
|
||||
class Pool < Base
|
||||
attr_reader :pool
|
||||
|
||||
def initialize(pool, options = {})
|
||||
@pool = pool
|
||||
@count = pool.post_id_array.size
|
||||
super(options)
|
||||
end
|
||||
|
||||
def tags
|
||||
"pool:#{pool.name}"
|
||||
end
|
||||
|
||||
def load_posts
|
||||
@posts = pool.posts(:limit => limit, :offset => offset)
|
||||
end
|
||||
|
||||
def sorted_posts
|
||||
sort_posts(@posts)
|
||||
end
|
||||
|
||||
private
|
||||
def sort_posts(posts)
|
||||
posts_by_id = posts.inject({}) do |hash, post|
|
||||
hash[post.id] = post
|
||||
hash
|
||||
end
|
||||
|
||||
@pool.post_id_array.map {|x| posts_by_id[x]}
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -30,10 +30,6 @@ module PostSets
|
||||
x
|
||||
end
|
||||
|
||||
def limit
|
||||
Danbooru.config.posts_per_page
|
||||
end
|
||||
|
||||
def is_single_tag?
|
||||
tag_array.size == 1
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user