Could someone help me with this little problem?
I have a file called fruit2.rb which contains:
class Fruit2
def taste
“sweet”
end
end
I want to use this class in a different file called fruit1.rb which
contains:
require “fruit2”
class Fruit1
def color
“red”
end
end
apple = Fruit1.new
p apple.color
apple = Fruit2.new
p apple.taste
I know the way I’m creating my apple object is wrong because I
over-wrote apple when I assigned Fruit2.new. What I want to do is have a
way to call attributes of a single object from different files. In my
application, I have so many methods, I want them in different files, but
want to use them on a single object. Is there an easy way to do this?
–thank you!
I understand that I could do
class Fruit1 < Fruit2
but what if I have methods I want to use from many files? This
inheritance only works for one?
Should I resort to modules?
Alle Thursday 18 December 2008, Jason L. ha scritto:
I want to use this class in a different file called fruit1.rb which
p apple.color
apple = Fruit2.new
p apple.taste
I know the way I’m creating my apple object is wrong because I
over-wrote apple when I assigned Fruit2.new. What I want to do is have a
way to call attributes of a single object from different files. In my
application, I have so many methods, I want them in different files, but
want to use them on a single object. Is there an easy way to do this?
–thank you!
I’m not sure I understand correctly what you mean. In ruby, you can
re-open a
class after it’s been defined. This means you can put the taste method
in one
file and the color method in another one, both in the same class:
#in fruit2.rb
class Fruit
def taste
“sweet”
end
end
in fruit1.rb
class Fruit
def color
“red”
end
end
apple = Fruit.new
puts apple.taste
puts apple.color
I hope this helps
Stefano
I didn’t know you could re-open classes like that. I’ve done this in
irb, but I didn’t realize this for actual files. This is the solution I
need. Thanks!