recaptcha 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +8 -0
- data/Rakefile +2 -1
- data/VERSION +1 -1
- data/init.rb +2 -0
- data/lib/recaptcha.rb +2 -1
- data/lib/recaptcha/client_helper.rb +4 -4
- data/lib/recaptcha/merb.rb +4 -0
- data/lib/recaptcha/verify.rb +14 -9
- data/recaptcha.gemspec +7 -5
- metadata +4 -3
data/README.rdoc
CHANGED
@@ -25,6 +25,14 @@ Or, as a standard rails plugin:
|
|
25
25
|
|
26
26
|
script/plugin install git://github.com/ambethia/recaptcha.git
|
27
27
|
|
28
|
+
== Merb Installation
|
29
|
+
|
30
|
+
reCAPTCHA can also be used in a Merb application when installed as a gem:
|
31
|
+
|
32
|
+
dependency "alm-recaptcha", ">=0.2.2.1", :require_as => "recaptcha/merb"
|
33
|
+
|
34
|
+
Initial Merb compatability funded by ALM Labs.
|
35
|
+
|
28
36
|
== Setting up your API Keys
|
29
37
|
|
30
38
|
There are two ways to setup your reCAPTCHA API keys once you {obtain}[http://recaptcha.net/whyrecaptcha.html]
|
data/Rakefile
CHANGED
@@ -6,11 +6,12 @@ begin
|
|
6
6
|
gem.name = "recaptcha"
|
7
7
|
gem.description = "This plugin adds helpers for the reCAPTCHA API "
|
8
8
|
gem.summary = "Helpers for the reCAPTCHA API"
|
9
|
-
gem.homepage = "http://
|
9
|
+
gem.homepage = "http://ambethia.com/recaptcha"
|
10
10
|
gem.authors = ["Jason L. Perry"]
|
11
11
|
gem.email = "jasper@ambethia.com"
|
12
12
|
gem.files.reject! { |fn| fn.include? ".gitignore" }
|
13
13
|
end
|
14
|
+
Jeweler::GemcutterTasks.new
|
14
15
|
rescue LoadError
|
15
16
|
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
16
17
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.3
|
data/init.rb
CHANGED
data/lib/recaptcha.rb
CHANGED
@@ -5,7 +5,8 @@ module Recaptcha
|
|
5
5
|
def recaptcha_tags(options = {})
|
6
6
|
# Default options
|
7
7
|
key = options[:public_key] ||= ENV['RECAPTCHA_PUBLIC_KEY']
|
8
|
-
|
8
|
+
raise RecaptchaError, "No public key specified." unless key
|
9
|
+
error = options[:error] ||= (defined? flash ? flash[:recaptcha_error] : "")
|
9
10
|
uri = options[:ssl] ? RECAPTCHA_API_SECURE_SERVER : RECAPTCHA_API_SERVER
|
10
11
|
html = ""
|
11
12
|
if options[:display]
|
@@ -17,7 +18,7 @@ module Recaptcha
|
|
17
18
|
html << %{<div id="dynamic_recaptcha"></div>}
|
18
19
|
html << %{<script type="text/javascript" src="#{uri}/js/recaptcha_ajax.js"></script>\n}
|
19
20
|
html << %{<script type="text/javascript">\n}
|
20
|
-
html << %{ Recaptcha.create('#{key}', document.getElementById('dynamic_recaptcha')#{options[:display] ? '' : '
|
21
|
+
html << %{ Recaptcha.create('#{key}', document.getElementById('dynamic_recaptcha')#{options[:display] ? ',RecaptchaOptions' : ''});}
|
21
22
|
html << %{</script>\n}
|
22
23
|
else
|
23
24
|
html << %{<script type="text/javascript" src="#{uri}/challenge?k=#{key}}
|
@@ -35,8 +36,7 @@ module Recaptcha
|
|
35
36
|
html << %{</noscript>\n}
|
36
37
|
end
|
37
38
|
end
|
38
|
-
raise RecaptchaError, "No public key specified." unless key
|
39
39
|
return html
|
40
40
|
end # recaptcha_tags
|
41
41
|
end # ClientHelper
|
42
|
-
end # Recaptcha
|
42
|
+
end # Recaptcha
|
data/lib/recaptcha/verify.rb
CHANGED
@@ -3,11 +3,16 @@ module Recaptcha
|
|
3
3
|
# Your private API can be specified in the +options+ hash or preferably
|
4
4
|
# the environment variable +RECAPTCHA_PUBLIC_KEY+.
|
5
5
|
def verify_recaptcha(options = {})
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
if !options.is_a? Hash
|
7
|
+
options = {:model => options}
|
8
|
+
end
|
9
|
+
|
10
|
+
env = options[:env] || ENV['RAILS_ENV']
|
11
|
+
return true if SKIP_VERIFY_ENV.include? env
|
12
|
+
model = options[:model]
|
13
|
+
private_key = options[:private_key] || ENV['RECAPTCHA_PRIVATE_KEY']
|
10
14
|
raise RecaptchaError, "No private key specified." unless private_key
|
15
|
+
|
11
16
|
begin
|
12
17
|
recaptcha = nil
|
13
18
|
Timeout::timeout(options[:timeout] || 3) do
|
@@ -20,21 +25,21 @@ module Recaptcha
|
|
20
25
|
end
|
21
26
|
answer, error = recaptcha.body.split.map { |s| s.chomp }
|
22
27
|
unless answer == 'true'
|
23
|
-
|
28
|
+
flash[:recaptcha_error] = error
|
24
29
|
if model
|
25
30
|
model.valid?
|
26
|
-
model.errors.add :base, options[:message] || "
|
31
|
+
model.errors.add :base, options[:message] || "Word verification response is incorrect, please try again."
|
27
32
|
end
|
28
33
|
return false
|
29
34
|
else
|
30
|
-
|
35
|
+
flash[:recaptcha_error] = nil
|
31
36
|
return true
|
32
37
|
end
|
33
38
|
rescue Timeout::Error
|
34
|
-
|
39
|
+
flash[:recaptcha_error] = "recaptcha-not-reachable"
|
35
40
|
if model
|
36
41
|
model.valid?
|
37
|
-
model.errors.add :base, options[:message] || "Oops, we failed to validate your
|
42
|
+
model.errors.add :base, options[:message] || "Oops, we failed to validate your word verification response. Please try again."
|
38
43
|
end
|
39
44
|
return false
|
40
45
|
rescue Exception => e
|
data/recaptcha.gemspec
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{recaptcha}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jason L. Perry"]
|
12
|
-
s.date = %q{2009-10-
|
12
|
+
s.date = %q{2009-10-23}
|
13
13
|
s.description = %q{This plugin adds helpers for the reCAPTCHA API }
|
14
14
|
s.email = %q{jasper@ambethia.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
"init.rb",
|
26
26
|
"lib/recaptcha.rb",
|
27
27
|
"lib/recaptcha/client_helper.rb",
|
28
|
+
"lib/recaptcha/merb.rb",
|
28
29
|
"lib/recaptcha/rails.rb",
|
29
30
|
"lib/recaptcha/verify.rb",
|
30
31
|
"recaptcha.gemspec",
|
@@ -32,7 +33,7 @@ Gem::Specification.new do |s|
|
|
32
33
|
"test/recaptcha_test.rb",
|
33
34
|
"test/verify_recaptcha_test.rb"
|
34
35
|
]
|
35
|
-
s.homepage = %q{http://
|
36
|
+
s.homepage = %q{http://ambethia.com/recaptcha}
|
36
37
|
s.rdoc_options = ["--charset=UTF-8"]
|
37
38
|
s.require_paths = ["lib"]
|
38
39
|
s.rubygems_version = %q{1.3.5}
|
@@ -52,3 +53,4 @@ Gem::Specification.new do |s|
|
|
52
53
|
else
|
53
54
|
end
|
54
55
|
end
|
56
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: recaptcha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason L. Perry
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-23 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -31,6 +31,7 @@ files:
|
|
31
31
|
- init.rb
|
32
32
|
- lib/recaptcha.rb
|
33
33
|
- lib/recaptcha/client_helper.rb
|
34
|
+
- lib/recaptcha/merb.rb
|
34
35
|
- lib/recaptcha/rails.rb
|
35
36
|
- lib/recaptcha/verify.rb
|
36
37
|
- recaptcha.gemspec
|
@@ -38,7 +39,7 @@ files:
|
|
38
39
|
- test/recaptcha_test.rb
|
39
40
|
- test/verify_recaptcha_test.rb
|
40
41
|
has_rdoc: true
|
41
|
-
homepage: http://
|
42
|
+
homepage: http://ambethia.com/recaptcha
|
42
43
|
licenses: []
|
43
44
|
|
44
45
|
post_install_message:
|