> On 4/18/05, Leonardo Francalanci <lfrancalanci / simtel.it> wrote:> Hello,> > I've found Ruby very interesting. I like it, but coming from a Java> background I'm having some problems when it comes to parameters and> function return values. When I program in Java, I just have a look at> the method definition and I know what classes I have to pass to the> method and what class the method will return. And, if I write something> wrong, the compiler will warn me. Now: how do you do it in Ruby? Do you> use a special notation to understand what classes are to be passed to> methods? And: when the parameters of a method change (in number and/or> type), how do you change the calling code accordingly?> > Example:> > def mymethod(customer, vendor)>   <some code here>> end> 
Use good methodnames, document the method and use rdoc on your source files# Adds a new entry to the "customer kills vendor" relationship. ## customer and vendor should respond to persons_id.def customer_killed_vendor(customer, vendor)  insert_into('customer_kills_vendor', customer.persons_id, vendor.persons_id)end
Then use unit tests to test your sourcecode.
> What class do customer and vendor belong? To Customer and Vendor? Or to> Person? Or are they just strings?> What are the ruturn types?> > And when you change the code to:> > def mymethod(customer, vendor, times)>   <some code here>> end> > do you use "grep" (or any other IDE command) to find all the calling> code to change it?
there are some refactoring tools available, but grep seems nice. Inyour example I'd use a default value:def mymethod(customer, vendor, times=1)  <some code here>end
as it seems your expanding the method call to add some behaviour.
Just my 0.02
regards,
Brian Schröäer
-- Brian Schröäerhttp://ruby.brian-schroeder.de/