simple_captcha2 0.3.2 → 0.3.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.
- checksums.yaml +4 -4
- data/README.md +25 -1
- data/lib/simple_captcha.rb +8 -0
- data/lib/simple_captcha/image.rb +12 -14
- data/lib/simple_captcha/middleware.rb +8 -1
- data/lib/simple_captcha/version.rb +1 -1
- data/lib/simple_captcha/view.rb +10 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 82daa59541bc47e50ecfb13d95b1672d953b0b79
|
4
|
+
data.tar.gz: 217de8368d88deb6720440ee8a69124ddbbcef83
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0885a9d47688ebeb81930e1cb7716ad3c7aa3c453f67c067961985f05b232ee8b53c930709899c340ec3c172d921388cdd93410aafbdfaaa155db5f1fac57cba
|
7
|
+
data.tar.gz: f293939ccb2a80ce257ea200ed711fcfbbfd13bd5ed2cf526136d23b25187ac63a86a7b439b228140cbe13e2fac15845539c3dcec846901dde1b7887b7194d89
|
data/README.md
CHANGED
@@ -45,7 +45,7 @@ After installation, follow these simple steps to setup the plugin. The setup wil
|
|
45
45
|
|
46
46
|
```bash
|
47
47
|
rails generate simple_captcha
|
48
|
-
rake db:migrate
|
48
|
+
rake db:migrate # Mongoid: skip this step and remove the migration
|
49
49
|
```
|
50
50
|
|
51
51
|
## Usage
|
@@ -96,6 +96,23 @@ class User < ActiveRecord::Base
|
|
96
96
|
end
|
97
97
|
```
|
98
98
|
|
99
|
+
Mongoid:
|
100
|
+
|
101
|
+
```ruby
|
102
|
+
class User
|
103
|
+
include SimpleCaptcha::ModelHelpers
|
104
|
+
apply_simple_captcha
|
105
|
+
end
|
106
|
+
```
|
107
|
+
|
108
|
+
#### Strong parameters (Rails 4.x)
|
109
|
+
|
110
|
+
Must add them:
|
111
|
+
|
112
|
+
```ruby
|
113
|
+
:captcha, :captcha_key
|
114
|
+
```
|
115
|
+
|
99
116
|
####Form-Builder helper
|
100
117
|
|
101
118
|
```erb
|
@@ -174,6 +191,8 @@ You can also specify 'random' to select the random image style.
|
|
174
191
|
|
175
192
|
* ``:distortion`` - handles the complexity of the image. The :distortion can be set to 'low', 'medium' or 'high'. Default is 'low'.
|
176
193
|
|
194
|
+
* ``:implode`` - handles the complexity of the image. The :implode can be set to 'none', 'low', 'medium' or 'high'. Default is 'medium'.
|
195
|
+
|
177
196
|
Create "./config/initializers/simple_captcha.rb"
|
178
197
|
|
179
198
|
```ruby
|
@@ -200,6 +219,10 @@ SimpleCaptcha.setup do |sc|
|
|
200
219
|
# default: low
|
201
220
|
# possible values: 'low', 'medium', 'high', 'random'
|
202
221
|
sc.distortion = 'medium'
|
222
|
+
|
223
|
+
# default: medium
|
224
|
+
# possible values: 'none', 'low', 'medium', 'high'
|
225
|
+
sc.implode = 'low'
|
203
226
|
end
|
204
227
|
```
|
205
228
|
|
@@ -281,6 +304,7 @@ en:
|
|
281
304
|
simple_captcha:
|
282
305
|
placeholder: "Enter the image value"
|
283
306
|
label: "Enter the code in the box:"
|
307
|
+
refresh_button_text: "Refresh"
|
284
308
|
message:
|
285
309
|
default: "Secret Code did not match with the Image"
|
286
310
|
user: "The secret Image and code were different"
|
data/lib/simple_captcha.rb
CHANGED
@@ -47,6 +47,10 @@ module SimpleCaptcha
|
|
47
47
|
mattr_accessor :distortion
|
48
48
|
@@distortion = 'low'
|
49
49
|
|
50
|
+
# 'none', 'low', 'medium', 'high'
|
51
|
+
mattr_accessor :implode
|
52
|
+
@@implode = SimpleCaptcha::ImageHelpers::DEFAULT_IMPLODE
|
53
|
+
|
50
54
|
# command path
|
51
55
|
mattr_accessor :image_magick_path
|
52
56
|
@@image_magick_path = ''
|
@@ -55,6 +59,10 @@ module SimpleCaptcha
|
|
55
59
|
mattr_accessor :tmp_path
|
56
60
|
@@tmp_path = nil
|
57
61
|
|
62
|
+
# additive noise
|
63
|
+
mattr_accessor :noise
|
64
|
+
@@noise = 0
|
65
|
+
|
58
66
|
def self.add_image_style(name, params = [])
|
59
67
|
SimpleCaptcha::ImageHelpers.image_styles.update(name.to_s => params)
|
60
68
|
end
|
data/lib/simple_captcha/image.rb
CHANGED
@@ -16,6 +16,9 @@ module SimpleCaptcha #:nodoc
|
|
16
16
|
|
17
17
|
DISTORTIONS = ['low', 'medium', 'high']
|
18
18
|
|
19
|
+
IMPLODES = { 'none' => 0, 'low' => 0.1, 'medium' => 0.2, 'high' => 0.3 }
|
20
|
+
DEFAULT_IMPLODE = 'medium'
|
21
|
+
|
19
22
|
class << self
|
20
23
|
|
21
24
|
def image_params(key = 'simply_blue')
|
@@ -43,6 +46,10 @@ module SimpleCaptcha #:nodoc
|
|
43
46
|
when 'high' then return [4 + rand(2), 30 + rand(20)]
|
44
47
|
end
|
45
48
|
end
|
49
|
+
|
50
|
+
def implode
|
51
|
+
IMPLODES[SimpleCaptcha.implode] || IMPLODES[DEFAULT_IMPLODE]
|
52
|
+
end
|
46
53
|
end
|
47
54
|
|
48
55
|
if RUBY_VERSION < '1.9'
|
@@ -64,23 +71,14 @@ module SimpleCaptcha #:nodoc
|
|
64
71
|
params = ImageHelpers.image_params(SimpleCaptcha.image_style).dup
|
65
72
|
params << "-size #{SimpleCaptcha.image_size}"
|
66
73
|
params << "-wave #{amplitude}x#{frequency}"
|
67
|
-
|
68
|
-
params << "-gravity \"Center\""
|
74
|
+
params << "-gravity Center"
|
69
75
|
params << "-pointsize 22"
|
70
|
-
params << "-implode
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
#params << "label:#{text} '#{File.expand_path(dst.path)}'"
|
76
|
-
params << "label:#{text} \"#{File.expand_path(dst.path)}\""
|
76
|
+
params << "-implode #{ImageHelpers.implode}"
|
77
|
+
params << "label:#{text}"
|
78
|
+
params << "-evaluate Uniform-noise #{SimpleCaptcha.noise}"
|
79
|
+
params << "jpeg:-"
|
77
80
|
|
78
81
|
SimpleCaptcha::Utils::run("convert", params.join(' '))
|
79
|
-
|
80
|
-
dst.close
|
81
|
-
|
82
|
-
File.expand_path(dst.path)
|
83
|
-
#dst
|
84
82
|
end
|
85
83
|
end
|
86
84
|
end
|
@@ -39,7 +39,7 @@ module SimpleCaptcha
|
|
39
39
|
#body = generate_simple_captcha_image(code)
|
40
40
|
#headers['Content-Type'] = 'image/jpeg'
|
41
41
|
|
42
|
-
|
42
|
+
send_data(generate_simple_captcha_image(code), :type => 'image/jpeg', :disposition => 'inline', :filename => 'simple_captcha.jpg')
|
43
43
|
else
|
44
44
|
[status, headers, body]
|
45
45
|
end
|
@@ -61,6 +61,13 @@ module SimpleCaptcha
|
|
61
61
|
[status, headers, response_body]
|
62
62
|
end
|
63
63
|
|
64
|
+
def send_data(response_body, options = {})
|
65
|
+
status = options[:status] || 200
|
66
|
+
headers = {"Content-Disposition" => "#{options[:disposition]}; filename='#{options[:filename]}'", "Content-Type" => options[:type], 'Content-Transfer-Encoding' => 'binary', 'Cache-Control' => 'private'}
|
67
|
+
|
68
|
+
[status, headers, [response_body]]
|
69
|
+
end
|
70
|
+
|
64
71
|
def refresh_code(env)
|
65
72
|
request = Rack::Request.new(env)
|
66
73
|
|
data/lib/simple_captcha/view.rb
CHANGED
@@ -65,12 +65,7 @@ module SimpleCaptcha #:nodoc
|
|
65
65
|
private
|
66
66
|
|
67
67
|
def simple_captcha_image(simple_captcha_key, options = {})
|
68
|
-
|
69
|
-
defaults[:time] = options[:time] || Time.now.to_i
|
70
|
-
|
71
|
-
query = defaults.collect{ |key, value| "#{key}=#{value}" }.join('&')
|
72
|
-
url = "#{ENV['RAILS_RELATIVE_URL_ROOT']}/simple_captcha?code=#{simple_captcha_key}&#{query}"
|
73
|
-
|
68
|
+
url = simple_captcha_image_url simple_captcha_key, options: options
|
74
69
|
id = simple_captcha_image_id(options)
|
75
70
|
tag('img', :src => url, :alt => 'captcha', :id => id)
|
76
71
|
end
|
@@ -79,8 +74,13 @@ module SimpleCaptcha #:nodoc
|
|
79
74
|
defaults = {}
|
80
75
|
defaults[:time] = options[:time] || Time.now.to_i
|
81
76
|
|
82
|
-
query = defaults.
|
83
|
-
"
|
77
|
+
query = defaults.to_query
|
78
|
+
path = "/simple_captcha?code=#{simple_captcha_key}&#{query}"
|
79
|
+
if defined?(request) && request
|
80
|
+
"#{request.protocol}#{request.host_with_port}#{ENV['RAILS_RELATIVE_URL_ROOT']}#{path}"
|
81
|
+
else
|
82
|
+
"#{ENV['RAILS_RELATIVE_URL_ROOT']}#{path}"
|
83
|
+
end
|
84
84
|
end
|
85
85
|
|
86
86
|
def simple_captcha_field(options={})
|
@@ -133,8 +133,8 @@ module SimpleCaptcha #:nodoc
|
|
133
133
|
return value
|
134
134
|
end
|
135
135
|
|
136
|
-
def simple_captcha_key(key_name = nil,
|
137
|
-
local_session =
|
136
|
+
def simple_captcha_key(key_name = nil, prequest = request)
|
137
|
+
local_session = prequest.try(:session) || session
|
138
138
|
if key_name.nil?
|
139
139
|
local_session[:captcha] ||= SimpleCaptcha::Utils.generate_key(local_session[:id].to_s, 'captcha')
|
140
140
|
else
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_captcha2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavlo Galeta
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2015-01-28 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|