class Faker::Code
def generate_base10_isbn
def generate_base10_isbn generate(:string) do |g| g.int(name: :values, length: 9) g.lit('-') g.computed(name: :checksum, deps: [:values]) do |values| remainder = sum(values.to_s) { |value, offset| (offset + 1) * value.to_i } % 11 if remainder == 10 'X' else remainder.to_s end end end end