OSDN Git Service

separate manifest
[pettanr/pettanr.git] / lib / locmare / list_group / list / private.rb
1 module Locmare
2   module ListGroupModule
3     class PrivateList < Base
4       
5       def init
6         super
7       end
8       
9       def where_condition operators
10         case @model.owner_type
11         when :author
12           operator = operators.author
13         when :artist
14           operator = operators.artist
15         end
16         t = if @owner_model
17           if @owner_model.owner_model
18             @owner_model.owner_model.table_name
19           else
20             @owner_model.table_name
21           end
22         else
23           @table_name
24         end
25         @where.conditions do |name|
26           [t + '.' + @model.owner_type.to_s + '_id = ?', operator.id]
27         end
28       end
29     
30       def items operators, options, offset, page_size
31         @model.where(self.where_condition(operators)).includes(self.include_hash).order(self.order).offset(offset).limit(page_size)
32       end
33       
34       def count operators, options
35         filter_item_id = options[:id]
36         @model.where(self.where_condition(operators)).includes(self.include_hash).count
37       end
38       
39     end
40     
41   end
42 end