This ensures type safety in some spots.
--
-$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
#--
-# $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)
#
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
@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")
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
@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
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
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
@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
#--
-# $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)
#
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
@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
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
@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
end
class EmitSignalProgram < Program
- attr_accessor :emission_signal, :emission_source
+ attr_reader :emission_signal, :emission_source
def initialize(collection, id, name)
super
@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],
end
class ExecScriptProgram < Program
- attr_accessor :script
+ attr_reader :script
def initialize(collection, id, name)
super
@type = TYPE_EXEC_SCRIPT
@script = nil
end
+
+ def script=(v)
+ @script = v.to_str.dup
+ end
end
class ProgramArgs < Array
#--
-# $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)
#
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
@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?