validates_captcha 0.9.6 → 0.9.7

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/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,8 @@
1
+ == 0.9.7 (June 1, 2010)
2
+
3
+ * Allow an individual secret to be set for SymmetricEncryptor::Simple.
4
+
5
+
1
6
  == 0.9.6 (October 30, 2009)
2
7
 
3
8
  * Do not make captcha_challenge and captcha_solution attr_accessible. Instead overwrite AR#attributes= so they can be mass assigned.
data/README.rdoc CHANGED
@@ -5,7 +5,7 @@ ActiveRecord's validation mechanism and providing helpers for ActionController
5
5
  and ActionView.
6
6
 
7
7
  RDoc documentation (including this README as start page) can be found at
8
- http://m4n.github.com/validates_captcha. Validates Captcha was first
8
+ http://m4n.github.com/validates_captcha . Validates Captcha was first
9
9
  announced {here}[http://m4n.github.com/2009/09/28/introducing-validates-captcha.html].
10
10
 
11
11
  By default, question/answer captcha challenges are used, but you can also switch
@@ -6,6 +6,11 @@ module ValidatesCaptcha
6
6
  # It internally uses ActiveSupport's MessageEncryptor to do the string
7
7
  # encryption/decryption.
8
8
  #
9
+ # To give each Rails instance the same secret key, put the following in an
10
+ # initializer:
11
+ #
12
+ # ValidatesCaptcha::SymmetricEncryptor::Simple.secret = 'bd66e2479b5...'
13
+ #
9
14
  # You can implement your own symmetric encryptor by creating a class
10
15
  # that conforms to the method definitions of the example below and
11
16
  # assign an instance of it to
@@ -30,10 +35,22 @@ module ValidatesCaptcha
30
35
  #
31
36
  # Please note: The #decrypt method should return +nil+ if decryption fails.
32
37
  class Simple
33
- KEY = ::ActiveSupport::SecureRandom.hex(64).freeze
38
+ @@secret = ::ActiveSupport::SecureRandom.hex(64)
39
+
40
+ def self.secret #:nodoc:
41
+ @@secret
42
+ end
43
+
44
+ def self.secret=(secret) #:nodoc:
45
+ @@secret = secret
46
+ end
47
+
48
+ def secret #:nodoc:
49
+ @@secret
50
+ end
34
51
 
35
52
  def initialize #:nodoc:
36
- @symmetric_encryptor = ::ActiveSupport::MessageEncryptor.new(KEY)
53
+ @symmetric_encryptor = ::ActiveSupport::MessageEncryptor.new(secret)
37
54
  end
38
55
 
39
56
  # Encrypts a cleartext string.
@@ -2,7 +2,7 @@ module ValidatesCaptcha #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 9
5
- TINY = 6
5
+ TINY = 7
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -3,6 +3,27 @@ require 'test_helper'
3
3
  SE = ValidatesCaptcha::SymmetricEncryptor::Simple
4
4
 
5
5
  class SymmetricEncryptorTest < ValidatesCaptcha::TestCase
6
+ test "defines a class level #secret method" do
7
+ assert_respond_to SE, :secret
8
+ end
9
+
10
+ test "defines an instance level #secret method" do
11
+ assert_respond_to SE.new, :secret
12
+ end
13
+
14
+ test "defines a class level #secret= method" do
15
+ assert_respond_to SE, :secret=
16
+ end
17
+
18
+ test "#secret method's return value should equal the value set using the #secret= method" do
19
+ old_secret = SE.secret
20
+
21
+ SE.secret = 'abc'
22
+ assert_equal 'abc', SE.secret
23
+
24
+ SE.secret = old_secret
25
+ end
26
+
6
27
  test "defines an instance level #encrypt method" do
7
28
  assert_respond_to SE.new, :encrypt
8
29
  end
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validates_captcha
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ hash: 53
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 9
9
+ - 7
10
+ version: 0.9.7
5
11
  platform: ruby
6
12
  authors:
7
13
  - Martin Andert
@@ -9,29 +15,41 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2009-10-30 00:00:00 +01:00
18
+ date: 2010-06-01 00:00:00 +02:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: actionpack
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - ">="
22
28
  - !ruby/object:Gem::Version
29
+ hash: 7
30
+ segments:
31
+ - 2
32
+ - 3
33
+ - 2
23
34
  version: 2.3.2
24
- version:
35
+ type: :runtime
36
+ version_requirements: *id001
25
37
  - !ruby/object:Gem::Dependency
26
38
  name: activerecord
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
30
42
  requirements:
31
43
  - - ">="
32
44
  - !ruby/object:Gem::Version
45
+ hash: 7
46
+ segments:
47
+ - 2
48
+ - 3
49
+ - 2
33
50
  version: 2.3.2
34
- version:
51
+ type: :runtime
52
+ version_requirements: *id002
35
53
  description: "A captcha verification approach for Rails apps, directly integrated into ActiveRecord\xE2\x80\x99s validation mechanism and providing helpers for ActionController and ActionView."
36
54
  email: martin@mehringen.de
37
55
  executables: []
@@ -79,7 +97,7 @@ licenses: []
79
97
  post_install_message:
80
98
  rdoc_options:
81
99
  - --title
82
- - Validates Captcha 0.9.6
100
+ - Validates Captcha 0.9.7
83
101
  - --main
84
102
  - README.rdoc
85
103
  - --line-numbers
@@ -89,21 +107,27 @@ rdoc_options:
89
107
  require_paths:
90
108
  - lib
91
109
  required_ruby_version: !ruby/object:Gem::Requirement
110
+ none: false
92
111
  requirements:
93
112
  - - ">="
94
113
  - !ruby/object:Gem::Version
114
+ hash: 3
115
+ segments:
116
+ - 0
95
117
  version: "0"
96
- version:
97
118
  required_rubygems_version: !ruby/object:Gem::Requirement
119
+ none: false
98
120
  requirements:
99
121
  - - ">="
100
122
  - !ruby/object:Gem::Version
123
+ hash: 3
124
+ segments:
125
+ - 0
101
126
  version: "0"
102
- version:
103
127
  requirements: []
104
128
 
105
129
  rubyforge_project: validatecaptcha
106
- rubygems_version: 1.3.5
130
+ rubygems_version: 1.3.7
107
131
  signing_key:
108
132
  specification_version: 3
109
133
  summary: Captcha verification for Rails using ActiveRecord's validation mechanism