X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=lib%2Fredact%2Fpart.rb;h=c6ce88dcd497e0c24b81511896886e7b2a0544d4;hb=8750e9b711aa4c421848f8cd606a4e938bb73efa;hp=4d6cf9f5e410f230580bb7c40cec08c1dea2b71d;hpb=e9365708ca242a2f4104adcd9551743b505894f8;p=redact.git diff --git a/lib/redact/part.rb b/lib/redact/part.rb index 4d6cf9f..c6ce88d 100644 --- a/lib/redact/part.rb +++ b/lib/redact/part.rb @@ -1,5 +1,5 @@ #-- -# $Id: part.rb 19 2005-04-02 22:05:24Z tilman $ +# $Id: part.rb 21 2005-04-02 22:26:40Z tilman $ # # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de) # @@ -58,12 +58,10 @@ module Redact end def clip=(part) - if self == part + if part == self raise(ArgumentError, "cannot clip part to itself") - elsif part.nil? - @clip = nil - elsif part.collection != @collection - raise(ArgumentError, "parts' collections not identical") + elsif !part.nil? && part.collection != @collection + raise(ArgumentError, "items not in the same collection") else @clip = part end @@ -124,22 +122,13 @@ module Redact end class TextPart < Part - EFFECT_NONE = 0 - EFFECT_PLAIN = 1 - EFFECT_OUTLINE = 2 - EFFECT_SOFT_OUTLINE = 3 - EFFECT_SHADOW = 4 - EFFECT_SOFT_SHADOW = 5 - EFFECT_OUTLINE_SHADOW = 6 - EFFECT_OUTLINE_SOFT_SHADOW = 7 - attr_accessor :effect def initialize(collection, id, name) super @type = TYPE_TEXT - @effect = EFFECT_NONE + @effect = :none end protected @@ -148,7 +137,20 @@ module Redact end def to_eet_properties - super.merge!({"effect" => [@effect, :char]}) + effect = case @effect + when :none: 0 + when :plain: 1 + when :outline: 2 + when :soft_outline: 3 + when :shadow: 4 + when :soft_shadow: 5 + when :outline_shadow: 6 + when :outline_soft_shadow: 7 + else + raise(RedactError, "invalid effect value - #{@effect}") + end + + super.merge!({"effect" => [effect, :char]}) end end @@ -178,10 +180,10 @@ module Redact end def confine=(part) - if part == self + if part == @part raise(ArgumentError, "cannot confine part to itself") elsif !part.nil? && part.collection != @part.collection - raise(ArgumentError, "parts' collections not identical") + raise(ArgumentError, "items not in the same collection") else @confine = part end