Leo M. wrote in post #1088536:
def erase_doubles
@results.each do |result|
#I REALLY DON'T HAVE IDEA ABOUT HOW TO BUILD IT :)
end
class Result
attr_accessor :name, :link, :messages
def initialize(name, link, msg)
@name = name
@link = link
@messages = msg
end
end
links = [‘a’, ‘b’, ‘a’, ‘c’, ‘c’]
names = [“Joe”, “Bob”, “Cathy”, “Doug”, “Carol”]
messages = [“mars”, “venus”, “jupiter”, “mercury”, “earth”]
links_enum = links.each
names_enum = names.each
msg_enum = messages.each
results = names.map do |link|
Result.new(names_enum.next, links_enum.next, msg_enum.next)
end
p results
–output:–
[#<Result:0x00000101093290 @name=“Joe”, @link=“a”, @msg=“mars”>,
#<Result:0x000001010931f0 @name=“Bob”, @link=“b”, @msg=“venus”>,
#<Result:0x00000101093150 @name=“Cathy”, @link=“a”, @msg=“jupiter”>,
#<Result:0x000001010930b0 @name=“Doug”, @link=“c”, @msg=“mercury”>,
#<Result:0x00000101093010 @name=“Carol”, @link=“c”, @msg=“earth”>]
hash ={}
results.each do |r|
hash[r.link] = r
end
p hash.values
–output:–
[#<Result:0x00000101093150 @name=“Cathy”, @link=“a”, @msg=“jupiter”>,
#<Result:0x000001010931f0 @name=“Bob”, @link=“b”, @msg=“venus”>,
#<Result:0x00000101093010 @name=“Carol”, @link=“c”, @msg=“earth”>]