OSDN Git Service

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