def Rect.new_from_object(object)
case(object)
when Rect
return object.dup
when Array
if object.length >= 4
return Rect.new(object)
else
raise(ArgumentError,"Array does not have enough indices to be made into a Rect (%d for 4)."%object.length )
end
else
begin
case(object.rect)
when Rect
return object.rect.dup
when Array
if object.rect.length >= 4
return Rect.new(object.rect)
else
raise(ArgumentError,"Array does not have enough indices to be made into a Rect (%d for 4)."%object.rect.length )
end
end
rescue NoMethodError
raise(TypeError,"Object must be a Rect or Array [x,y,w,h], or have an attribute called 'rect'. (Got %s instance.)"%object.class)
end
end
end