On Sep 25, 2005, at 10:04 PM, James Edward Gray II wrote:

> On Sep 25, 2005, at 2:55 PM, Gavin Kistner wrote:
>
>
>> My solution follows.
>>
>
> My solution is below.  Here are my random thoughts about it:

[snip 1 - 3]

4.  I add captchas in plain Ruby code.  A method is available in the  
templates called arg(), to ensure an argument is passed on to your  
validation block.  Here's a sample captcha:

> add_captcha(
>     "<%= arg(rand(10)).to_en.capitalize %> plus <%= arg(2).to_en %>?"
> ) do |answer, *opers|
>     if answer.is_a?(String) and answer =~ /^\d+$/
>         answer = answer.to_i.to_en
>     elsif answer.is_a?(Integer)
>         answer = answer.to_en
>     end
>     answer == opers.inject { |sum, var| sum + var }.to_en
> end

James Edward Gray II