X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=lib%2Fredact%2Fpart.rb;h=3446de26c7d41b88007521d1fae4bfbd10f7d748;hb=237a825fb05bc8d9128c8711aa46e112a5b91c62;hp=d285c19dba139d61cd8ce5dfcd5613b2bca2b426;hpb=4e6ba7263d1434ef932dac0ef8a4b489ee8e4a83;p=redact.git diff --git a/lib/redact/part.rb b/lib/redact/part.rb index d285c19..3446de2 100644 --- a/lib/redact/part.rb +++ b/lib/redact/part.rb @@ -1,5 +1,5 @@ #-- -# $Id: part.rb 68 2005-09-19 20:03:09Z tilman $ +# $Id: part.rb 70 2005-09-21 15:56:55Z tilman $ # # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de) # @@ -203,13 +203,13 @@ module Redact attr_reader :rel, :to_id, :offset def initialize(rel, offset) - @rel = [rel, rel] + @rel = [rel.to_f, rel.to_f] @to_id = [-1, -1] @offset = [offset, offset] end def set_rel(x, y) - @rel = [x, y] + @rel = [x.to_f, y.to_f] end def set_offset(x, y) @@ -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