module SayisalCaptcha

Kullanılacak modül

Constants

NUMBERS
OPERATORS
VERSION

Public Class Methods

generate_numbers() click to toggle source

Random numaraları üreten ve hem sayı hem tekst olarak döndüren method

# File lib/sayisal_captcha.rb, line 16
def self.generate_numbers
  numbers = [(0..9).to_a.sample, (0..9).to_a.sample]
  [numbers, numbers.map{ |n| number_to_text(number: n) }]
end
generate_question() click to toggle source

Esas kullanacağımız ana method

# File lib/sayisal_captcha.rb, line 22
def self.generate_question
  numbers = generate_numbers.first
  operation = OPERATORS.sample
  first_number = numbers.first
  last_number = numbers.last
  result = first_number.method(operation).call(last_number)
  {
    first_number: first_number,
    last_number: last_number,
    operation: operation,
    question: "#{first_number} #{operation.to_s} #{last_number}",
    result: result
  }
end
number_to_text(number: 0) click to toggle source

Sayıyı Türkçe tekste çeviren method

# File lib/sayisal_captcha.rb, line 11
def self.number_to_text(number: 0)
  NUMBERS[number]
end