Advertisement
saasbook

Extract method (1)

Mar 6th, 2012
697
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.82 KB | None | 0 0
  1. class DateCalculator
  2.  
  3.   def convert(day)
  4.     year = 1980
  5.     while (days > 365) do
  6.       if leap_year?(year)
  7.         if (days > 366)
  8.           days -= 366
  9.           year += 1
  10.         end
  11.       else
  12.         days -= 365
  13.         year += 1
  14.       end
  15.     end
  16.     return year
  17.   end
  18.  
  19.   # extracted method
  20.   def leap_year?(year)
  21.     (year % 400 == 0 ||
  22.       (year % 4 == 0 && year % 100 != 0))
  23.   end
  24.  
  25. end
  26.  
  27. describe DateCalculator do
  28.   describe 'leap years' do
  29.     before(:each) do ; @calc = DateCalculator.new ; end
  30.     it 'should occur every 4 years' do
  31.       @calc.leap_year?(2004).should be_true
  32.     end
  33.     it 'but not every 100th year' do
  34.       @calc.leap_year?(1900).should_not be_true
  35.     end
  36.     it 'but YES every 400th year' do
  37.       @calc.leap_year?(2000).should be_true
  38.     end
  39.   end
  40. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement