OSDN Git Service

c583bcfcf2ee11d3e07128489fe69dbc8e0ad402
[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         @tree_name = @list_manifest.tree_name
8       end
9       
10       def where_condition operators
11         owner_model = @model_manifest.tree[@tree_name].root_model
12         case owner_model.owner_type
13         when :author
14           operator = operators.author
15         when :artist
16           operator = operators.artist
17         end
18         [owner_model.table_name + '.' + owner_model.owner_type.to_s + '_id = ?', operator.id]
19       end
20       
21       def items operators, options, offset, page_size
22         @model.where(self.where_condition(operators)).includes(self.include_hash).order(self.order).offset(offset).limit(page_size)
23       end
24       
25       def count operators, options
26         filter_item_id = options[:id]
27         @model.where(self.where_condition(operators)).includes(self.include_hash).count
28       end
29       
30     end
31     
32   end
33 end