class Faker::Code
def generate_base13_isbn
def generate_base13_isbn generate(:string) do |g| g.int(name: :values, length: 12) g.lit('-') g.computed(name: :checksum, deps: [:values]) do |values| remainder = sum(values.to_s) { |value, offset| offset.even? ? value.to_i : value.to_i * 3 } % 10 (10 - remainder) % 10 end end end