On Jun 7, 9:10 ¨Βν¬ ΚασοΜιμμωχθιτε Όκασοξ®μιμμωχθ®®®ΐηναιμ®γονΎ wrote: > How do you take a piece of a method and use it in another? Here is my > simple example: > > class MyArray > def counter > result = [] > i = 0 > a = 1 > b = 0 > while i <= 5 do > a = a + 1 > b = b +1.5 > result << b.to_s + "\t" + a.to_s > i += 1 > end > puts result > end > def counter2 > counter > end > end > > test = MyArray.new > puts test.counter2 > > I want counter2 method to take the array "b" and do something with it, > like this: > b.inject {|sum, element| sum+element} > I just can't figure out how to transfer b from one method to another. Is > there a clean way to do this? Hi Jason, If I understand you correctly, you want your counter method to return b to its caller. The method will return the value of the last expression evaluated, or alternatively you can use a return statement anywhere within the method. ==== class MyArray def counter result = [] i = 0 a = 1 b = 0 while i <= 5 do a = a + 1 b = b +1.5 result << b.to_s + "\t" + a.to_s i += 1 end puts result b # will return b to caller end def counter2 this_b = counter # capture the return value this_b.inject {|sum, element| sum+element} # total is returned to caller end end test = MyArray.new puts test.counter2 ==== Hope that helps, Eric ==== LearnRuby.com offers Rails & Ruby HANDS-ON public & ON-SITE workshops. Ruby Fundamentals Wkshp June 16-18 Ann Arbor, Mich. Ready for Rails Ruby Wkshp June 23-24 Ann Arbor, Mich. Ruby on Rails Wkshp June 25-27 Ann Arbor, Mich. Ruby Plus Rails Combo Wkshp June 23-27 Ann Arbor, Mich Please visit http://LearnRuby.com for all the details.