rack-recaptcha 0.6.4 → 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -18,5 +18,6 @@ coverage
18
18
  rdoc
19
19
  pkg
20
20
  .rvmrc
21
+ .rbx/
21
22
 
22
23
  ## PROJECT::SPECIFIC
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # rack-recaptcha [![](http://stillmaintained.com/achiu/rack-recaptcha.png)](http://stillmaintained.com/achiu/rack-recaptcha)
2
2
 
3
+ [![Build Status](https://secure.travis-ci.org/achiu/rack-recaptcha.png)](http://travis-ci.org/achiu/rack-recaptcha)
4
+
3
5
  Drop this Rack middleware in your web application to enable CAPTCHA verification via Recaptcha API.
4
6
 
5
7
  ## How to Use
@@ -74,27 +76,60 @@ end
74
76
 
75
77
  The `Rack::Recaptcha::Helpers` module (for Sinatra, Rails, Padrino) adds these methods to your app:
76
78
 
77
- * `recaptcha_tag(type,options={})` -- generates the appropriate recaptcha scripts. must be included in a form_tag
78
- - recaptcha\_tag(:challenge) => generates a recaptcha script
79
- - recaptcha\_tag(:ajax) => generates an ajax recaptcha script
80
- - if passed in a :display option, you can further alter the recaptcha\_tag
81
- - recaptcha\_tag(:ajax, :display => {:theme => 'white'}) - recaptcha tag in white theme.
82
- - recaptcha\_tag(:noscript) => generates a recaptcha noscript
83
- - you can also pass in :public\_key manually as well.
84
- - recaptcha\_tag(:challenge,:public\_key => 'PUBLIC')
79
+ Return a javascript recaptcha form
80
+ ```ruby
81
+ recaptcha_tag :challenge
82
+ ```
83
+
84
+ Return a non-javascript recaptcha form
85
+ ```ruby
86
+ recaptcha_tag :noscript
87
+ ```
88
+
89
+ Return a ajax recaptcha form
90
+ ```ruby
91
+ recaptcha_tag :ajax
92
+ ```
93
+
94
+ For ajax recaptcha's, you can pass additional options like:
95
+ ```ruby
96
+ recaptcha_tag :ajax, :display => { :theme => 'red'}
97
+ ```
98
+
99
+ For non-ajax recaptcha's, you can pass additional options like:
100
+ ```ruby
101
+ # Overrides the key set in Middleware
102
+ recaptcha_tag :challenge, :public_key => KEY
103
+
104
+ # Adjust Height and/or Width
105
+ recaptcha_tag :noscript, :height => 300, :width => 500
85
106
 
86
- * `recaptcha_valid?` -- returns whether or not the verification passed.
107
+ # Adjust the rows and/or columns
108
+ recaptcha_tag :challenge, :row => 3, :cols => 5
109
+
110
+ # Set the language
111
+ recaptcha_tag :noscript, :language => :en
112
+ ```
113
+
114
+ To test whether or not the verification passed, you can use:
115
+
116
+ ```ruby
117
+ recaptcha_valid?
118
+ ```
87
119
 
88
120
  The `recaptcha_valid?` helper can also be overloaded during tests. You
89
- can set its response to either true or false by doing the follow:
121
+ can set its response to either true or false by doing the following:
90
122
 
91
- Rack::Recaptcha.test_mode!
123
+ ```ruby
124
+ # Have recaptcha_valid? return true
125
+ Rack::Recaptcha.test_mode!
92
126
 
93
- will have the helper return true or
127
+ # Or have it return false
128
+ Rack::Recaptcha.test_mode! :return => false
129
+ ```
94
130
 
95
- Rack::Recaptcha.test_mode! :return => false
96
131
 
97
- to have the helper always return false.
132
+ For additional options and resources checkout the [customization page](https://developers.google.com/recaptcha/docs/customization)
98
133
 
99
134
  #### Example
100
135
 
@@ -149,6 +184,14 @@ Tobias Begalke - [elcamino](https://github.com/elcamino)
149
184
 
150
185
  * Added HTTP Proxy support
151
186
 
187
+ Julik Tarkhanov - [julik](https://github.com/julik)
188
+
189
+ * Adding rack-recaptcha to travis-ci
190
+
191
+ Rob Worley - [robworley](https://github.com/robworley)
192
+
193
+ * Adding language setting for recaptcha form
194
+
152
195
  #### Note on Patches/Pull Requests
153
196
 
154
197
  * Fork the project.
@@ -161,4 +204,4 @@ Tobias Begalke - [elcamino](https://github.com/elcamino)
161
204
 
162
205
  #### Copyright
163
206
 
164
- Copyright (c) 2011 Arthur Chiu. See LICENSE for details.
207
+ Copyright (c) 2010, 2011, 2012 Arthur Chiu. See LICENSE for details.
@@ -29,13 +29,15 @@ module Rack
29
29
  # :width - Adjust the width of the form
30
30
  # :row - Adjust the rows for the challenge field
31
31
  # :cols - Adjust the column for the challenge field
32
+ # :language - Set the language
32
33
  def recaptcha_tag(type= :noscript, options={})
33
34
  options = DEFAULT.merge(options)
34
35
  options[:public_key] ||= Rack::Recaptcha.public_key
35
36
  path = options[:ssl] ? Rack::Recaptcha::API_SECURE_URL : Rack::Recaptcha::API_URL
36
37
  params = "k=#{options[:public_key]}"
38
+ params += "&hl=" + uri_parser.escape(options[:language].to_s) if options[:language]
37
39
  error_message = request.env['recaptcha.msg'] if defined?(request)
38
- params += "&error=" + uri_parser.escape(error_message) unless error_message.nil?
40
+ params += "&error=" + uri_parser.escape(error_message) unless error_message.nil?
39
41
  html = case type.to_sym
40
42
  when :challenge
41
43
  %{<script type="text/javascript" src="#{path}/challenge?#{params}">
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{rack-recaptcha}
3
- s.version = "0.6.4"
3
+ s.version = "0.6.5"
4
4
  s.required_rubygems_version = ">=1.3.6"
5
5
  s.authors = ["Arthur Chiu"]
6
6
  s.date = %q{2010-07-18}
@@ -15,6 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.summary = %q{Rack middleware for Recaptcha}
16
16
  s.test_files = Dir.glob("test/**/*")
17
17
  s.add_runtime_dependency "json", ">= 0"
18
+ s.add_development_dependency "rake", "~> 0.9.2"
18
19
  s.add_development_dependency "riot", "~> 0.12.3"
19
20
  s.add_development_dependency "rack-test", "~> 0.5.7"
20
21
  s.add_development_dependency "fakeweb", "~> 1.3.0"
@@ -46,6 +46,7 @@ context "Rack::Recaptcha::Helpers" do
46
46
  asserts_topic('has display').matches %r{RecaptchaOptions}
47
47
  asserts_topic('has theme').matches %r{"theme":"red"}
48
48
  end
49
+
49
50
  context "without display" do
50
51
  setup do
51
52
  mock(helper_test.request.env).[]('recaptcha.msg').returns(nil)
@@ -62,19 +63,20 @@ context "Rack::Recaptcha::Helpers" do
62
63
  context "noscript" do
63
64
  setup do
64
65
  mock(helper_test.request.env).[]('recaptcha.msg').returns(nil)
65
- helper_test.recaptcha_tag :noscript, :public_key => "hello_world_world"
66
+ helper_test.recaptcha_tag :noscript, :public_key => "hello_world_world", :language => :en
66
67
  end
67
68
 
68
69
  asserts_topic("iframe").matches %r{iframe}
69
70
  asserts_topic("no script tag").matches %r{<noscript>}
70
71
  asserts_topic("public key").matches %r{hello_world_world}
72
+ asserts_topic("has language").matches %r{hl=en}
71
73
  denies_topic("has js").matches %r{recaptcha_ajax.js}
72
74
  end
73
75
 
74
76
  context "challenge" do
75
77
  setup do
76
78
  mock(helper_test.request.env).[]('recaptcha.msg').returns(nil)
77
- helper_test.recaptcha_tag(:challenge)
79
+ helper_test.recaptcha_tag(:challenge, :language => :en)
78
80
  end
79
81
 
80
82
  asserts_topic("has script tag").matches %r{script}
@@ -82,6 +84,7 @@ context "Rack::Recaptcha::Helpers" do
82
84
  denies_topic("has js").matches %r{recaptcha_ajax.js}
83
85
  denies_topic("has display").matches %r{RecaptchaOptions}
84
86
  asserts_topic("has public_key").matches %r{#{'0'*40}}
87
+ asserts_topic("has language").matches %r{hl=en}
85
88
  end
86
89
 
87
90
  context "server" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-recaptcha
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.6.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2010-07-18 00:00:00.000000000Z
12
+ date: 2010-07-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
16
- requirement: &2152329440 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,31 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2152329440
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 0.9.2
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.9.2
25
46
  - !ruby/object:Gem::Dependency
26
47
  name: riot
27
- requirement: &2152328420 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
28
49
  none: false
29
50
  requirements:
30
51
  - - ~>
@@ -32,10 +53,15 @@ dependencies:
32
53
  version: 0.12.3
33
54
  type: :development
34
55
  prerelease: false
35
- version_requirements: *2152328420
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.12.3
36
62
  - !ruby/object:Gem::Dependency
37
63
  name: rack-test
38
- requirement: &2152327460 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
39
65
  none: false
40
66
  requirements:
41
67
  - - ~>
@@ -43,10 +69,15 @@ dependencies:
43
69
  version: 0.5.7
44
70
  type: :development
45
71
  prerelease: false
46
- version_requirements: *2152327460
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 0.5.7
47
78
  - !ruby/object:Gem::Dependency
48
79
  name: fakeweb
49
- requirement: &2152326360 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
50
81
  none: false
51
82
  requirements:
52
83
  - - ~>
@@ -54,10 +85,15 @@ dependencies:
54
85
  version: 1.3.0
55
86
  type: :development
56
87
  prerelease: false
57
- version_requirements: *2152326360
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.3.0
58
94
  - !ruby/object:Gem::Dependency
59
95
  name: rr
60
- requirement: &2152325500 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
61
97
  none: false
62
98
  requirements:
63
99
  - - ~>
@@ -65,7 +101,12 @@ dependencies:
65
101
  version: 1.0.2
66
102
  type: :development
67
103
  prerelease: false
68
- version_requirements: *2152325500
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 1.0.2
69
110
  description: Rack middleware Captcha verification using Recaptcha API.
70
111
  email: mr.arthur.chiu@gmail.com
71
112
  executables: []
@@ -106,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
147
  version: 1.3.6
107
148
  requirements: []
108
149
  rubyforge_project:
109
- rubygems_version: 1.8.10
150
+ rubygems_version: 1.8.21
110
151
  signing_key:
111
152
  specification_version: 3
112
153
  summary: Rack middleware for Recaptcha