From: Martin Hansen Date: 2010-05-28T00:04:25+09:00 Subject: Re: Badly organized code? @Josh, Sure, I actually want to use some of the time math ruby provides, and write appropriate tests for it. I just used some old crap as a place holder for now. I am in the process of writing tests and when I get to it, I will most certainly refactor. ;o) M Josh Cheek wrote: > On Thu, May 27, 2010 at 8:05 AM, Martin Hansen wrote: > >> > fear of breaking. >> >> > > I meant rubyists. For example, the time_diff method at the very end can > probably be rewritten > > def time_diff(t0, t1) > day0 , hour0 , min0 , sec0 = t0.split(/\D+/)[2..-1].map { |n| n.to_i } > day1 , hour1 , min1 , sec1 = t1.split(/\D+/)[2..-1].map { |n| n.to_i } > > sec0 += ( ( day0 * 24 + hour0 ) * 60 + min0 ) * 60 > sec1 += ( ( day1 * 24 + hour1 ) * 60 + min1 ) * 60 > sec = sec1-sec0 > > sprintf '%02d:%02d:%02d' , sec/60/60 , sec/60%60 , sec%60 > end > > > > But I don't know for sure, without a bunch of tests to show it behaves > the > same way. I think the math at the end is probably right, but haven't had > a > math course in 2 years, would you rather trust correctness to my > "probably > right" or to your ironclad test suite? And when looking at it, I see we > don't use year or month, so I wonder if it has bugs, and I'm just > refactoring bugs, which makes it very difficult to get motivated. I > might > also be inclined to play with DateTime to see if it has this > functionality > within it, in which case the whole method could probably be replaced > with 1 > line, but its not immediately obvious to me if it does, so it would be > nice > to have some tests that I can know how close I am getting. -- Posted via http://www.ruby-forum.com/.