tokenie 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.
- data/.gitignore +3 -0
- data/.travis.yml +7 -0
- data/CHANGELOG.rdoc +8 -0
- data/Gemfile +3 -3
- data/README.rdoc +6 -1
- data/Rakefile +10 -0
- data/lib/tokenie/version.rb +1 -1
- data/lib/tokenie.rb +1 -1
- data/spec/tokenie_spec.rb +5 -5
- data/tokenie.gemspec +1 -1
- metadata +7 -5
data/.gitignore
CHANGED
data/.travis.yml
ADDED
data/CHANGELOG.rdoc
ADDED
data/Gemfile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
source
|
1
|
+
source :rubygems
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
gem "rake"
|
4
|
+
gem 'rspec', '~> 2.7.0'
|
data/README.rdoc
CHANGED
@@ -12,13 +12,14 @@ Install as a gem from GemCutter:
|
|
12
12
|
|
13
13
|
Generate a token:
|
14
14
|
|
15
|
+
require 'tokenie'
|
15
16
|
Tokenie.friendly # => "De6paD"
|
16
17
|
|
17
18
|
By default it uses 6 characters for end string. To change it use :length option:
|
18
19
|
|
19
20
|
Tokenie.friendly(:length => 8) # => "gRaxwBg7"
|
20
21
|
|
21
|
-
If you want to ensure uniqueness you should provide a block which returns false in the case that means
|
22
|
+
If you want to ensure uniqueness you should provide a block which returns false in the case that means the token is not included in your storage:
|
22
23
|
|
23
24
|
existing_tokens = ['qwerty1', 'qwerty2', 'qwerty3']
|
24
25
|
Tokenie.friendly { |token| existing_tokens.include?(token) }
|
@@ -27,6 +28,10 @@ Example with ActiveRecord:
|
|
27
28
|
|
28
29
|
Tokenie.friendly { |t| self.class.exists?(:token => t) }
|
29
30
|
|
31
|
+
== Dependencies
|
32
|
+
|
33
|
+
* Ruby 1.8.7 or later
|
34
|
+
|
30
35
|
== Maintainers
|
31
36
|
|
32
37
|
* Andrew Djoga <andrew.djoga@gmail.com>
|
data/Rakefile
CHANGED
@@ -1 +1,11 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
|
+
require 'rubygems'
|
3
|
+
require 'rspec/core/rake_task'
|
4
|
+
require 'rubygems/specification'
|
5
|
+
|
6
|
+
task :default => :spec
|
7
|
+
desc "Run specs"
|
8
|
+
RSpec::Core::RakeTask.new do |t|
|
9
|
+
t.pattern = FileList['spec/**/*_spec.rb']
|
10
|
+
t.rspec_opts = %w(-fs --color)
|
11
|
+
end
|
data/lib/tokenie/version.rb
CHANGED
data/lib/tokenie.rb
CHANGED
@@ -8,7 +8,7 @@ module Tokenie
|
|
8
8
|
raise ArgumentError, "'length' must be in range (2..16)" if length < 2 || length > 16
|
9
9
|
|
10
10
|
loop do
|
11
|
-
token = SecureRandom.base64(15).tr('+/=
|
11
|
+
token = SecureRandom.base64(15).tr('+/=1lIO0o', 'abcdefghj')[0, length]
|
12
12
|
break token unless block_given? && yield(token)
|
13
13
|
end
|
14
14
|
end
|
data/spec/tokenie_spec.rb
CHANGED
@@ -13,17 +13,17 @@ describe Tokenie do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
it "generates a friendly token" do
|
16
|
-
SecureRandom.stub(:base64) { '+/=
|
17
|
-
Tokenie.friendly(:length =>
|
16
|
+
SecureRandom.stub(:base64) { '+/=1lIO0o' }
|
17
|
+
Tokenie.friendly(:length => 9).should eq('abcdefghj')
|
18
18
|
end
|
19
19
|
|
20
20
|
it "generates an unique token" do
|
21
|
-
existing_tokens = ['qwerty', '
|
22
|
-
generation_line = ['qwerty', '
|
21
|
+
existing_tokens = ['qwerty', 'qwert2']
|
22
|
+
generation_line = ['qwerty', 'qwert2', 'qwert3', 'qwert4']
|
23
23
|
SecureRandom.stub(:base64) { generation_line.shift }
|
24
24
|
|
25
25
|
token = Tokenie.friendly { |t| existing_tokens.include?(t) }
|
26
|
-
token.should eq('
|
26
|
+
token.should eq('qwert3')
|
27
27
|
end
|
28
28
|
|
29
29
|
it "raises an argument error if length is greater than 16" do
|
data/tokenie.gemspec
CHANGED
@@ -23,5 +23,5 @@ Gem::Specification.new do |s|
|
|
23
23
|
# specify any dependencies here; for example:
|
24
24
|
# s.add_development_dependency "rspec"
|
25
25
|
# s.add_runtime_dependency "rest-client"
|
26
|
-
s.add_development_dependency 'rspec', '~> 2.
|
26
|
+
s.add_development_dependency 'rspec', '~> 2.7.0'
|
27
27
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tokenie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,19 +9,19 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-11-30 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70116650364980 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 2.7.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70116650364980
|
25
25
|
description: Generation a friendly token randomically
|
26
26
|
email:
|
27
27
|
- andrew.djoga@gmail.com
|
@@ -33,6 +33,8 @@ extra_rdoc_files:
|
|
33
33
|
files:
|
34
34
|
- .gitignore
|
35
35
|
- .rspec
|
36
|
+
- .travis.yml
|
37
|
+
- CHANGELOG.rdoc
|
36
38
|
- Gemfile
|
37
39
|
- LICENSE
|
38
40
|
- README.rdoc
|