Module: Ramaze::Helper::SimpleCaptcha

Includes:
Traited
Defined in:
lib/ramaze/helper/simple_captcha.rb

Overview

Produce very simple question/answer pairs.

The default is a trivial mathematical problem.

Usage (trait is optional):

class RegisterController < Ramaze::Controller
trait :captcha => lambda{
  ["the answer to everything", "42"]
}

def index
  %(
    <form action="#{r(:answer}">
      What is #{simple_captcha}?
      <input type="text" name="answer" />"
      <input type="submit" />
    </form>
  ).strip
end

def answer
  check_captcha(request[:answer])
end
end

Constant Summary collapse

NUMBERS =
[5, 10, 15, 20]

Instance Method Summary collapse

Instance Method Details

#check_captcha(answer) ⇒ Object

check the given answer against the answer stored in the session.



54
55
56
57
58
# File 'lib/ramaze/helper/simple_captcha.rb', line 54

def check_captcha(answer)
  return false unless captcha = session[:CAPTCHA]

  answer.to_s.strip == captcha[:answer].to_s
end

#simple_captchaObject

Call the trait and store question/answer in session



45
46
47
48
49
50
51
# File 'lib/ramaze/helper/simple_captcha.rb', line 45

def simple_captcha
  question, answer = ancestral_trait[:captcha].call

  session[:CAPTCHA] = { :question => question, :answer => answer.to_s }

  question
end