Dear list members,

I have an application with a class Binary_matrix < Array (which is just

a two dimensional array filled with zeroes and ones). I also have other

classes which have to_Binary_matrix methods to convert objects of their

class to Binary_matrix objects.

The Ruby code I came up with to do the conversions is as follows.

class A

def to_Binary_matrix(from_initialize_method = false)

…some logic to convert class A object to binary_matrix_format

if from_initialize_method

return an_A_type_object_in_binary_matrix_format

else

return

Binary_matrix.new(an_A_type_object_in_binary_matrix_format)

end

end

end

class B

def to_Binary_matrix(from_initialize_method = false)

…some logic to convert class B object to binary_matrix_format

if from_initialize_method

return a_B_type_object_in_binary_matrix_format

else

return

Binary_matrix.new(a_B_type_object_in_binary_matrix_format)

end

end

end

class Binary_matrix < Array

def initialize arg

self.replace arg.to_Binary_matrix(true)

end

end

This allows me to do:

a = A.new

an_A_as_a_Binary_matrix_object = a.to_Binary_matrix

b_as_a_Binary_matrix_object = Binary_matrix.new(b)

It works but it seems a little clunky to me. Is their a more Rubyish or

elegent way of doing this. In particular is it possible to get rid of

the flag I use (from_initialize_method) to keep me from getting into an

infinite loop as I go between the .to_Binary_matrix methods and the

initialize method in Binary_matrix

Thanks in advance,

Harry