honeypot-captcha 0.0.1 → 0.0.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.
@@ -1,9 +1,7 @@
1
- # honeypot-captcha
1
+ # Honeypot Captcha
2
2
 
3
3
  A simple way to add honeypot captchas in your Rails forms.
4
4
 
5
- ## Honeypot Captcha
6
-
7
5
  Honeypot captchas work off the premise that you can present different form
8
6
  fields to a spam bot than you do to a real user. Spam bots will typically try
9
7
  to fill all fields in a form and will not take into account CSS styles.
@@ -11,39 +9,38 @@ to fill all fields in a form and will not take into account CSS styles.
11
9
  We add bogus fields to a form and then check to see if those fields are
12
10
  submitted with values. If they are, we assume that we encountered a spam bot.
13
11
 
14
- # Usage
12
+ * [Honeypot Captcha by Phil Haack](http://haacked.com/archive/2007/09/11/honeypot-captcha.aspx)
13
+ * [Stopping spambots with hashes and honeypots](http://nedbatchelder.com/text/stopbots.html)
14
+
15
+
16
+ ## Usage
15
17
 
16
18
  I've tried to make it pretty simple to add a honeypot captcha, but I'm open to
17
19
  any suggestions you may have.
18
20
 
19
- ## form_for
21
+ ### form_for
20
22
 
21
23
  Simply specify that the form has a honeypot in the HTML options hash:
22
24
 
23
- <% form_for Comment.new, :html => { :honeypot => true } do |form| -%>
24
- ...
25
- <% end -%>
25
+ <% form_for Comment.new, :html => { :honeypot => true } do |form| -%>
26
+ ...
27
+ <% end -%>
26
28
 
27
- ## form_tag with block
29
+ ### form_tag with block
28
30
 
29
31
  Simply specify that the form has a honeypot in the options hash:
30
32
 
31
- <% form_tag comments_path, :honeypot => true do -%>
32
- ...
33
- <% end -%>
33
+ <% form_tag comments_path, :honeypot => true do -%>
34
+ ...
35
+ <% end -%>
34
36
 
35
- ## form_tag without block
37
+ ### form_tag without block
36
38
 
37
39
  Simply specify that the form has a honeypot in the options hash:
38
40
 
39
- <%= form_tag comments_path, :honeypot => true -%>
40
- ...
41
- </form>
42
-
43
- ### References
44
-
45
- * [Honeypot Captcha by Phil Haack](http://haacked.com/archive/2007/09/11/honeypot-captcha.aspx)
46
- * [Stopping spambots with hashes and honeypots](http://nedbatchelder.com/text/stopbots.html)
41
+ <%= form_tag comments_path, :honeypot => true -%>
42
+ ...
43
+ </form>
47
44
 
48
45
  ## Note on Patches/Pull Requests
49
46
 
@@ -57,6 +54,10 @@ Simply specify that the form has a honeypot in the options hash:
57
54
 
58
55
  Written by [Curtis Miller](http://millarian.com) of [Flatterline](http://flatterline.com)
59
56
 
57
+ ### Contributors
58
+
59
+ * [Eric Saxby](http://github.com/sax)
60
+
60
61
  ## Copyright
61
62
 
62
63
  Copyright (c) 2010 Curtis Miller. See LICENSE for details.
data/Rakefile CHANGED
@@ -10,7 +10,7 @@ begin
10
10
  gem.email = "curtis@flatterline.com"
11
11
  gem.homepage = "http://github.com/curtis/honeypot-captcha"
12
12
  gem.authors = ["curtis"]
13
- gem.add_development_dependency "rspec", ">= 1.2.9"
13
+ # gem.add_development_dependency "rspec", ">= 1.2.9"
14
14
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
15
15
  end
16
16
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{honeypot-captcha}
8
- s.version = "0.0.1"
8
+ s.version = "0.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["curtis"]
12
- s.date = %q{2010-04-09}
12
+ s.date = %q{2010-05-23}
13
13
  s.description = %q{A simple way to add honeypot captchas to Rails forms}
14
14
  s.email = %q{curtis@flatterline.com}
15
15
  s.extra_rdoc_files = [
@@ -38,12 +38,9 @@ Gem::Specification.new do |s|
38
38
  s.specification_version = 3
39
39
 
40
40
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
41
- s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
42
41
  else
43
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
44
42
  end
45
43
  else
46
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
47
44
  end
48
45
  end
49
46
 
@@ -3,11 +3,11 @@ require 'honeypot-captcha/form_tag_helper'
3
3
  module HoneypotCaptcha
4
4
  module SpamProtection
5
5
  def honeypot_fields
6
- [:a_comment_body]
6
+ { :a_comment_body => 'Do not fill in this field' }
7
7
  end
8
8
 
9
9
  def protect_from_spam
10
- head :ok if honeypot_fields.any? { |f| !params[f].blank? }
10
+ head :ok if honeypot_fields.any? { |f,l| !params[f].blank? }
11
11
  end
12
12
 
13
13
  def self.included(base) # :nodoc:
@@ -6,10 +6,11 @@ module ActionView
6
6
  honeypot = options.delete(:honeypot)
7
7
  html = form_tag_without_honeypot(url_for_options, options, *parameters_for_url, &block)
8
8
  if honeypot
9
+ captcha = "".respond_to?(:html_safe) ? honey_pot_captcha.html_safe : honey_pot_captcha
9
10
  if block_given?
10
- html.insert(html.index('</form>'), honey_pot_captcha)
11
+ html.insert(html.index('</form>'), captcha)
11
12
  else
12
- html += honey_pot_captcha
13
+ html += captcha
13
14
  end
14
15
  end
15
16
  html
@@ -20,13 +21,16 @@ module ActionView
20
21
 
21
22
  def honey_pot_captcha
22
23
  html_ids = []
23
- honeypot_fields.collect do |f|
24
+ honeypot_fields.collect do |f, l|
24
25
  html_ids << (html_id = "#{f}_hp_#{Time.now.to_i}")
25
- content_tag(:div, send([:text_field_tag, :text_area_tag][rand(2)], f), :id => html_id)
26
- end.join +
27
- content_tag(:style, :type => 'text/css', :media => 'screen') do
28
- "#{html_ids.map { |i| "##{i}" }.join(', ')} { display:none; }"
29
- end
26
+ content_tag :div, :id => html_id do
27
+ content_tag(:style, :type => 'text/css', :media => 'screen', :scoped => "scoped") do
28
+ "#{html_ids.map { |i| "##{i}" }.join(', ')} { display:none; }"
29
+ end +
30
+ label_tag(f, l) +
31
+ send([:text_field_tag, :text_area_tag][rand(2)], f)
32
+ end
33
+ end.join
30
34
  end
31
35
  end
32
36
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 1
9
- version: 0.0.1
8
+ - 2
9
+ version: 0.0.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - curtis
@@ -14,23 +14,10 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-04-09 00:00:00 -07:00
17
+ date: 2010-05-23 00:00:00 -07:00
18
18
  default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: rspec
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 1
29
- - 2
30
- - 9
31
- version: 1.2.9
32
- type: :development
33
- version_requirements: *id001
19
+ dependencies: []
20
+
34
21
  description: A simple way to add honeypot captchas to Rails forms
35
22
  email: curtis@flatterline.com
36
23
  executables: []