recaptcha

Get Version 0.1.47

→ ‘recaptcha’

What

Installing

  gem install --source http://www.loonsoft.com/recaptcha/pkg/ recaptcha
Note: the trailing slash on the uri is significant.

The basics

The ReCaptchaClient abstracts the ReCaptcha API for use in Rails Applications

Demonstration of usage

reCAPTCHA

First, create an account at ReCaptcha.net.

Get your keys, and make them available as constants in your application. You can do this however you want, but RCC_PUB, RCC_PRIV (for regular reCaptcha) and MH_PUB MH_PRIV (for MailHide) must be set to their respective values (the keys you receive from reCaptcha).

The two common methods of doing this (for Rails applications) are to set these variables in your environment.rb file, or via an environment variable.

The ReCaptchaClient initializer can also take an options hash containing keys thusly:
  RecaptchaClient.new(:rcc_pub=>'some key', :rcc_priv=>'some other key')
After your keys are configured, require and include the gem into your application.rb, NOTE: gem is used here, not require
gem 'recaptcha'
class ApplicationController < ActionController::Base
  include ReCaptcha::AppHelper
This will mix in validate_recap to your application controller. Then, in your concrete controller, chain validate_recap into your validation:
  def create
      @user = User.new(params[:user])
      if validate_recap(params, @user.errors) && @user.save
             ...do stuff...
Require and include the view helper in your application_helper: NOTE: require is used here, not gem, not sure why.
  require 'recaptcha'
  include ReCaptcha::ViewHelper
This will mix in get_captcha().

Now you can just call

get_captcha()
in your view to insert the requisite widget from ReCaptcha.

To customize theme and tabindex of the widget, you can include an options hash:

get_captcha(:options => {:theme => 'white', :tabindex => 10})

See the reCAPTCHA API Documentation under “Look and Feel Customization” for more information.

Proxy support

If your rails application requires the use of a proxy, set proxy_host into your environment:
  ENV['proxy_host']='foo.example.com:8080'

Mail Hide

When you mix in ViewHelper as above, you also get

 mail_hide(address, contents)
, which you can call in your view thusly:

  ...
  <%= mail_hide(user.email) %>

Contents defaults to the first few characters of the email address.

Forum

http://groups.google.com/group/recaptcha

Code

Get it here

You’ll want Mercurial

License

This code is free to use under the terms of the MIT License.

Contact

Comments are welcome. Send an email to McClain Looney.

Contributors:

Victor Cosby (test cleanup, additional code to style widget)
Ronald Schroeter (proxy support suggestion & proto-patch)
Peter Vandenberk (multi-key support, ssl support, various unit tests, test refactoring)
Kim Griggs (found long address-newline bug)

Packaged with help from Dr Nic, 7th April 2008
Theme extended from Paul Battley