simple_captcha2 0.4.0 → 0.4.2
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.
- checksums.yaml +4 -4
- data/README.md +13 -6
- data/Rakefile +2 -2
- data/lib/simple_captcha.rb +4 -0
- data/lib/simple_captcha/controller.rb +1 -1
- data/lib/simple_captcha/engine.rb +0 -1
- data/lib/simple_captcha/middleware.rb +25 -4
- data/lib/simple_captcha/simple_captcha_data.rb +2 -2
- data/lib/simple_captcha/version.rb +1 -1
- data/lib/simple_captcha/view.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8f865e98ebd2b44687dd85cba7e5dec3d5eaeae
|
4
|
+
data.tar.gz: cc24a8eb5fc210777e4633df42ad7c00a705c305
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adac76147dd7b88e82f4761b338e8a7b83235ed2d8fcfc288e00dd50376c05231439d7ce29518d550cf02ccaaba6279d76ff1b860372b9fa5b945ca518f1d24d
|
7
|
+
data.tar.gz: 12b6d66de5ff5e9a2ac83a981c5ce12655748828bce13e9b96327fa2516d50446f4dbf3c41d040c070b3a8dfe3eff3b820135c4e6050e1a7265596e35fc2477b
|
data/README.md
CHANGED
@@ -248,6 +248,14 @@ SimpleCaptcha.setup do |sc|
|
|
248
248
|
end
|
249
249
|
```
|
250
250
|
|
251
|
+
You can setup in which format the reload of the captcha is executed:
|
252
|
+
|
253
|
+
```ruby
|
254
|
+
SimpleCaptcha.setup do |sc|
|
255
|
+
sc.refresh_format = :prototype # or :jquery, or :plain_javascript default is :jquery
|
256
|
+
end
|
257
|
+
```
|
258
|
+
|
251
259
|
|
252
260
|
### How to change the CSS for SimpleCaptcha DOM elements?
|
253
261
|
|
@@ -307,12 +315,11 @@ en:
|
|
307
315
|
For testing, generate a temporary Rails dummy app inside test:
|
308
316
|
|
309
317
|
```bash
|
310
|
-
|
311
|
-
rake
|
312
|
-
rake app:db:migrate
|
313
|
-
|
314
|
-
|
315
|
-
rake test
|
318
|
+
bundle
|
319
|
+
bundle exec rake dummy:setup
|
320
|
+
bundle exec rake app:db:migrate
|
321
|
+
bundle exec rake app:db:migrate RAILS_ENV=test
|
322
|
+
bundle exec rake test
|
316
323
|
```
|
317
324
|
|
318
325
|
Please add test cases when adding new functionality. I started with some basic example integration tests for a very basic coverage.
|
data/Rakefile
CHANGED
@@ -15,7 +15,7 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
15
15
|
end
|
16
16
|
|
17
17
|
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
|
18
|
-
if File.
|
18
|
+
if File.exist? APP_RAKEFILE
|
19
19
|
load 'rails/tasks/engine.rake'
|
20
20
|
end
|
21
21
|
|
@@ -30,7 +30,7 @@ namespace :dummy do
|
|
30
30
|
|
31
31
|
desc 'destroy dummy Rails app under test/dummy'
|
32
32
|
task :destroy do
|
33
|
-
FileUtils.rm_rf "test/dummy" if File.
|
33
|
+
FileUtils.rm_rf "test/dummy" if File.exist?("test/dummy")
|
34
34
|
end
|
35
35
|
|
36
36
|
desc 'redo'
|
data/lib/simple_captcha.rb
CHANGED
@@ -51,6 +51,10 @@ module SimpleCaptcha
|
|
51
51
|
mattr_accessor :implode
|
52
52
|
@@implode = SimpleCaptcha::ImageHelpers::DEFAULT_IMPLODE
|
53
53
|
|
54
|
+
# 'jquery', 'prototype'
|
55
|
+
mattr_accessor :refresh_format
|
56
|
+
@@refresh_format = :jquery
|
57
|
+
|
54
58
|
# command path
|
55
59
|
mattr_accessor :image_magick_path
|
56
60
|
@@image_magick_path = ''
|
@@ -15,7 +15,7 @@ module SimpleCaptcha #:nodoc
|
|
15
15
|
# end
|
16
16
|
def simple_captcha_valid?
|
17
17
|
return true if SimpleCaptcha.always_pass
|
18
|
-
return @_simple_captcha_result unless @_simple_captcha_result.nil?
|
18
|
+
return @_simple_captcha_result unless !defined?(@_simple_captcha_result) || @_simple_captcha_result.nil?
|
19
19
|
|
20
20
|
if params[:captcha]
|
21
21
|
captcha_key = params[:captcha_key] || session[:captcha]
|
@@ -9,6 +9,27 @@ module SimpleCaptcha
|
|
9
9
|
:disposition => 'attachment'.freeze,
|
10
10
|
}.freeze
|
11
11
|
|
12
|
+
REFRESH_FORMATS = {
|
13
|
+
:jquery => %Q{
|
14
|
+
$("#%{id}").attr('src', '%{url}');
|
15
|
+
$("#%{captcha_hidden_field_id}").attr('value', '%{key}');
|
16
|
+
}.freeze,
|
17
|
+
:plain_javascript => %Q{
|
18
|
+
var img = document.getElementById("%{id}");
|
19
|
+
if (img != null) {
|
20
|
+
img.src = "%{url}";
|
21
|
+
}
|
22
|
+
var hidden = document.getElementById("%{captcha_hidden_field_id}");
|
23
|
+
if (hidden != null) {
|
24
|
+
hidden.value = "%{key}";
|
25
|
+
}
|
26
|
+
}.freeze,
|
27
|
+
:prototype => %Q{
|
28
|
+
$("%{id}").setAttribute('src', '%{url}');
|
29
|
+
$("%{captcha_hidden_field_id}").setAttribute('value', '%{key}');
|
30
|
+
}.freeze,
|
31
|
+
}.freeze
|
32
|
+
|
12
33
|
def initialize(app, options={})
|
13
34
|
@app = app
|
14
35
|
self
|
@@ -80,11 +101,11 @@ module SimpleCaptcha
|
|
80
101
|
status = 200
|
81
102
|
id = request.params['id']
|
82
103
|
captcha_hidden_field_id = simple_captch_hidden_field_id(id)
|
104
|
+
format = SimpleCaptcha.refresh_format.to_sym
|
105
|
+
raise ::ArgumentError, "Format adapter '#{format}' is not available" unless format.in?(REFRESH_FORMATS)
|
106
|
+
|
107
|
+
body = REFRESH_FORMATS[format] % {id: id, url: url, captcha_hidden_field_id: captcha_hidden_field_id, key: key}
|
83
108
|
|
84
|
-
body = %Q{
|
85
|
-
$("##{id}").attr('src', '#{url}');
|
86
|
-
$("##{ captcha_hidden_field_id }").attr('value', '#{key}');
|
87
|
-
}
|
88
109
|
headers = {'Content-Type' => 'text/javascript; charset=utf-8', "Content-Disposition" => "inline; filename='captcha.js'", "Content-Length" => body.length.to_s}.merge(SimpleCaptcha.extra_response_headers)
|
89
110
|
[status, headers, [body]]
|
90
111
|
end
|
@@ -19,13 +19,13 @@ module SimpleCaptcha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def remove_data(key)
|
22
|
-
|
22
|
+
where(["#{connection.quote_column_name(:key)} = ?", key]).delete_all
|
23
23
|
clear_old_data(1.hour.ago)
|
24
24
|
end
|
25
25
|
|
26
26
|
def clear_old_data(time = 1.hour.ago)
|
27
27
|
return unless Time === time
|
28
|
-
|
28
|
+
where(["#{connection.quote_column_name(:updated_at)} < ?", time]).delete_all
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
data/lib/simple_captcha/view.rb
CHANGED
@@ -56,7 +56,7 @@ module SimpleCaptcha #:nodoc
|
|
56
56
|
options[:field_value] = set_simple_captcha_data(key, options)
|
57
57
|
end
|
58
58
|
|
59
|
-
|
59
|
+
{
|
60
60
|
:image => simple_captcha_image(key, options),
|
61
61
|
:label => I18n.t('simple_captcha.label'),
|
62
62
|
:field => simple_captcha_field(options),
|
metadata
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_captcha2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavlo Galeta
|
8
8
|
- Igor Galeta
|
9
9
|
- Stefan Wienert
|
10
|
+
- Konrad Mallok
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date:
|
14
|
+
date: 2017-02-03 00:00:00.000000000 Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: rails
|
@@ -130,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
131
|
version: '0'
|
131
132
|
requirements: []
|
132
133
|
rubyforge_project:
|
133
|
-
rubygems_version: 2.
|
134
|
+
rubygems_version: 2.5.1
|
134
135
|
signing_key:
|
135
136
|
specification_version: 4
|
136
137
|
summary: SimpleCaptcha is the simplest and a robust captcha plugin.
|