has_token_on 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
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
- has_token_on :slug, :length => 3
20
+ ```ruby
21
+ has_token_on :slug, :length => 3
22
+ ```
21
23
 
22
24
  * Multiple tokens, same configuration
23
25
 
24
- has_token_on [:slug, :permalink], :length => 3
26
+ ```ruby
27
+ has_token_on [:slug, :permalink], :length => 3
28
+ ```
25
29
 
26
30
  * Multiple tokens with individual configuration
27
31
 
28
- has_token_on :slug, :length => 3
29
- has_token_on :permalink, :length => 5
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
- has_token_on :slug => { :length => 3 }, :permalink => { :length => 5 }
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
- has_token_on :slug, length => 3
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
- has_token_on :slug, :prepend => "private"
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
- has_token_on :slug, :append => "ending"
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
- has_token_on :slug, :unique => true
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
- has_token_on :slug, :if => lambda { |record| record.private? }
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
- has_token_on :slug, :on => :initialize
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
- has_token_on :slug, :seed => :securerandom
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
- has_token_on :slug, :seed => :guid
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
- has_token_on :slug, :seed => ('a'..'z')
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
- has_token_on :slug, :seed => lambda { 2 * 2 }
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
@@ -1,3 +1,3 @@
1
1
  module HasTokenOn
2
- VERSION = '1.0.2'
2
+ VERSION = '1.0.3'
3
3
  end
@@ -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.2
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-03-09 00:00:00.000000000 Z
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: &70330988336260 !ruby/object:Gem::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: *70330988336260
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: &70330988335840 !ruby/object:Gem::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: *70330988335840
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: &70330988335260 !ruby/object:Gem::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: *70330988335260
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: &70330988334680 !ruby/object:Gem::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: *70330988334680
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: &70330988334200 !ruby/object:Gem::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: *70330988334200
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: &70330988333720 !ruby/object:Gem::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: *70330988333720
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: &70330988333240 !ruby/object:Gem::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: *70330988333240
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: &70330988332760 !ruby/object:Gem::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: *70330988332760
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: &70330988332280 !ruby/object:Gem::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: *70330988332280
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: &70330988331800 !ruby/object:Gem::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: *70330988331800
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: &70330988331280 !ruby/object:Gem::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: *70330988331280
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: &70330988347140 !ruby/object:Gem::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: *70330988347140
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: &70330988346460 !ruby/object:Gem::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: *70330988346460
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.11
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