king_tokens 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,16 +1,16 @@
1
- = KingTokens
1
+ # KingTokens
2
2
 
3
3
  Tokens are a usefull way to give users access to an application. This can be for a limited time or just once.
4
- Just think of password resets, changing email, protected rss feed urls, timed out private links, .. KingTokens are your easy way out in such cases
4
+ Just think of password resets, changing email, protected rss feed urls, timed out private links, .. KingTokens are your easy way out in such cases
5
5
 
6
6
  This plugin consists of two parts:
7
7
 
8
- * an ActiveRecord model class TokenCode, which maps to the token table in the db
8
+ * an ActiveRecord model class TokenCode, which maps to the token table in the db
9
9
  * a module Tokenizer mixed into ActiveRecord::Base, providing your models with the possibility to define tokens
10
10
 
11
11
  KingTokens map polymorphic to other objects, through the can_has_tokens :a_tokens_name call
12
12
 
13
- == Install
13
+ ## Install
14
14
 
15
15
  Get it as gem (hosted on gemcutter.org)
16
16
  gem install king_tokens
@@ -19,17 +19,21 @@ Or download it from github and use it as rails plugin
19
19
 
20
20
  setup your token db like defined in the test schema => test/schema.rb
21
21
 
22
- == Example
22
+ ## Example
23
23
 
24
24
  Define a token on a model
25
+ ```ruby
25
26
  class User
26
27
  can_has_tokens :forgot_password
27
28
  end
29
+ ```
28
30
 
29
31
  Set and get a user by token in a controller
32
+
33
+ ```ruby
30
34
  class UsersController
31
35
  # form with email so user can send himself a password reset link
32
- def lost_password
36
+ def lost_password
33
37
  if request.post?
34
38
  #create users forgot_password_token
35
39
  @user.set_forgot_password_token
@@ -47,41 +51,58 @@ Set and get a user by token in a controller
47
51
  ...
48
52
  end
49
53
  end
50
-
51
- == Docs
54
+ ```
55
+ ## Docs
52
56
 
53
57
  To get a full understanding of the usage also read the tests. For QM you might check the coverage report in coverage/index.html
54
58
 
55
- === Token definition inside an ActiveRecord object:
59
+ ### Token definition inside an ActiveRecord object:
60
+
61
+ ```ruby
62
+ class User
56
63
 
57
- Add a token with the name forgot_pasword to an object.
58
- can_has_tokens :forgot_password
59
- A token with the name change email valid for 3 days
60
- can_has_tokens :change_email, {:days_valid => 3}
64
+ # Adds token named forgot_pasword to an object.
65
+ can_has_tokens :forgot_password
66
+
67
+ # Token named change email valid for 3 days
68
+ can_has_tokens :change_email, {:days_valid => 3}
69
+ end
70
+ ```
61
71
 
62
- === Instance methods added to the ActiveRecord object:
63
- Set a new token and removing any existing one
72
+ ### Instance methods added to the ActiveRecord object:
73
+
74
+ ```ruby
75
+ user = User.new
76
+ # Set a new token and removing any existing one
64
77
  user.set_forgot_password_token
65
- Get the token string
78
+
79
+ #Get the token string
66
80
  user.forgot_password_token
67
- Check if the user has such a token, returns boolean true
81
+
82
+ # Check if the user has such a token, returns boolean true
68
83
  user.forgot_password_token?
69
- Get the token object
84
+
85
+ # Get the token object
70
86
  user.get_forgot_password_token
71
- Get the token object by name
72
- user.token(:forgot_password)
73
- Low level function to create a token with special options, overriding the ones set in the class definition
74
- user.create_token(:token_name, :valid => 2.days.from_now)
75
87
 
88
+ # Get the token object by name
89
+ user.token(:forgot_password)
90
+
91
+ # Low level function to create a token with special options,
92
+ # overriding the ones set in the class definition
93
+ user.create_token(:token_name, :valid => 2.days.from_now)
94
+ ```
76
95
 
77
- === Class methods
96
+ ### Class methods
78
97
 
79
- Find a user by a specific token which must be valid
98
+ ```ruby
99
+ # Find user by specific token which must be valid
80
100
  User.find_by_valid_token(:token_name, 'a token string')
81
- Find a user by specific token, without valid check
101
+
102
+ # Find user by specific token, without validation check
82
103
  User.find_by_token(:forgot_password, 'a token string')
83
-
84
- User.find_token
85
104
 
105
+ User.find_token
106
+ ```
86
107
 
87
- Copyright (c) 2008-2010 Michael Bumann, Georg Leciejewski released under the MIT license
108
+ Copyright (c) 2008-2013 Michael Bumann, Georg Leciejewski released under the MIT license
data/king_tokens.gemspec CHANGED
@@ -8,14 +8,14 @@ Gem::Specification.new do |s|
8
8
  s.description = %q{Tokens are a usefull way to give users access to an application. This can be for a limited time or just once. Just think of password resets, changing email, protected rss feed urls, timed out private links}
9
9
  s.version = KingTokens::VERSION
10
10
 
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.authors = ["Georg Leciejewski", "Michael Bumann"]
13
- s.date = %q{2010-05-04}
11
+ s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
12
+ s.authors = ['Georg Leciejewski', 'Michael Bumann']
13
+ s.date = %q{2013-03-05}
14
14
  s.email = %q{gl@salesking.eu}
