56.3.7. Connascence of Algorithm

add_check_digit("31415972") → "314159728"

def add_check_digit(digits)
    check_sum = digits.split(//).
        inject(0) {|r,n| r+n.to_i } % 10
    digits + ((10 - check_sum) % 10).to_s
end

def check?(digits)
    check_sum = digits.split(//).
        inject(0) {|r,n| r + n.to_i } % 10
    check_sum == 0
end

def add_check_digit(digits)
    digits + ((10 - check_sum(digits)) % 10).to_s
end

def check?(digits)
    check_sum(digits) == 0
end

def check_sum(digits)
    digits.split(//).
        inject(0) {|r,n| r + n.to_i } % 10
end

Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .