OSDN Git Service

fix manifest list_group tree
[pettanr/pettanr.git] / lib / manifest / model / tree.rb
diff --git a/lib/manifest/model/tree.rb b/lib/manifest/model/tree.rb
new file mode 100644 (file)
index 0000000..8ae8336
--- /dev/null
@@ -0,0 +1,44 @@
+module Manifest
+  module ModelModule
+    class Tree
+      attr :model, :tree_name, :parent_model_name
+      def initialize model, tree_name, parent_model_name
+        @model = model
+        @tree_name = tree_name
+        @parent_model_name = parent_model_name
+        self.set_default
+        self.init
+      end
+      
+      def set_default
+      end
+      
+      def init
+      end
+      
+      def parent_model_manifest
+        r = ::Manifest.manifest.models[@parent_model_name]
+        raise "undefined parent model for models > #{@model.model_name} > tree > #{tree_name}\n" unless r
+        r
+      end
+      
+      def parent_tree_manifest
+        self.parent_model_manifest[@tree_name]
+      end
+      
+      def include_hash
+        if self.parent_tree_manifest
+          {@parent_model_name => self.parent_tree_manifest.include_hash}
+        else
+          {}
+        end
+      end
+      
+      def model_manifest
+        @model.model_manifest
+      end
+      
+    end
+    
+  end
+end