webget-secure_token 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,32 @@
1
+ # = SecureToken
2
+ #
3
+ # Author:: Joel Parker Henderson, joelparkerhenderson@gmail.com
4
+ # Copyright:: Copyright (c) 2006-2008 Joel Parker Henderson
5
+ # License:: CreativeCommons License, Non-commercial Share Alike
6
+ # License:: LGPL, GNU Lesser General Public License
7
+ #
8
+ # Random token generator to create strong secure text tokens.
9
+ #
10
+ # ==Example
11
+ # SecureToken.new => "kavzwbnxremyqlkw"
12
+ #
13
+ # This generates a 16-character token of all lowercase letters,
14
+ # using Ruby's securerandom methods.
15
+ #
16
+ # SecureToken is a string, so you can do any string methods on it.
17
+ # You can change how tokens are randomly created, however you want.
18
+ #
19
+ ##
20
+
21
+ require 'securerandom'
22
+
23
+ class SecureToken < String
24
+
25
+ COUNT = 16
26
+ CHARS = ['a','b','c','d','e','f','g','h','j','k','m','n','p','r','s','t','u','v','w','x','y','z']
27
+
28
+ def initialize
29
+ super(Array.new(COUNT){CHARS[SecureRandom.random_number(CHARS.size)]}.join)
30
+ end
31
+
32
+ end
@@ -0,0 +1,16 @@
1
+ require 'test/unit'
2
+ require 'secure_token'
3
+
4
+ class SecureTokenTest < Test::Unit::TestCase
5
+
6
+ def test_all
7
+ 20.times{
8
+ x=SecureToken.new
9
+ assert(x.is_a?(String))
10
+ assert_equal(x.length,SecureToken::COUNT)
11
+ assert(x=~/^[a-z]+$/,"lowercase letters:#{x}")
12
+ }
13
+ end
14
+
15
+ end
16
+
metadata ADDED
@@ -0,0 +1,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: webget-secure_token
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - WebGet
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-02-13 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: securerandom
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.1.0
24
+ version:
25
+ description:
26
+ email: webget@webget.com
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files: []
32
+
33
+ files:
34
+ - lib/secure_token.rb
35
+ has_rdoc: true
36
+ homepage: http://webget.com/gems/secure_token
37
+ post_install_message:
38
+ rdoc_options: []
39
+
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
47
+ version:
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: "0"
53
+ version:
54
+ requirements: []
55
+
56
+ rubyforge_project:
57
+ rubygems_version: 1.2.0
58
+ signing_key:
59
+ specification_version: 2
60
+ summary: secure_token
61
+ test_files:
62
+ - test/unit/secure_token_test.rb