From: Tilman Sauerbeck Date: Thu, 14 Apr 2005 19:42:06 +0000 (+0000) Subject: Replaced most attr_accessor calls by explicit setter methods. X-Git-Tag: redact-0.1.1~11 X-Git-Url: http://git.code-monkey.de/?p=redact.git;a=commitdiff_plain;h=b8a58959d74214164dfe0477fe36ff839728557a Replaced most attr_accessor calls by explicit setter methods. This ensures type safety in some spots. --- diff --git a/ChangeLog b/ChangeLog index d0e42e5..89850bd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,11 @@ -- -$Id: ChangeLog 24 2005-04-09 13:53:14Z tilman $ +$Id: ChangeLog 25 2005-04-14 19:42:06Z tilman $ ++ +2005-04-14 Tilman Sauerbeck (tilman at code-monkey de) + * lib/{redact,part,program}.rb: Replaced most attr_accessor + calls by explicit setter methods to ensure type safety + 2005-04-09 Tilman Sauerbeck (tilman at code-monkey de) * test/crossfade.rb: Updated for recent tween mode fixes diff --git a/lib/redact/part.rb b/lib/redact/part.rb index f915a4b..bac1ba4 100644 --- a/lib/redact/part.rb +++ b/lib/redact/part.rb @@ -1,5 +1,5 @@ #-- -# $Id: part.rb 22 2005-04-02 22:29:50Z tilman $ +# $Id: part.rb 25 2005-04-14 19:42:06Z tilman $ # # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de) # @@ -31,8 +31,8 @@ module Redact include Comparable - attr_reader :collection, :id, :name, :dragable, :clip - attr_accessor :mouse_events, :repeat_events + attr_reader :collection, :id, :name, :dragable, :clip, + :mouse_events, :repeat_events def initialize(collection, id, name) @collection = collection @@ -57,6 +57,14 @@ module Redact @id <=> b.id end + def mouse_events=(val) + @mouse_events = (val == true) + end + + def repeat_events=(val) + @repeat_events = (val == true) + end + def clip=(part) if part == self raise(ArgumentError, "cannot clip part to itself") @@ -213,8 +221,8 @@ module Redact end class Description - attr_reader :rel, :aspect, :step - attr_accessor :visible, :aspect_preference, :color_class + attr_reader :rel, :aspect, :step, :visible, :color_class + attr_accessor :aspect_preference def initialize(name = "default", value = 0.0) @name = name.to_str.dup.freeze @@ -231,6 +239,14 @@ module Redact @color_class = "" end + def visible=(v) + @visible = (v == true) + end + + def color_class=(v) + @color_class = v.to_str.dup + end + def set_step(x = 0, y = 0) @step = [x, y] end @@ -388,7 +404,7 @@ module Redact end class ImageDescription < Description - attr_reader :image, :auto_rel, :tweens + attr_reader :image, :auto_rel, :tweens, :border_fill_middle def initialize(name = "default", value = 0.0) super @@ -449,8 +465,7 @@ module Redact end class TextDescription < Description - attr_reader :font - attr_accessor :text, :font_size, :text_class + attr_reader :font, :text, :font_size, :text_class def initialize(name = "default", value = 0.0) super @@ -468,6 +483,18 @@ module Redact @text_id_text_source = -1 end + def text=(v) + @text = v.to_str.dup + end + + def font_size=(v) + @font_size = v.to_int + end + + def text_class=(v) + @text_class = v.to_str.dup + end + def set_fit(x = false, y = false) @fit = [x, y] end diff --git a/lib/redact/program.rb b/lib/redact/program.rb index d6038d9..bde0c03 100644 --- a/lib/redact/program.rb +++ b/lib/redact/program.rb @@ -1,5 +1,5 @@ #-- -# $Id: program.rb 23 2005-04-02 23:20:32Z tilman $ +# $Id: program.rb 25 2005-04-14 19:42:06Z tilman $ # # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de) # @@ -35,8 +35,8 @@ module Redact include Comparable - attr_reader :collection, :id, :name, :after - attr_accessor :signal, :source, :in_from, :in_range + attr_reader :collection, :id, :name, :after, :signal, :source, + :in_from, :in_range def initialize(collection, id, name) @collection = collection @@ -56,6 +56,34 @@ module Redact @id <=> b.id end + def signal=(v) + @signal = v.to_str.dup + end + + def source=(v) + @source = v.to_str.dup + end + + def in_from=(v) + unless v.is_a?(Float) + raise(ArgumentError, + "wrong argument type #{v.class.name} " + + "(expected Float)") + end + + @in_from = v + end + + def in_range=(v) + unless v.is_a?(Float) + raise(ArgumentError, + "wrong argument type #{v.class.name} " + + "(expected Float)") + end + + @in_range = v + end + def to_eet_name "Edje_Program" end @@ -73,8 +101,8 @@ module Redact end class SetStateProgram < Program - attr_reader :targets - attr_accessor :state, :value, :mode, :time + attr_reader :targets, :state, :value, :time + attr_accessor :mode def initialize(collection, id, name) super @@ -87,6 +115,30 @@ module Redact @targets = ProgramArgs.new(collection) end + def state=(v) + @state = v.to_str.dup + end + + def value=(v) + unless v.is_a?(Float) + raise(ArgumentError, + "wrong argument type #{v.class.name} " + + "(expected Float)") + end + + @value = v + end + + def time=(v) + unless v.is_a?(Float) + raise(ArgumentError, + "wrong argument type #{v.class.name} " + + "(expected Float)") + end + + @time = v + end + def to_eet_properties mode = case @mode when :linear: 1 @@ -120,7 +172,7 @@ module Redact end class EmitSignalProgram < Program - attr_accessor :emission_signal, :emission_source + attr_reader :emission_signal, :emission_source def initialize(collection, id, name) super @@ -130,6 +182,14 @@ module Redact @emission_source = nil end + def emission_signal=(v) + @emission_signal = v.to_str.dup + end + + def emission_source=(v) + @emission_source = v.to_str.dup + end + def to_eet_properties super.merge!( {"state" => [@emission_signal], @@ -138,7 +198,7 @@ module Redact end class ExecScriptProgram < Program - attr_accessor :script + attr_reader :script def initialize(collection, id, name) super @@ -146,6 +206,10 @@ module Redact @type = TYPE_EXEC_SCRIPT @script = nil end + + def script=(v) + @script = v.to_str.dup + end end class ProgramArgs < Array diff --git a/lib/redact/redact.rb b/lib/redact/redact.rb index 499b7fd..260f342 100644 --- a/lib/redact/redact.rb +++ b/lib/redact/redact.rb @@ -1,5 +1,5 @@ #-- -# $Id: redact.rb 6 2005-03-26 20:24:40Z tilman $ +# $Id: redact.rb 25 2005-04-14 19:42:06Z tilman $ # # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de) # @@ -230,8 +230,8 @@ module Redact end class Collection - attr_reader :name, :id, :data, :min, :max, :parts, :programs - attr_accessor :script + attr_reader :name, :id, :data, :min, :max, :parts, :programs, + :script def initialize(name, id) @name = name.to_str.dup.freeze @@ -247,6 +247,10 @@ module Redact @script = nil end + def script=(v) + @script = v.to_str.dup + end + def part(name, type = :invalid) # :yields: part p = @parts[name] if p.nil?