has_token_id 0.2.0 → 0.3.0
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/README.md +8 -5
- data/lib/has_token_id/concern.rb +7 -1
- data/lib/has_token_id/version.rb +1 -1
- data/lib/has_token_id.rb +5 -4
- data/test/unit/concern_test.rb +12 -1
- metadata +18 -18
data/README.md
CHANGED
@@ -10,7 +10,7 @@ Installation
|
|
10
10
|
Add has_token_id to your Gemfile like so:
|
11
11
|
|
12
12
|
```ruby
|
13
|
-
gem 'has_token_id', '~> 0.
|
13
|
+
gem 'has_token_id', '~> 0.3.0'
|
14
14
|
```
|
15
15
|
|
16
16
|
Now run `bundle install` and you're good to go!
|
@@ -61,6 +61,8 @@ Try it out in your `rails console`
|
|
61
61
|
# Iccfa4bb1613e80097ba9495
|
62
62
|
@item == Item.find("Iccfa4bb1613e80097ba9495")
|
63
63
|
# true
|
64
|
+
@item.short_token
|
65
|
+
# Iccfa4bb
|
64
66
|
```
|
65
67
|
|
66
68
|
|
@@ -71,10 +73,11 @@ Options
|
|
71
73
|
You can customize has_token_id by setting a few options. Here's the defaults:
|
72
74
|
|
73
75
|
```ruby
|
74
|
-
:prefix
|
75
|
-
:length
|
76
|
-
:
|
77
|
-
:
|
76
|
+
:prefix => nil, # if nil use first letter of class name
|
77
|
+
:length => 24,
|
78
|
+
:short_token_length => 8,
|
79
|
+
:param_name => 'token',
|
80
|
+
:case_sensitive => false
|
78
81
|
```
|
79
82
|
|
80
83
|
|
data/lib/has_token_id/concern.rb
CHANGED
@@ -71,10 +71,16 @@ module HasTokenId
|
|
71
71
|
|
72
72
|
module InstanceMethods
|
73
73
|
|
74
|
-
def to_param
|
74
|
+
def to_param
|
75
75
|
self.send(self.class.has_token_id_options[:param_name])
|
76
76
|
end
|
77
77
|
|
78
|
+
def short_token
|
79
|
+
max = self.class.has_token_id_options[:length]
|
80
|
+
len = self.class.has_token_id_options[:short_token_length]
|
81
|
+
to_param[0, len < max ? len : max]
|
82
|
+
end
|
83
|
+
|
78
84
|
private
|
79
85
|
|
80
86
|
def generate_token
|
data/lib/has_token_id/version.rb
CHANGED
data/lib/has_token_id.rb
CHANGED
@@ -19,10 +19,11 @@ module HasTokenId
|
|
19
19
|
|
20
20
|
def self.default_token_options
|
21
21
|
@default_token_options ||= {
|
22
|
-
:prefix
|
23
|
-
:length
|
24
|
-
:
|
25
|
-
:
|
22
|
+
:prefix => nil, # if nil use first letter of class name
|
23
|
+
:length => 24,
|
24
|
+
:short_token_length => 8,
|
25
|
+
:param_name => 'token',
|
26
|
+
:case_sensitive => false
|
26
27
|
}
|
27
28
|
end
|
28
29
|
|
data/test/unit/concern_test.rb
CHANGED
@@ -47,7 +47,7 @@ class ConcernTest < MiniTest::Should::TestCase
|
|
47
47
|
end
|
48
48
|
|
49
49
|
should "have default options" do
|
50
|
-
opts = { :prefix => "I", :length => 24, :param_name => "token", :case_sensitive => false }
|
50
|
+
opts = { :prefix => "I", :length => 24, :short_token_length => 8, :param_name => "token", :case_sensitive => false }
|
51
51
|
assert_equal opts, Item.has_token_id_options
|
52
52
|
end
|
53
53
|
|
@@ -59,6 +59,17 @@ class ConcernTest < MiniTest::Should::TestCase
|
|
59
59
|
assert_equal @item.to_param, @item.token
|
60
60
|
end
|
61
61
|
|
62
|
+
should "have short token" do
|
63
|
+
assert_equal @item.token[0, 8], @item.short_token
|
64
|
+
assert_equal 8, @item.short_token.length
|
65
|
+
end
|
66
|
+
|
67
|
+
should "return max token size when short token length is set longer than token length" do
|
68
|
+
Item.has_token_id_options.merge!(:short_token_length => 99)
|
69
|
+
assert_equal @item.token[0..24], @item.short_token
|
70
|
+
assert_equal 24, @item.short_token.length
|
71
|
+
end
|
72
|
+
|
62
73
|
should "find by token" do
|
63
74
|
assert_equal @item, Item.find(@item.token)
|
64
75
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_token_id
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-31 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
16
|
-
requirement: &
|
16
|
+
requirement: &70314473800600 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70314473800600
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activesupport
|
27
|
-
requirement: &
|
27
|
+
requirement: &70314473799680 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 3.0.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70314473799680
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rails
|
38
|
-
requirement: &
|
38
|
+
requirement: &70314473798880 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 3.0.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70314473798880
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: dummier
|
49
|
-
requirement: &
|
49
|
+
requirement: &70314473798140 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.3.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70314473798140
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: minitest
|
60
|
-
requirement: &
|
60
|
+
requirement: &70314473797440 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 2.0.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70314473797440
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: minitest_should
|
71
|
-
requirement: &
|
71
|
+
requirement: &70314473796720 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 0.3.1
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70314473796720
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: sqlite3
|
82
|
-
requirement: &
|
82
|
+
requirement: &70314473796060 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: 1.3.5
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70314473796060
|
91
91
|
description: Identifies your active records with a random token. For more information,
|
92
92
|
please see the documentation.
|
93
93
|
email:
|
@@ -128,7 +128,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
128
128
|
version: '0'
|
129
129
|
segments:
|
130
130
|
- 0
|
131
|
-
hash:
|
131
|
+
hash: -2635183054273131293
|
132
132
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
133
|
none: false
|
134
134
|
requirements:
|
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
137
137
|
version: '0'
|
138
138
|
segments:
|
139
139
|
- 0
|
140
|
-
hash:
|
140
|
+
hash: -2635183054273131293
|
141
141
|
requirements: []
|
142
142
|
rubyforge_project:
|
143
143
|
rubygems_version: 1.8.10
|