OSDN Git Service

t#:
[pettanr/pettanr.git] / lib / manifest / model / list.rb
index d32a6b3..75c67b1 100644 (file)
@@ -1,27 +1,23 @@
-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