From: Harry Spier Date: 2010-09-12T10:34:42+09:00 Subject: Converting from one class to another in Ruby 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 -- Posted via http://www.ruby-forum.com/.