king_tokens 2.0.0 → 2.0.1

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.
@@ -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
-