Sha256: 266bb45ea147f76b6146c6b0f4212b664cd7db7d5039a472fceef14523ca9d97

Contents?: true

Size: 433 Bytes

Versions: 106

Compression:

Stored size: 433 Bytes

Contents

module BookKeeping
  VERSION = 1
end

class IsbnVerifier
  def self.valid?(str)
    return false unless /\A\d-?\d{3}-?\d{5}-?[\dX]\z/.match(str)

    result = str
      .gsub("-", "")
      .chars
      .map { |char|
        char.gsub("X","10")
      }
      .zip(10.downto(1))
      .map { |number, index|
        number.to_i * index
      }
      .reduce(0){ |sum, digit|
        sum + digit
      }

    result % 11 == 0
  end
end

Version data entries

106 entries across 106 versions & 1 rubygems

Version Path
trackler-2.2.1.98 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.97 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.96 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.95 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.94 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.93 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.92 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.91 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.90 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.89 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.88 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.87 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.86 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.85 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.84 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.83 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.82 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.81 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.80 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb
trackler-2.2.1.79 tracks/ruby/exercises/isbn-verifier/.meta/solutions/isbn_verifier.rb