Sha256: 3cb16ec6cc45a0e93dbfe492aac87795218b64802fdf60820fae74235997adc0

Contents?: true

Size: 713 Bytes

Versions: 2

Compression:

Stored size: 713 Bytes

Contents

class Rad::Captcha
  attr_accessor :public_key, :private_key, :timeout, :enabled, :verify_url
  attr_required :private_key, :public_key
  def enabled?; !!enabled end

  def verify request, params
    recaptcha = nil
    Timeout::timeout(timeout || 3) do
      recaptcha = Net::HTTP.post_form URI.parse(verify_url), {
        'privatekey' => private_key,
        'remoteip' => request.ip,
        'challenge' => params.recaptcha_challenge_field,
        'response' => params.recaptcha_response_field
      }
    end
    result = recaptcha.body.split.map { |s| s.chomp }
    answer, error = result
    answer == 'true'
  end
end

rad.register :captcha, depends_on: [:template, :controller] do
  Rad::Captcha.new
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rad_kit-0.0.10 lib/components/captcha.rb
rad_kit-0.0.9 lib/components/captcha.rb