rack-recaptcha 0.6.4 → 0.6.5

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/.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