class Faker::Code
def generate_base13_ean
def generate_base13_ean generate(:string) do |g| g.int(name: :values, length: 12) g.computed(name: :checksum, deps: [:values]) do |values| check_digit = 10 - values.to_s.chars.each_with_index.inject(0) { |s, (v, i)| s + v.to_i * EAN_CHECK_DIGIT13[i] } % 10 if check_digit == 10 0 else check_digit end end end end