Representing a complex object


#1

Hi

we are facing trouble in implementing a complex object in ruby,
like say we have a class B which has a member int and a member string,
we have to implement a class A whose members are an array of objects of
B
how is it done, pls do respond.

Regards
chandra shekhar G


#2

chandra shekhar G wrote:

Hi

we are facing trouble in implementing a complex object in ruby,
like say we have a class B which has a member int and a member string,
we have to implement a class A whose members are an array of objects of
B
how is it done, pls do respond.

Regards
chandra shekhar G

Do you really find this to be “complex”? It seems relatively straight
forward…

class B
def initialize(my_int,my_string)
@my_int = my_int
@my_string = my_string
end
end

class A
def initialize
@my_objects = []
end

def add_item(item)
@my_objects << item
end
end

my_b = B.new(10,“foo”)
my_a = A.new
my_a.add_item my_b


#3

On 12.03.2007 16:44, chandra shekhar G wrote:

we are facing trouble in implementing a complex object in ruby,
like say we have a class B which has a member int and a member string,
we have to implement a class A whose members are an array of objects of
B
how is it done, pls do respond.

Just a curious question: what do you need that for? What problem are
you trying to solve?

Kind regards

robert


#4

On Mar 12, 9:44 am, chandra shekhar G removed_email_address@domain.invalid wrote:

we are facing trouble in implementing a complex object in ruby,
like say we have a class B which has a member int and a member string,
we have to implement a class A whose members are an array of objects of
B
how is it done, pls do respond.

Ruby does not care what type of value each variable is. Here’s a very
simple way to do what you want:

B = Struct.new( :my_int, :my_string ) # A very simple way to create a
class
# that is just a container for
simple properties

b1 = B.new( 12, “hello” )
b2 = B.new( 42, “world” )
my_array = [ b1, b2 ] # An array of B instances

b3 = B.new( 54, “foobar” )
my_array << b3 # append one more value to the
array


#5

hi

thanks for the response,
the issue is we have an Composite object which has two types of objects
in it
first is a struct containing an int and a string
second is an array of objects where each is a struct containing an int
and a string

when we try to implement this and return it from a method,
the api throws error saying “dont know how to cast”

any information on the same is welcome

thanks