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