-require_dependency "manifest/model/list/base"
-require_dependency "manifest/model/list/public"
-require_dependency "manifest/model/list/private"
-require_dependency "manifest/model/list/system_resource"
-require_dependency "manifest/model/list/filter"
-require_dependency "manifest/model/list/through_filter"
-require_dependency "manifest/model/list/foreign_filter"
-require_dependency "manifest/model/list/play"
module Manifest
module ModelModule
- class ListFactory
- include ListModule
- @@types = {
- 'public' => PublicList, 'private' => PrivateList, 'system_resource' => SystemResourceList,
- 'filter' => FilterList, 'through_filter' => ThroughFilterList, 'foreign_filter' => ForeignFilterList,
- 'play' => PlayList
- }
+ class List
+ attr :model, :list_manifest,
+ :default_page_size, :max_page_size
+ def initialize model, list_manifest
+ @model = model
+ @list_manifest = list_manifest
+ self.set_default
+ self.init
+ end
+
+ def set_default
+ @list_manifest['default_page_size'] ||= 25
+ @list_manifest['max_page_size'] ||= 100
+ end
- def self.factory model, my_name, my_manifest
- type = my_manifest['type']
- raise "undefined type for models > #{model.model_name} > lists > #{my_name}\n" unless type
- my_class = @@types[type]
- raise "undefined class for models > #{model.model_name} > lists > #{my_name} > #{type}\n" unless my_class
- my_class.new(model, my_name, my_manifest)
+ def init
+ @default_page_size = @list_manifest['default_page_size']
+ @max_page_size = @list_manifest['max_page_size']
end
end