NAME

flatulent : CAPTCHA for FIGLET.

SYNOPSIS

the flatulent gem provides brain dead simple to use, but internally cunning,
ascii art (figlet) captcha for ruby.

URI

http://codeforpeople.com/lib/ruby
http://rubyforge.org/projects/codeforpeople

HOW DO I GET FLATULENT?

gem install flatulent

HISTORY

0.0.3:
  - following are now all equivalent when posting (thanks botp)

      0==o==O==Q (zero, oh's, and queue)
      l==l       (one and el)
      2==z==Z    (two and z's)
      5==s==S    (5 and s's)

  - random horizontal and vertical displacement of each char

  - vastly improved background noise based on figlet char shapes

  - inputs are case sensitive (thanks john joyce, chris carter)

  - expanded rails examples

0.0.2

  - ajax gets stinky: Flatulent.ajax!  the result of this new addition is
    that the captcha itself doesn't appear in the source file at all

  - blowfish encoding for timebomb and captcha fields

  - auto server key configuration using hostname and mac address

  - improved noise algorithm

  - improved character placement (chars shared edges to make ocr'ing harder)

0.0.1

  - initial version

RAILS EXAMPLES

REGULAR METHOD (LESS SECURE):

  def controller_action 
    if params.has_key? 'flatulent'
      Flatulent.validate! params
    end

    render :inline => <<-html
      <html><body>
        #{ Flatulent.form }
      </body></html>
    html
  end

AJAX METHOD (MORE SECURE):

  def controller_action
    if params.has_key? 'flatulent'
      Flatulent.validate! params
    end

    render :inline => <<-html
      <html>
        <head> <%= javascript_include_tag 'prototype' %> </head>
        <body>
          <form action='./' method='post'>
            <%= Flatulent.ajax %>
            <input type='submit' name='submit' value='submit' />
          </form>
        </body>
      </html>
    html
  end

DOCS

see source in ./lib/*
see the example rails project in ./rails

ONLINE SAMPLES

http://drawohara.tumblr.com/post/4791838
http://drawohara.tumblr.com/post/4944987
http://drawohara.tumblr.com/post/4968766

ONLINE DEMO OF AJAX METHOD

http://fortytwo.merseine.nu:3000/flatulent/ajax  -- try to break it!