def to_ean
          ean = '978' + @isbn[0..8]
          sum = 0
          0.step( 10, 2 ) { |n|
               sum += ean[n..n].to_i
               sum += ean[n+1..n+1].to_i * 3
               }
          ean += "#{ ( 10 * ( ( sum / 10 ) + 1 ) - sum ) % 10 }"
          return ean
     end

Example 2: Ruby version of Example 1.

Back to Article