Leap year algorithm? I wrote two functions for determining leap years.
("Kabisat" means "leap year" in Indonesia.)

def kabisat? y
  return false if y%4!=0   
  return true if y%100!=0  
  y%400==0                 
end

def kabisat_2? y
  return true if y%400==0   
  return false if y%100==0  
  y%4==0                    
end 

require 'date';

(1..Date.today.year).each { |y|
  puts y if kabisat?(y)!=kabisat_2?(y)
}


Is it correct? And it is possible to write a shorter one?
Some notes:


I assume that, for some reason, you want to write your own function/method instead of the existing Date#leap? that @Flambino linked above.
kabisat? We all love our mother tongue, but in computing English is the lingua franca, specially when you share your code with people around the world. It's a nice word to learn, though :-)
This is a personal advice, not all Ruby programmers agree: don't use inline returns. Use the good old full-fledged conditionals, it's much more clear. In general, use expressions instead of statements.


Let's see the standard algorithm. Ok, I'll just translate it to Ruby (if I felt fancy I'd even add Integer#divisible_by?(n) for a fully declarative code):

def is_leap_year?(year)
  if year % 400 == 0 
    true
  elsif year % 100 == 0
    false
  elsif year % 4 == 0
    true
  else
    false
  end
end


Too verbose? use boolean logic:

def is_leap_year?(year)
  (year % 400 == 0) || (year % 100 != 0 &amp;&amp; year % 4 == 0)
end