Ruby Mod 11 implementation
Your code looks pretty good, but there is a no-no:

def checksum_one
  digit = sum_at(10)
  digit = calculate(digit)
  digit = 0 if digit &gt; 9
  digit
end


Note thatdigit my have up to three different values in just four lines of code. This makes the code harder to follow. As a rule of thumb, use different variable names. That's how I'd write it:

def checksum_one
  digit = calculate(sum_at(10))
  digit &gt; 9 ? 0 : digit
end