has_token_on 1.0.1 → 1.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.
@@ -5,13 +5,10 @@ module HasTokenOn
|
|
5
5
|
extend ActiveSupport::Concern
|
6
6
|
include HasTokenOn::Base
|
7
7
|
|
8
|
-
|
8
|
+
private
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
def token_is_nonunique?(token)
|
13
|
-
self.class.exists?(token => self[token])
|
14
|
-
end
|
10
|
+
def token_is_nonunique?(token)
|
11
|
+
self.class.exists?(token => self[token])
|
15
12
|
end
|
16
13
|
end
|
17
14
|
end
|
@@ -79,71 +79,67 @@ module HasTokenOn
|
|
79
79
|
|
80
80
|
end
|
81
81
|
|
82
|
-
|
82
|
+
private
|
83
83
|
|
84
|
-
|
84
|
+
def create_tokens(record, callback)
|
85
|
+
return unless any_tokens?
|
85
86
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
begin
|
92
|
-
self[token] = build_token(config)
|
93
|
-
end while (config.has_key?(:unique) and config[:unique]) and token_is_nonunique?(token)
|
94
|
-
end
|
87
|
+
tokens_to_build_on(callback).each do |token, config|
|
88
|
+
if !config.has_key?(:if) or (config.has_key?(:if) and config[:if].call(record))
|
89
|
+
begin
|
90
|
+
self[token] = build_token(config)
|
91
|
+
end while (config.has_key?(:unique) and config[:unique]) and token_is_nonunique?(token)
|
95
92
|
end
|
96
93
|
end
|
94
|
+
end
|
97
95
|
|
98
|
-
|
99
|
-
|
100
|
-
|
96
|
+
def build_token(config)
|
97
|
+
defaults = { :length => 16, :prepend => "", :append => "", :seed => :securerandom }
|
98
|
+
config = defaults.merge(config)
|
101
99
|
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
100
|
+
return [config[:prepend],
|
101
|
+
build_from_seed(config),
|
102
|
+
config[:append]
|
103
|
+
].join
|
104
|
+
end
|
107
105
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
end
|
106
|
+
def build_from_seed(config)
|
107
|
+
case config[:seed]
|
108
|
+
when Symbol
|
109
|
+
if config[:seed] == :securerandom
|
110
|
+
SecureRandom.hex(config[:length]).first(config[:length])
|
111
|
+
elsif config[:seed] == :guid
|
112
|
+
if simple_uuid_present?
|
113
|
+
::SimpleUUID::UUID.new.to_guid
|
114
|
+
else
|
115
|
+
raise LibraryNotPresent, "Supporting library SimpleUUID is not present. Add it to your Gemfile?"
|
119
116
|
end
|
120
|
-
when Range
|
121
|
-
chars = config[:seed].to_a
|
122
|
-
(0...config[:length]).collect { chars[Kernel.rand(chars.length)] }.join
|
123
|
-
when Proc
|
124
|
-
config[:seed].call.to_s
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
def any_tokens?
|
129
|
-
self.class.tokens && self.class.tokens.any?
|
130
|
-
end
|
131
|
-
|
132
|
-
def tokens_to_build_on(callback)
|
133
|
-
self.class.tokens.select{ |token, config|
|
134
|
-
if config.has_key?(:on)
|
135
|
-
config[:on].include?(callback)
|
136
|
-
else
|
137
|
-
# if user didn't specify :on we set token before record create
|
138
|
-
callback == :create
|
139
117
|
end
|
140
|
-
|
118
|
+
when Range
|
119
|
+
chars = config[:seed].to_a
|
120
|
+
(0...config[:length]).collect { chars[Kernel.rand(chars.length)] }.join
|
121
|
+
when Proc
|
122
|
+
config[:seed].call.to_s
|
141
123
|
end
|
124
|
+
end
|
142
125
|
|
143
|
-
|
144
|
-
|
145
|
-
|
126
|
+
def any_tokens?
|
127
|
+
self.class.tokens && self.class.tokens.any?
|
128
|
+
end
|
129
|
+
|
130
|
+
def tokens_to_build_on(callback)
|
131
|
+
self.class.tokens.select{ |token, config|
|
132
|
+
if config.has_key?(:on)
|
133
|
+
config[:on].include?(callback)
|
134
|
+
else
|
135
|
+
# if user didn't specify :on we set token before record create
|
136
|
+
callback == :create
|
137
|
+
end
|
138
|
+
}
|
139
|
+
end
|
146
140
|
|
141
|
+
def simple_uuid_present?
|
142
|
+
defined? ::SimpleUUID
|
147
143
|
end
|
148
144
|
end
|
149
145
|
end
|
@@ -6,13 +6,10 @@ module HasTokenOn
|
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
include HasTokenOn::Base
|
8
8
|
|
9
|
-
|
9
|
+
private
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
def token_is_nonunique?(token)
|
14
|
-
self.class.first(:conditions => { token => self[token] }).present?
|
15
|
-
end
|
11
|
+
def token_is_nonunique?(token)
|
12
|
+
self.class.first(:conditions => { token => self[token] }).present?
|
16
13
|
end
|
17
14
|
end
|
18
15
|
end
|
data/lib/has_token_on/version.rb
CHANGED
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.2
|
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:
|
12
|
+
date: 2012-03-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
16
|
-
requirement: &
|
16
|
+
requirement: &70330988336260 !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: *70330988336260
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: simple_uuid
|
27
|
-
requirement: &
|
27
|
+
requirement: &70330988335840 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70330988335840
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: sqlite3
|
38
|
-
requirement: &
|
38
|
+
requirement: &70330988335260 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70330988335260
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &70330988334680 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 2.0.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70330988334680
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: mocha
|
60
|
-
requirement: &
|
60
|
+
requirement: &70330988334200 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 0.9.8
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70330988334200
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: with_model
|
71
|
-
requirement: &
|
71
|
+
requirement: &70330988333720 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 0.1.4
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70330988333720
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: guard
|
82
|
-
requirement: &
|
82
|
+
requirement: &70330988333240 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: 0.3.4
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70330988333240
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: guard-rspec
|
93
|
-
requirement: &
|
93
|
+
requirement: &70330988332760 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70330988332760
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: growl
|
104
|
-
requirement: &
|
104
|
+
requirement: &70330988332280 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *70330988332280
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: rb-fsevent
|
115
|
-
requirement: &
|
115
|
+
requirement: &70330988331800 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ! '>='
|
@@ -120,10 +120,10 @@ dependencies:
|
|
120
120
|
version: '0'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *70330988331800
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: ruby-debug19
|
126
|
-
requirement: &
|
126
|
+
requirement: &70330988331280 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
129
|
- - ! '>='
|
@@ -131,10 +131,10 @@ dependencies:
|
|
131
131
|
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *70330988331280
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: mongoid
|
137
|
-
requirement: &
|
137
|
+
requirement: &70330988347140 !ruby/object:Gem::Requirement
|
138
138
|
none: false
|
139
139
|
requirements:
|
140
140
|
- - ! '>='
|
@@ -142,10 +142,10 @@ dependencies:
|
|
142
142
|
version: '2'
|
143
143
|
type: :development
|
144
144
|
prerelease: false
|
145
|
-
version_requirements: *
|
145
|
+
version_requirements: *70330988347140
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: bson_ext
|
148
|
-
requirement: &
|
148
|
+
requirement: &70330988346460 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - ! '>='
|
@@ -153,7 +153,7 @@ dependencies:
|
|
153
153
|
version: 1.3.1
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *70330988346460
|
157
157
|
description: Simple yet customizable token generator for Rails 3
|
158
158
|
email:
|
159
159
|
- saulius@ninja.lt
|
@@ -207,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
207
|
version: '0'
|
208
208
|
requirements: []
|
209
209
|
rubyforge_project: has_token_on
|
210
|
-
rubygems_version: 1.8.
|
210
|
+
rubygems_version: 1.8.11
|
211
211
|
signing_key:
|
212
212
|
specification_version: 3
|
213
213
|
summary: A token generator plugin for Rails 3
|