You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by lu...@apache.org on 2013/02/06 23:40:26 UTC

[3/3] git commit: CIMI: move deep cloning to CIMI::Model::Schema#deep_clone

Updated Branches:
  refs/heads/master 227a4eba4 -> 06f042dcd


CIMI: move deep cloning to CIMI::Model::Schema#deep_clone


Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/06f042dc
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/06f042dc
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/06f042dc

Branch: refs/heads/master
Commit: 06f042dcd8fc010c56b8ce53408a385cc19ebcb2
Parents: 7e83377
Author: David Lutterkort <lu...@redhat.com>
Authored: Thu Dec 13 11:11:04 2012 -0800
Committer: David Lutterkort <lu...@redhat.com>
Committed: Wed Feb 6 14:39:57 2013 -0800

----------------------------------------------------------------------
 server/lib/cimi/models/resource.rb |    2 +-
 server/lib/cimi/models/schema.rb   |    7 +++++++
 2 files changed, 8 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltacloud/blob/06f042dc/server/lib/cimi/models/resource.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/resource.rb b/server/lib/cimi/models/resource.rb
index 0586538..3271c5e 100644
--- a/server/lib/cimi/models/resource.rb
+++ b/server/lib/cimi/models/resource.rb
@@ -56,7 +56,7 @@ module CIMI
 
         def clone_base_schema
           @schema_duped = true
-          @schema = Marshal::load(Marshal.dump(superclass.base_schema))
+          @schema = superclass.base_schema.deep_clone
         end
 
         def base_schema_cloned?

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/06f042dc/server/lib/cimi/models/schema.rb
----------------------------------------------------------------------
diff --git a/server/lib/cimi/models/schema.rb b/server/lib/cimi/models/schema.rb
index 4026c69..298075b 100644
--- a/server/lib/cimi/models/schema.rb
+++ b/server/lib/cimi/models/schema.rb
@@ -91,6 +91,9 @@ class CIMI::Model::Schema
     def initialize(name, opts, &block)
       content = opts[:content]
       super(name, opts)
+      if opts[:class]
+        opts[:schema] = opts[:class].schema
+      end
       if opts[:schema]
         if block_given?
           raise "Cannot provide :schema option and a block"
@@ -280,6 +283,10 @@ class CIMI::Model::Schema
     @attributes = []
   end
 
+  def deep_clone
+    Marshal::load(Marshal.dump(self))
+  end
+
   def collections
     @attributes.select { |a| a.is_a?(Collection) }
   end