15
15
  s.homepage = %q{http://github.com/schorsch/king_tokens}
16
16
 
17
- s.extra_rdoc_files = ["README.rdoc"]
18
- s.require_paths = ["lib"]
17
+ s.extra_rdoc_files = %w(README.md)
18
+ s.require_paths = %w(lib)
19
19
 
20
20
  s.rubygems_version = %q{1.6.2}
21
21
 
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
  s.files = `git ls-files`.split("\n")
24
24
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
25
25
 
26
- s.require_paths = ["lib"]
26
+ s.require_paths = %w(lib)
27
27
 
28
28
  s.add_development_dependency 'test-unit'
29
29
  s.add_development_dependency 'activerecord'
@@ -4,6 +4,8 @@ require "digest/sha1"
4
4
  # Class to handle polymorphic tokens
5
5
  class TokenCode < ActiveRecord::Base
6
6
 
7
+ attr_accessible :name, :valid_until
8
+
7
9
  belongs_to :object, :polymorphic => true
8
10
  before_create :set_token
9
11
 
@@ -76,4 +78,4 @@ class TokenCode < ActiveRecord::Base
76
78
  self.token = generate_token { |token| TokenCode.find_by_token(token).nil? }
77
79
  end
78
80
 
79
- end
81
+ end
@@ -1,3 +1,3 @@
1
1
  module KingTokens
2
- VERSION= '2.0.0'
2
+ VERSION= '2.0.1'
3
3
  end
metadata CHANGED
@@ -1,120 +1,126 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: king_tokens
3
- version: !ruby/object:Gem::Version
4
- hash: 15
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.1
5
5
  prerelease:
6
- segments:
7
- - 2
8
- - 0
9
- - 0
10
- version: 2.0.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Georg Leciejewski
14
9
  - Michael Bumann
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2010-05-04 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
13
+ date: 2013-03-05 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
22
16
  name: test-unit
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
25
18
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
33
23
  type: :development
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: activerecord
37
24
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: !ruby/object:Gem::Requirement
39
26
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: activerecord
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
47
39
  type: :development
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: activesupport
51
40
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
41
+ version_requirements: !ruby/object:Gem::Requirement
53
42
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: activesupport
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
61
55
  type: :development
62
- version_requirements: *id003
63
- - !ruby/object:Gem::Dependency
64
- name: rake
65
56
  prerelease: false
66
- requirement: &id004 !ruby/object:Gem::Requirement
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: rake
65
+ requirement: !ruby/object:Gem::Requirement
67
66
  none: false
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- hash: 3
72
- segments:
73
- - 0
74
- version: "0"
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
75
71
  type: :development
76
- version_requirements: *id004
77
- - !ruby/object:Gem::Dependency
78
- name: rdoc
79
72
  prerelease: false
80
- requirement: &id005 !ruby/object:Gem::Requirement
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: rdoc
81
+ requirement: !ruby/object:Gem::Requirement
81
82
  none: false
82
- requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- hash: 3
86
- segments:
87
- - 0
88
- version: "0"
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
89
87
  type: :development
90
- version_requirements: *id005
91
- - !ruby/object:Gem::Dependency
92
- name: sqlite3
93
88
  prerelease: false
94
- requirement: &id006 !ruby/object:Gem::Requirement
89
+ version_requirements: !ruby/object:Gem::Requirement
95
90
  none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- hash: 3
100
- segments:
101
- - 0
102
- version: "0"
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: sqlite3
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
103
  type: :development
104
- version_requirements: *id006
105
- description: Tokens are a usefull way to give users access to an application. This can be for a limited time or just once. Just think of password resets, changing email, protected rss feed urls, timed out private links
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Tokens are a usefull way to give users access to an application. This
112
+ can be for a limited time or just once. Just think of password resets, changing
113
+ email, protected rss feed urls, timed out private links
106
114
  email: gl@salesking.eu
107
115
  executables: []
108
-
109
116
  extensions: []
110
-
111
- extra_rdoc_files:
112
- - README.rdoc
113
- files:
117
+ extra_rdoc_files:
118
+ - README.md
119
+ files:
114
120
  - .gitignore
115
121
  - Gemfile
116
122
  - MIT-LICENSE
117
- - README.rdoc
123
+ - README.md
118
124
  - Rakefile
119
125
  - king_tokens.gemspec
120
126
  - lib/king_tokens.rb
@@ -127,36 +133,29 @@ files:
127
133
  - test/tokenizer_test.rb
128
134
  homepage: http://github.com/schorsch/king_tokens
129
135
  licenses: []
130
-
131
136
  post_install_message:
132
137
  rdoc_options: []
133
-
134
- require_paths:
138
+ require_paths:
135
139
  - lib
136
- required_ruby_version: !ruby/object:Gem::Requirement
140
+ required_ruby_version: !ruby/object:Gem::Requirement
137
141
  none: false
138
- requirements:
139
- - - ">="
140
- - !ruby/object:Gem::Version
141
- hash: 3
142
- segments:
142
+ requirements:
143
+ - - ! '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ segments:
143
147
  - 0
144
- version: "0"
145
- required_rubygems_version: !ruby/object:Gem::Requirement
148
+ hash: -2455597393221619131
149
+ required_rubygems_version: !ruby/object:Gem::Requirement
146
150
  none: false
147
- requirements:
148
- - - ">="
149
- - !ruby/object:Gem::Version
150
- hash: 3
151
- segments:
152
- - 0
153
- version: "0"
151
+ requirements:
152
+ - - ! '>='
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
154
155
  requirements: []
155
-
156
156
  rubyforge_project:
157
- rubygems_version: 1.8.15
157
+ rubygems_version: 1.8.24
158
158
  signing_key:
159
159
  specification_version: 3
160
160
  summary: Access tokens for any active record object
161
161
  test_files: []
162
-