has_token_on 1.0.2 → 1.0.3
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 +49 -15
- data/lib/has_token_on/models/base.rb +1 -1
- data/lib/has_token_on/version.rb +1 -1
- data/spec/has_token_on/base_spec.rb +10 -0
- metadata +94 -29
data/README.md
CHANGED
@@ -17,20 +17,28 @@ Simple yet customizable token generator for Rails 3.
|
|
17
17
|
|
18
18
|
* Single token
|
19
19
|
|
20
|
-
|
20
|
+
```ruby
|
21
|
+
has_token_on :slug, :length => 3
|
22
|
+
```
|
21
23
|
|
22
24
|
* Multiple tokens, same configuration
|
23
25
|
|
24
|
-
|
26
|
+
```ruby
|
27
|
+
has_token_on [:slug, :permalink], :length => 3
|
28
|
+
```
|
25
29
|
|
26
30
|
* Multiple tokens with individual configuration
|
27
31
|
|
28
|
-
|
29
|
-
|
32
|
+
```ruby
|
33
|
+
has_token_on :slug, :length => 3
|
34
|
+
has_token_on :permalink, :length => 5
|
35
|
+
```
|
30
36
|
|
31
37
|
* .. or using single hash
|
32
38
|
|
33
|
-
|
39
|
+
```ruby
|
40
|
+
has_token_on :slug => { :length => 3 }, :permalink => { :length => 5 }
|
41
|
+
```
|
34
42
|
|
35
43
|
## Options
|
36
44
|
|
@@ -38,44 +46,70 @@ Options are as follows:
|
|
38
46
|
|
39
47
|
* :length - token length. Default - 16.
|
40
48
|
|
41
|
-
|
49
|
+
```ruby
|
50
|
+
has_token_on :slug, length => 3
|
51
|
+
```
|
42
52
|
|
43
53
|
* :prepend - prepend something to the beginning of the token. Default - none.
|
44
54
|
|
45
|
-
|
55
|
+
```ruby
|
56
|
+
has_token_on :slug, :prepend => "private"
|
57
|
+
```
|
46
58
|
|
47
59
|
* :append - append something to the back of the token. Default - none.
|
48
60
|
|
49
|
-
|
61
|
+
```ruby
|
62
|
+
has_token_on :slug, :append => "ending"
|
63
|
+
```
|
50
64
|
|
51
65
|
* :unique - ensure that tokens is unique (checking is performed in the app logic). Default - false.
|
52
66
|
|
53
|
-
|
67
|
+
```ruby
|
68
|
+
has_token_on :slug, :unique => true
|
69
|
+
```
|
54
70
|
|
55
71
|
* :if - generate token only if provided condition is met. Default - none.
|
56
72
|
|
57
|
-
|
73
|
+
```ruby
|
74
|
+
has_token_on :slug, :if => lambda { |record| record.private? }
|
75
|
+
```
|
58
76
|
|
59
77
|
* :on - generates token on certain time: :initialize, :create (default), :update.
|
60
78
|
|
61
|
-
|
79
|
+
```ruby
|
80
|
+
has_token_on :slug, :on => :initialize
|
81
|
+
```
|
62
82
|
|
63
83
|
* :seed - elements or functions that are used to generate hash. Options:
|
64
84
|
* :securerandom - uses ActiveSupport::SecureRandom.hex (default)
|
65
85
|
|
66
|
-
|
86
|
+
```ruby
|
87
|
+
has_token_on :slug, :seed => :securerandom
|
88
|
+
```
|
67
89
|
|
68
90
|
* :guid - uses simple_uuid gem. You should add it to your Gemfile. 36 characters long GUID. Length param is ignored.
|
69
91
|
|
70
|
-
|
92
|
+
```ruby
|
93
|
+
has_token_on :slug, :seed => :guid
|
94
|
+
```
|
71
95
|
|
72
96
|
* ('a'..'z') - a Range. Mixes the range elements up to specified length.
|
73
97
|
|
74
|
-
|
98
|
+
```ruby
|
99
|
+
has_token_on :slug, :seed => ('a'..'z')
|
100
|
+
```
|
101
|
+
|
102
|
+
* ['a', 'b', 'c'] - an Array. Mixes the array elements up to specified length.
|
103
|
+
|
104
|
+
```ruby
|
105
|
+
has_token_on :slug, :seed => ['a', 'b', 'c']
|
106
|
+
```
|
75
107
|
|
76
108
|
* lambda { 2 * 2 } - a Proc. Executes proc. Length param is ignored.
|
77
109
|
|
78
|
-
|
110
|
+
```ruby
|
111
|
+
has_token_on :slug, :seed => lambda { 2 * 2 }
|
112
|
+
```
|
79
113
|
|
80
114
|
## Generator
|
81
115
|
|
@@ -115,7 +115,7 @@ module HasTokenOn
|
|
115
115
|
raise LibraryNotPresent, "Supporting library SimpleUUID is not present. Add it to your Gemfile?"
|
116
116
|
end
|
117
117
|
end
|
118
|
-
when Range
|
118
|
+
when Range, Array
|
119
119
|
chars = config[:seed].to_a
|
120
120
|
(0...config[:length]).collect { chars[Kernel.rand(chars.length)] }.join
|
121
121
|
when Proc
|
data/lib/has_token_on/version.rb
CHANGED
@@ -114,6 +114,7 @@ describe HasTokenOn::Base do
|
|
114
114
|
t.string "sixteen"
|
115
115
|
t.string "proc_seed"
|
116
116
|
t.string "range_seed"
|
117
|
+
t.string "array_seed"
|
117
118
|
t.string "guid_seed"
|
118
119
|
t.boolean :check, :default => true
|
119
120
|
end
|
@@ -150,6 +151,10 @@ describe HasTokenOn::Base do
|
|
150
151
|
:seed => ('a'..'z'),
|
151
152
|
:on => [:initialize]
|
152
153
|
},
|
154
|
+
:array_seed => {
|
155
|
+
:seed => ['a', 'b', 'c'],
|
156
|
+
:on => [:initialize]
|
157
|
+
},
|
153
158
|
:guid_seed => {
|
154
159
|
:seed => :guid,
|
155
160
|
:on => [:create]
|
@@ -205,6 +210,11 @@ describe HasTokenOn::Base do
|
|
205
210
|
subject.range_seed.size.should == 16
|
206
211
|
end
|
207
212
|
|
213
|
+
it "should allow :seed to be described as array" do
|
214
|
+
subject.array_seed.should =~ /\A[abc]*\Z/
|
215
|
+
subject.array_seed.size.should == 16
|
216
|
+
end
|
217
|
+
|
208
218
|
end
|
209
219
|
|
210
220
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_token_on
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
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-
|
12
|
+
date: 2012-07-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.0.0
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: simple_uuid
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: sqlite3
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: rspec
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: 2.0.0
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 2.0.0
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: mocha
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: 0.9.8
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.9.8
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: with_model
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: 0.1.4
|
77
102
|
type: :development
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.1.4
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: guard
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,10 +117,15 @@ dependencies:
|
|
87
117
|
version: 0.3.4
|
88
118
|
type: :development
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 0.3.4
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: guard-rspec
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ! '>='
|
@@ -98,10 +133,15 @@ dependencies:
|
|
98
133
|
version: '0'
|
99
134
|
type: :development
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
102
142
|
- !ruby/object:Gem::Dependency
|
103
143
|
name: growl
|
104
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
105
145
|
none: false
|
106
146
|
requirements:
|
107
147
|
- - ! '>='
|
@@ -109,10 +149,15 @@ dependencies:
|
|
109
149
|
version: '0'
|
110
150
|
type: :development
|
111
151
|
prerelease: false
|
112
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
113
158
|
- !ruby/object:Gem::Dependency
|
114
159
|
name: rb-fsevent
|
115
|
-
requirement:
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
116
161
|
none: false
|
117
162
|
requirements:
|
118
163
|
- - ! '>='
|
@@ -120,10 +165,15 @@ dependencies:
|
|
120
165
|
version: '0'
|
121
166
|
type: :development
|
122
167
|
prerelease: false
|
123
|
-
version_requirements:
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
124
174
|
- !ruby/object:Gem::Dependency
|
125
175
|
name: ruby-debug19
|
126
|
-
requirement:
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
127
177
|
none: false
|
128
178
|
requirements:
|
129
179
|
- - ! '>='
|
@@ -131,10 +181,15 @@ dependencies:
|
|
131
181
|
version: '0'
|
132
182
|
type: :development
|
133
183
|
prerelease: false
|
134
|
-
version_requirements:
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ! '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
135
190
|
- !ruby/object:Gem::Dependency
|
136
191
|
name: mongoid
|
137
|
-
requirement:
|
192
|
+
requirement: !ruby/object:Gem::Requirement
|
138
193
|
none: false
|
139
194
|
requirements:
|
140
195
|
- - ! '>='
|
@@ -142,10 +197,15 @@ dependencies:
|
|
142
197
|
version: '2'
|
143
198
|
type: :development
|
144
199
|
prerelease: false
|
145
|
-
version_requirements:
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ! '>='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '2'
|
146
206
|
- !ruby/object:Gem::Dependency
|
147
207
|
name: bson_ext
|
148
|
-
requirement:
|
208
|
+
requirement: !ruby/object:Gem::Requirement
|
149
209
|
none: false
|
150
210
|
requirements:
|
151
211
|
- - ! '>='
|
@@ -153,7 +213,12 @@ dependencies:
|
|
153
213
|
version: 1.3.1
|
154
214
|
type: :development
|
155
215
|
prerelease: false
|
156
|
-
version_requirements:
|
216
|
+
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
none: false
|
218
|
+
requirements:
|
219
|
+
- - ! '>='
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: 1.3.1
|
157
222
|
description: Simple yet customizable token generator for Rails 3
|
158
223
|
email:
|
159
224
|
- saulius@ninja.lt
|
@@ -207,7 +272,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
272
|
version: '0'
|
208
273
|
requirements: []
|
209
274
|
rubyforge_project: has_token_on
|
210
|
-
rubygems_version: 1.8.
|
275
|
+
rubygems_version: 1.8.23
|
211
276
|
signing_key:
|
212
277
|
specification_version: 3
|
213
278
|
summary: A token generator plugin for Rails 3
|