OSDN Git Service

fix: fetch fail
[pettanr/pettanr.git] / lib / locmare / list_group.rb
1 require_dependency "locmare/list_group/list/base"
2 require_dependency "locmare/list_group/list/public"
3 require_dependency "locmare/list_group/list/system_resource"
4 require_dependency "locmare/list_group/list/filter"
5 require_dependency "locmare/list_group/list/through_filter"
6 require_dependency "locmare/list_group/list/foreign_filter"
7 require_dependency "locmare/list_group/list/play"
8 require_dependency "locmare/list_group/lib"
9 module Locmare
10   class ListGroup
11     include ListGroupModule
12     include LibModule
13     
14     def self.types
15       {
16         'public' => PublicList, 'system_resource' => SystemResourceList,
17         'filter' => FilterList, 'through_filter' => ThroughFilterList, 'foreign_filter' => ForeignFilterList, 
18         'play' => PlayList
19       }
20     end
21     
22     def self.list controller_name, action_name, operators, options = {}
23       controller_manifest = Manifest.manifest.controllers[controller_name]
24       action_manifest = controller_manifest.actions[action_name]
25       if action_manifest.alias
26         options['order'] ||= action_manifest.order
27         options['direction'] ||= action_manifest.direction
28         alias_action = action_manifest.alias_action
29         ::Locmare::ListGroup.list alias_action.path_name, alias_action.name, operators, options
30       else
31         list_group_manifest = LocalManifest.manifest.list_groups[controller_name]
32         list_manifest = list_group_manifest.lists[action_name]
33         self.types[list_manifest.type].new controller_name, action_name, operators, options
34       end
35     end
36     
37   end
38 end
39