simple_captcha2 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6621a6904b50c409e89e74475975dd3c6c74f149
4
- data.tar.gz: 265c44d59754f47e0b822072364b1eba94d63a92
3
+ metadata.gz: 2435cbdac94d6efcb47ab21a0e11d5c0b5f32285
4
+ data.tar.gz: ace36262aa2c292c5e983409ecb31bf7f38c3352
5
5
  SHA512:
6
- metadata.gz: a121023c470455b51fecb402780637ba1f3b6a2bfa52b39b27fd6b7a986c788ec02e49c29eb32588598fec10f7cefcc9db10cdf4ea795ac0e1bd9ebd56786dc6
7
- data.tar.gz: 5c8af3bfd86e3e2e5fe1bb9e1cc6681b3e0e6a2ded5d92834203425c1fae26ad90e6a12c9f82e5c21be49301559a38863944e16202df98cb9b05e8b4a5083ce4
6
+ metadata.gz: 376322ff32371ce0d9de2f453fd6733be995ef5fa0dec0636f8da75c10454196f3bda52860b7ec51b2f087a43e1e2253f7b23379177e4c5d94f9542db93f55fb
7
+ data.tar.gz: d02794f529977b6a37ba8704df8e03f36ed764574469dfff90804f0da1a7d5577b68f42d23a69d7f61745a40cc1b24bdae66d5003573ba04946867f4f5ed674a
@@ -0,0 +1,315 @@
1
+ #SimpleCaptcha2
2
+
3
+ [![Build Status](https://travis-ci.org/pludoni/simple-captcha.png?branch=master)](https://travis-ci.org/pludoni/simple-captcha)
4
+
5
+ SimpleCaptcha(2) is the simplest and a robust captcha plugin. Its implementation requires adding up a single line in views and in controllers/models.
6
+ SimpleCaptcha2 is available to be used with Rails 3 + 4.
7
+ This is a fork of the popular Rubygem ``simple_captcha`` which got abandoned.
8
+
9
+ ##Features
10
+
11
+ * Zero FileSystem usage (secret code moved to db-store and image storage removed).
12
+ * Provides various image styles.
13
+ * Provides three level of complexity of images.
14
+ * Works absolutely fine in distributed environment(session and db based implementation works fine in distributed environment).
15
+ * Implementation is as easy as just writing a single line in your view. ```<%= show_simple_captcha %>``` within the 'form' tags.
16
+ * Flexible DOM and CSS handling(There is a separate view partial for rendering SimpleCaptcha DOM elements).
17
+ * Automated removal of 1 hour old unmatched simple_captcha data.
18
+
19
+ ##Requirements
20
+
21
+ * Ruby >= 1.9.3
22
+ * Rails >= 3.2
23
+ * ImageMagick should be installed on your machine to use this plugin.
24
+ visit http://www.imagemagick.org/script/index.php for more details.
25
+
26
+ You might need to install Ghostscript on a Mac-System:
27
+
28
+ ```
29
+ brew install ghostscript
30
+ ```
31
+
32
+ ##Installation
33
+
34
+ Put this into your Gemfile
35
+
36
+ ```ruby
37
+ gem 'simple_captcha2', require: 'simple_captcha'
38
+ ```
39
+
40
+ and run ``bundle install``.
41
+
42
+ ## Setup
43
+
44
+ After installation, follow these simple steps to setup the plugin. The setup will depend on the version of rails your application is using.
45
+
46
+ ```bash
47
+ rails generate simple_captcha
48
+ rake db:migrate
49
+ ```
50
+
51
+ ## Usage
52
+
53
+ There are two usage scenarios:
54
+
55
+ ### Controller Based
56
+
57
+ Add the following line in the file "app/controllers/application.rb"
58
+
59
+ ```ruby
60
+ ApplicationController < ActionController::Base
61
+ include SimpleCaptcha::ControllerHelpers
62
+ end
63
+ ```
64
+
65
+ In the view file within the form tags add this code
66
+
67
+ ```erb
68
+ <%= show_simple_captcha %>
69
+ ```
70
+
71
+ and in the controller's action authenticate it as
72
+
73
+ ```ruby
74
+ if simple_captcha_valid?
75
+ do this
76
+ else
77
+ do that
78
+ end
79
+ ```
80
+
81
+ ### Model Based
82
+
83
+ This is suggested, if you want to integrate the error message into the normal form validation flow.
84
+
85
+ In the view file within the form tags write this code
86
+
87
+ ```erb
88
+ <%= show_simple_captcha(:object=>"user") %>
89
+ ```
90
+
91
+ and in the model class add this code
92
+
93
+ ```ruby
94
+ class User < ActiveRecord::Base
95
+ apply_simple_captcha
96
+ end
97
+ ```
98
+
99
+ ####Form-Builder helper
100
+
101
+ ```erb
102
+ <%= form_for @user do |form| -%>
103
+ ...
104
+ <%= form.simple_captcha :label => "Enter numbers.." %>
105
+ ...
106
+ <% end -%>
107
+ ```
108
+
109
+ ####Validating with captcha
110
+
111
+ NOTE: @user.valid? will still work as it should, it will not validate the captcha code.
112
+
113
+ ```ruby
114
+ @user.valid_with_captcha?
115
+ ```
116
+
117
+ ####Saving with captcha
118
+
119
+ NOTE: @user.save will still work as it should, it will not validate the captcha code.
120
+
121
+ ```ruby
122
+ @user.save_with_captcha
123
+ ```
124
+
125
+ ###Formtastic integration
126
+
127
+ SimpleCaptcha detects if you are using Formtastic:
128
+
129
+ ```erb
130
+ <%= form.input :captcha, :as => :simple_captcha %>
131
+ ```
132
+
133
+ ### Tests
134
+
135
+ You can make the Captcha always pass with a initializer file: config/initializers/simple_captcha.rb
136
+
137
+ ```ruby
138
+ SimpleCaptcha.always_pass = Rails.env.test?
139
+ ```
140
+
141
+ You can also ask for the value, e.g. Acceptance Tests/Features:
142
+
143
+ ```ruby
144
+ visit '/pages/form_tag'
145
+ assert_equal 1, SimpleCaptcha::SimpleCaptchaData.count
146
+ fill_in 'captcha', with: SimpleCaptcha::SimpleCaptchaData.first.value
147
+ ```
148
+
149
+ ##Options & Examples
150
+
151
+ ###View Options
152
+
153
+ * ``:label`` - provides the custom text b/w the image and the text field, the default is "type the code from the image"
154
+ * ``:object`` - the name of the object of the model class, to implement the model based captcha.
155
+ * ``:code_type`` - return numeric only if set to 'numeric'
156
+
157
+ ###Global options
158
+
159
+ * ``:image_style`` - provides the specific image style for the captcha image.
160
+ There are eight different styles available with the plugin as...
161
+
162
+ 1. simply_blue
163
+ 2. simply_red
164
+ 3. simply_green
165
+ 4. charcoal_grey
166
+ 5. embosed_silver
167
+ 6. all_black
168
+ 7. distorted_black
169
+ 8. almost_invisible
170
+
171
+ Default style is 'simply_blue'.
172
+ You can also specify 'random' to select the random image style.
173
+
174
+ * ``:distortion`` - handles the complexity of the image. The :distortion can be set to 'low', 'medium' or 'high'. Default is 'low'.
175
+
176
+ Create "./config/initializers/simple_captcha.rb"
177
+
178
+ ```ruby
179
+ SimpleCaptcha.setup do |sc|
180
+ # default: 100x28
181
+ sc.image_size = '120x40'
182
+
183
+ # default: 5
184
+ sc.length = 6
185
+
186
+ # default: simply_blue
187
+ # possible values:
188
+ # 'embosed_silver',
189
+ # 'simply_red',
190
+ # 'simply_green',
191
+ # 'simply_blue',
192
+ # 'distorted_black',
193
+ # 'all_black',
194
+ # 'charcoal_grey',
195
+ # 'almost_invisible'
196
+ # 'random'
197
+ sc.image_style = 'simply_green'
198
+
199
+ # default: low
200
+ # possible values: 'low', 'medium', 'high', 'random'
201
+ sc.distortion = 'medium'
202
+ end
203
+ ```
204
+
205
+ You can add your own style:
206
+
207
+ ```ruby
208
+ SimpleCaptcha.setup do |sc|
209
+ sc.image_style = 'mycaptha'
210
+ sc.add_image_style('mycaptha', [
211
+ "-background '#F4F7F8'",
212
+ "-fill '#86818B'",
213
+ "-border 1",
214
+ "-bordercolor '#E0E2E3'"])
215
+ end
216
+ ```
217
+
218
+ You can provide the path where image_magick is installed as well:
219
+
220
+ ```ruby
221
+ SimpleCaptcha.setup do |sc|
222
+ sc.image_magick_path = '/usr/bin' # you can check this from console by running: which convert
223
+ end
224
+ ```
225
+
226
+ You can provide the path where should be stored tmp files.
227
+ It's usefull when you dont have acces to /tmp (default directory)
228
+
229
+ ```ruby
230
+ SimpleCaptcha.setup do |sc|
231
+ sc.tmp_path = '/tmp' # or somewhere in project eg. Rails.root.join('tmp/simple_captcha').to_s, make shure directory exists
232
+ end
233
+ ```
234
+
235
+
236
+ ### How to change the CSS for SimpleCaptcha DOM elements?
237
+
238
+ You can change the CSS of the SimpleCaptcha DOM elements as per your need in this file.
239
+
240
+ ``app/views/simple_captcha/_simple_captcha.erb``
241
+
242
+ ###View's Examples
243
+ ####Controller Based Example
244
+
245
+ ```erb
246
+ <%= show_simple_captcha %>
247
+
248
+ <%= show_simple_captcha(:label => "human authentication") %>
249
+ ```
250
+
251
+ ####Model Based Example
252
+
253
+ ```erb
254
+ <%= show_simple_captcha(:object => 'user', :label => "human authentication") %>
255
+ ```
256
+
257
+ ####Model Options
258
+
259
+ * ``:message`` - provides the custom message on failure of captcha authentication the default is "Secret Code did not match with the Image"
260
+
261
+ * ``:add_to_base`` - if set to true, appends the error message to the base.
262
+
263
+ #####Model's Example
264
+
265
+ ```ruby
266
+ class User < ActiveRecord::Base
267
+ apply_simple_captcha
268
+ end
269
+
270
+ class User < ActiveRecord::Base
271
+ apply_simple_captcha :message => "The secret Image and code were different", :add_to_base => true
272
+ end
273
+ ```
274
+
275
+
276
+ ##I18n
277
+
278
+ ```yaml
279
+ en:
280
+ simple_captcha:
281
+ placeholder: "Enter the image value"
282
+ label: "Enter the code in the box:"
283
+ message:
284
+ default: "Secret Code did not match with the Image"
285
+ user: "The secret Image and code were different"
286
+ ```
287
+
288
+ ##Contributing
289
+
290
+ For testing, generate a temporary Rails dummy app inside test:
291
+
292
+ ```bash
293
+ rake dummy:setup
294
+ rake app:db:migrate
295
+ rake app:db:migrate RAILS_ENV=test
296
+ export BUNDLE_GEMFILE=$PWD/Gemfile
297
+ cd test/dummy && rake db:migrate db:test:prepare
298
+ rake test
299
+ ```
300
+
301
+ Please add test cases when adding new functionality. I started with some basic example integration tests for a very basic coverage.
302
+
303
+ The tests will be run on [Travis-CI](https://travis-ci.org/pludoni/simple-captcha).
304
+
305
+ ##Who's who?
306
+
307
+ Enjoy the simplest captcha implementation.
308
+
309
+ Original Author of the Version for Rails 2:
310
+ Author: Sur, Blog: http://expressica.com, Contact: sur.max@gmail.com
311
+ Plugin Homepage: http://expressica.com/simple_captcha
312
+
313
+ Plugin update for rails 3: http://github.com/galetahub
314
+
315
+ update for Rails 4, tests and forked by Stefan Wienert (pludoni GmbH)
@@ -1,3 +1,3 @@
1
1
  module SimpleCaptcha
2
- VERSION = "0.2.0".freeze
2
+ VERSION = "0.2.1".freeze
3
3
  end
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.2.0
4
+ version: 0.2.1
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: 2013-12-01 00:00:00.000000000 Z
13
+ date: 2013-12-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -74,7 +74,7 @@ email: stwienert@gmail.com
74
74
  executables: []
75
75
  extensions: []
76
76
  extra_rdoc_files:
77
- - README.rdoc
77
+ - README.md
78
78
  files:
79
79
  - lib/generators/templates/migration.rb
80
80
  - lib/generators/templates/partial.erb
@@ -94,7 +94,7 @@ files:
94
94
  - lib/simple_captcha/formtastic.rb
95
95
  - lib/simple_captcha/version.rb
96
96
  - Rakefile
97
- - README.rdoc
97
+ - README.md
98
98
  homepage: http://github.com/pludoni/simple-captcha
99
99
  licenses: []
100
100
  metadata: {}
@@ -114,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  version: '0'
115
115
  requirements: []
116
116
  rubyforge_project:
117
- rubygems_version: 2.0.3
117
+ rubygems_version: 2.1.11
118
118
  signing_key:
119
119
  specification_version: 4
120
120
  summary: SimpleCaptcha is the simplest and a robust captcha plugin.
@@ -1,244 +0,0 @@
1
- =SimpleCaptcha2
2
-
3
- SimpleCaptcha(2) is the simplest and a robust captcha plugin. Its implementation requires
4
- adding up a single line in views and in controllers/models.
5
- SimpleCaptcha2 is available to be used with Rails 3 + 4.
6
- This is a fork of the popular Rubygem simple_captcha which got abandoned.
7
-
8
- ==Features
9
-
10
- * Zero FileSystem usage (secret code moved to db-store and image storage removed).
11
- * Provides various image styles.
12
- * Provides three level of complexity of images.
13
- * Works absolutely fine in distributed environment(session and db based implementation works fine in distributed environment).
14
- * Implementation is as easy as just writing a single line in your view. "<%= show_simple_captcha %>" within the 'form' tags.
15
- * Flexible DOM and CSS handling(There is a separate view partial for rendering SimpleCaptcha DOM elements).
16
- * Automated removal of 1 hour old unmatched simple_captcha data.
17
-
18
- ==Requirements
19
-
20
- * {Ruby}[http://ruby-lang.org/] >= 1.8.7
21
- * {Rails}[http://github.com/rails/rails] >= 3
22
- * ImageMagick should be installed on your machine to use this plugin.
23
- visit http://www.imagemagick.org/script/index.php for more details.
24
-
25
- ==Installation
26
-
27
- gem 'simple_captcha2'
28
-
29
- # OR
30
-
31
- gem 'simple_captcha', :git => 'git://github.com/pludoni/simple-captcha.git'
32
-
33
- ==Setup
34
-
35
- After installation, follow these simple steps to setup the plugin. The setup will depend
36
- on the version of rails your application is using.
37
-
38
- rails generate simple_captcha
39
-
40
- rake db:migrate
41
-
42
- ==Usage
43
-
44
- ===Controller Based
45
-
46
- Add the following line in the file "app/controllers/application.rb"
47
-
48
- ApplicationController < ActionController::Base
49
- include SimpleCaptcha::ControllerHelpers
50
- end
51
-
52
- In the view file within the form tags add this code
53
-
54
- <%= show_simple_captcha %>
55
-
56
- and in the controller's action authenticate it as
57
-
58
- if simple_captcha_valid?
59
- do this
60
- else
61
- do that
62
- end
63
-
64
- ===Model Based
65
-
66
- In the view file within the form tags write this code
67
-
68
- <%= show_simple_captcha(:object=>"user") %>
69
-
70
- and in the model class add this code
71
-
72
- class User < ActiveRecord::Base
73
- apply_simple_captcha
74
- end
75
-
76
- ====FormBuilder helper
77
-
78
- <%= form_for @user do |form| -%>
79
- ...
80
- <%= form.simple_captcha :label => "Enter numbers.." %>
81
- ...
82
- <% end -%>
83
-
84
- ====Validating with captcha
85
- NOTE: @user.valid? will still work as it should, it will not validate the captcha code.
86
-
87
- @user.valid_with_captcha?
88
-
89
- ====Saving with captcha
90
- NOTE: @user.save will still work as it should, it will not validate the captcha code.
91
-
92
- @user.save_with_captcha
93
-
94
- ===Formtastic integration
95
- SimpleCaptcha detects if your use Formtastic and appends "SimpleCaptcha::CustomFormBuilder".
96
-
97
- <%= form.input :captcha, :as => :simple_captcha %>
98
-
99
- ==Options & Examples
100
- ===View Options
101
-
102
- * *label* - provides the custom text b/w the image and the text field, the default is "type the code from the image"
103
-
104
- * *object* - the name of the object of the model class, to implement the model based captcha.
105
-
106
- * *code_type* - return numeric only if set to 'numeric'
107
-
108
- ===Global options
109
-
110
- * *image_style* - provides the specific image style for the captcha image.
111
- There are eight different styles available with the plugin as...
112
- 1) simply_blue
113
- 2) simply_red
114
- 3) simply_green
115
- 4) charcoal_grey
116
- 5) embosed_silver
117
- 6) all_black
118
- 7) distorted_black
119
- 8) almost_invisible
120
- Default style is 'simply_blue'.
121
- You can also specify 'random' to select the random image style.
122
-
123
- * *distortion* - handles the complexity of the image. The :distortion can be set to 'low', 'medium' or 'high'. Default is 'low'.
124
-
125
- Create "rails_root/config/initializers/simple_captcha.rb"
126
-
127
- SimpleCaptcha.setup do |sc|
128
- # default: 100x28
129
- sc.image_size = '120x40'
130
-
131
- # default: 5
132
- sc.length = 6
133
-
134
- # default: simply_blue
135
- # possible values:
136
- # 'embosed_silver',
137
- # 'simply_red',
138
- # 'simply_green',
139
- # 'simply_blue',
140
- # 'distorted_black',
141
- # 'all_black',
142
- # 'charcoal_grey',
143
- # 'almost_invisible'
144
- # 'random'
145
- sc.image_style = 'simply_green'
146
-
147
- # default: low
148
- # possible values: 'low', 'medium', 'high', 'random'
149
- sc.distortion = 'medium'
150
- end
151
-
152
- You can add your own style:
153
-
154
- SimpleCaptcha.setup do |sc|
155
- sc.image_style = 'mycaptha'
156
- sc.add_image_style('mycaptha', [
157
- "-background '#F4F7F8'",
158
- "-fill '#86818B'",
159
- "-border 1",
160
- "-bordercolor '#E0E2E3'"])
161
- end
162
-
163
- You can provide the path where image_magick is installed as well:
164
-
165
- SimpleCaptcha.setup do |sc|
166
- sc.image_magick_path = '/usr/bin' # you can check this from console by running: which convert
167
- end
168
-
169
- You can provide the path where should be stored tmp files.
170
- It's usefull when you dont have acces to /tmp (default directory)
171
-
172
- SimpleCaptcha.setup do |sc|
173
- sc.tmp_path = '/tmp' # or somewhere in project eg. Rails.root.join('tmp/simple_captcha').to_s, make shure directory exists
174
- end
175
-
176
-
177
- ===How to change the CSS for SimpleCaptcha DOM elements?
178
- You can change the CSS of the SimpleCaptcha DOM elements as per your need in this file.
179
- /app/views/simple_captcha/_simple_captcha.erb
180
-
181
- ===View's Examples
182
- ====Controller Based Example
183
-
184
- <%= show_simple_captcha %>
185
-
186
- <%= show_simple_captcha(:label => "human authentication") %>
187
-
188
- ====Model Based Example
189
-
190
- <%= show_simple_captcha(:object => 'user', :label => "human authentication") %>
191
-
192
- ====Model Options
193
-
194
- * *message* - provides the custom message on failure of captcha authentication the default is "Secret Code did not match with the Image"
195
-
196
- * *add_to_base* - if set to true, appends the error message to the base.
197
-
198
- =====Model's Example
199
-
200
- class User < ActiveRecord::Base
201
- apply_simple_captcha
202
- end
203
-
204
- class User < ActiveRecord::Base
205
- apply_simple_captcha :message => "The secret Image and code were different", :add_to_base => true
206
- end
207
-
208
- ==I18n
209
-
210
- simple_captcha:
211
- placeholder: "Enter the image value"
212
- label: "Enter the code in the box:"
213
- message:
214
- default: "Secret Code did not match with the Image"
215
- user: "The secret Image and code were different"
216
-
217
- ==Contributing
218
-
219
- For testing, generate a temporary Rails dummy app inside test:
220
-
221
- rake dummy:setup
222
- rake app:db:migrate
223
- rake app:db:migrate RAILS_ENV=test
224
- export BUNDLE_GEMFILE=$PWD/Gemfile
225
- cd test/dummy && rake db:migrate db:test:prepare
226
- rake test
227
-
228
- Please add test cases when adding new functionality. I started with some basic example integration tests for a very basic coverage.
229
-
230
- ==Who's who?
231
-
232
- Enjoy the simplest captcha implementation.
233
-
234
- Author: Sur
235
-
236
- Blog: http://expressica.com
237
-
238
- Contact: sur.max@gmail.com
239
-
240
- Plugin Homepage: http://expressica.com/simple_captcha
241
-
242
- Plugin update for rails 3: http://github.com/galetahub
243
-
244
- Any feedback/comment/issue/donation is welcome!