Added Description#inherit.
authorTilman Sauerbeck <tilman@code-monkey.de>
Wed, 21 Sep 2005 15:56:55 +0000 (15:56 +0000)
committerTilman Sauerbeck <tilman@code-monkey.de>
Wed, 21 Sep 2005 15:56:55 +0000 (15:56 +0000)
ChangeLog
lib/redact/part.rb

index 0d8db550bd89a865032d815fc84bfc969f2464e1..d443d03cca6face0dcbb0b31ee22451bbebe8b96 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,10 @@
 --
-$Id: ChangeLog 69 2005-09-19 20:17:07Z tilman $
+$Id: ChangeLog 70 2005-09-21 15:56:55Z tilman $
 ++
 
+2005-09-21 Tilman Sauerbeck (tilman at code-monkey de)
+        * lib/redact/part.rb: Added Description#inherit
+
 2005-09-19 Tilman Sauerbeck (tilman at code-monkey de)
         * lib/redact/part.rb: Fixed ImageDescription#set_border, which
           used the "right" argument for the "left" border
index 692a48793d757ab87d3a1c44ece009ed61a2be81..3446de26c7d41b88007521d1fae4bfbd10f7d748 100644 (file)
@@ -1,5 +1,5 @@
 #--
-# $Id: part.rb 69 2005-09-19 20:17:07Z tilman $
+# $Id: part.rb 70 2005-09-21 15:56:55Z tilman $
 #
 # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de)
 #
@@ -245,6 +245,20 @@ module Redact
                        @color_class = ""
                end
 
+               def inherit(other)
+                       unless other.is_a?(Description)
+                               raise(ArgumentError, "Cannot inherit from description")
+                       end
+
+                       prot = ["@name", "@value"]
+
+                       (instance_variables - prot).each do |v|
+                               n = other.instance_variable_get(v.intern)
+                               n = n.dup rescue n
+                               instance_variable_set(v.intern, n)
+                       end
+               end
+
                def visible=(v)
                        @visible = (v == true)
                end