devise_account_expireable 0.0.1 → 0.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.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NDBmYzVhOWI3Y2UwZWNjN2Q5NDc4MWM1MGI3YmFkYjI4YTYxZjA5Mg==
5
+ data.tar.gz: !binary |-
6
+ NTJiMGFmMGRhYzJlMDAwNjhjNDE5YTc4NjZjNzk2MmY5OWY3ODU2Ng==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ MTA3ODM3MzlmOWM1MDM2ZTIyYzQ5YTZiMDc0YTc3OGEwZDNlZGE4YmJiYzhj
10
+ NTFmNzM1ZWFiNjY1NmNhZjE3Yjk2MzkzYmI2NGVhMzRkOWYzZTRkNjhmMGMy
11
+ MDAzMWJhMTJlYWY1Y2JkNzRiNWRlNWVhYWQ5MTU5MjZiYzQ4ODg=
12
+ data.tar.gz: !binary |-
13
+ OTNlZTVkOTU2Y2QyMDY5ZWNiNGMxMDgxMGFkZjZhOTdjMTI0NTFiMDVlYzJk
14
+ OTZhMTlhN2UyMTQwMmIzY2MzMjMwOTFmZjMwNmYyMTQ1MWM0YmE0YzIyNTlj
15
+ NjM4YmYyZTYyMDkwZTg4NTBhYTQxM2ZkMzg5NjE2YTA2NjZhZDE=
data/README.md CHANGED
@@ -14,13 +14,65 @@ Or install it yourself as:
14
14
 
15
15
  $ gem install devise_account_expireable
16
16
 
17
- ## Usage
17
+ ## Setup and Configuration
18
18
 
19
- 1. Install the migration: `rails g devise_account_expireable`
20
- 2. `rake db:migrate`
21
- 3. Add `:account_expireable` to the devise line of you account (User) model.
22
- `devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :account_expireable`
23
- 4. Add a way through your admin panel of setting the attribute `:expires_at` to a date/time on the account (User) model.
19
+ 1. Generate the migration
20
+
21
+ ```
22
+ $ rails g devise_account_expireable`
23
+ ```
24
+
25
+ 2. Migrate
26
+
27
+ ```
28
+ $ rake db:migrate
29
+ ```
30
+
31
+ 3. Add `:account_expireable` to the devise line of you account (`User`) model.
32
+
33
+ ```ruby
34
+ devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :account_expireable`
35
+ ```
36
+
37
+ 4. (Optional) Add a way through your admin panel of setting the attribute `:expires_at` to a date/time (`DateTime`) on the account (`User`) model.
38
+
39
+ ## Expiring and Unexpiring a User account
40
+
41
+ If you want to expire User u1 now, without immediate persistence to DB:
42
+
43
+ ```ruby
44
+ u1.expire_now
45
+ ```
46
+
47
+ If you want to expire User u1 now, with immediate persistence to DB:
48
+
49
+ ```ruby
50
+ u1.expire_now!
51
+ ```
52
+
53
+ If you want to expire User u1 at a future DateTime (like DateTime.now.end_of_day), without immediate persistence to DB:
54
+
55
+ ```ruby
56
+ u1.expire_at DateTime.now.end_of_day
57
+ ```
58
+
59
+ If you want to expire User u1 at a future DateTime (like DateTime.now.end_of_day), with immediate persistence to DB:
60
+
61
+ ```ruby
62
+ u1.expire_at! DateTime.now.end_of_day
63
+ ```
64
+
65
+ If you want to unexpire User u1 now, without immediate persistence to DB:
66
+
67
+ ```ruby
68
+ u1.unexpire_now
69
+ ```
70
+
71
+ If you want to unexpire User u1 now, with immediate persistence to DB:
72
+
73
+ ```ruby
74
+ u1.unexpire_now!
75
+ ```
24
76
 
25
77
  ## Contributing
26
78
 
@@ -2,8 +2,8 @@
2
2
  require File.expand_path('../lib/devise_account_expireable/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.authors = ["Justin McNally"]
6
- gem.email = ["justin@kohactive.com"]
5
+ gem.authors = ["Justin McNally", "Brendten Eickstaedt"]
6
+ gem.email = ["justin@kohactive.com", "brendten@brendteneickstaedt.com"]
7
7
  gem.description = %q{Expire a user's account at a certain date}
8
8
  gem.summary = %q{At a certain date make a user's account not work}
9
9
  gem.homepage = ""
@@ -1,16 +1,12 @@
1
1
  require "devise_account_expireable/version"
2
2
 
3
+ require 'devise_account_expireable/rails'
3
4
 
4
5
  unless defined?(Devise)
5
6
  require 'devise'
6
7
  end
7
8
 
8
- require 'devise_account_expireable'
9
-
10
9
  Devise.add_module :account_expireable, :model => 'devise_account_expireable/model'
11
10
 
12
-
13
11
  module DeviseAccountExpireable
14
12
  end
15
-
16
- require 'devise_account_expireable/rails'
@@ -1,10 +1,8 @@
1
1
  module Devise
2
2
  module Models
3
- # Trace information about your user sign in. It tracks the following columns:
3
+ # Allow for expiration date on Devise resources. Adds attribute:
4
4
 
5
- # * resource_id
6
- # * sign_in_at
7
- # * sign_out_at
5
+ # * expires_at
8
6
 
9
7
  module AccountExpireable
10
8
  extend ActiveSupport::Concern
@@ -13,16 +11,41 @@ module Devise
13
11
  expires_at.present? && expires_at < DateTime.now
14
12
  end
15
13
 
14
+ def expire_now
15
+ expire_at
16
+ end
17
+
18
+ def expire_now!
19
+ expire_at!
20
+ end
21
+
22
+ def unexpire_now
23
+ expire_at nil
24
+ end
25
+
26
+ def unexpire_now!
27
+ expire_at! nil
28
+ end
29
+
30
+ def expire_at(date_time = DateTime.now)
31
+ self.expires_at = date_time
32
+ end
16
33
 
34
+ def expire_at!(date_time = DateTime.now)
35
+ expire_at(date_time)
36
+ save
37
+ end
17
38
 
18
39
  def self.required_fields(klass)
19
40
  attributes = []
20
41
  attributes << :expires_at
21
42
  attributes
22
43
  end
44
+
23
45
  def access_locked?
24
46
  expired?
25
47
  end
48
+
26
49
  def active_for_authentication?
27
50
  super && !expired?
28
51
  end
@@ -1,5 +1,3 @@
1
- require 'devise_account_expireable'
2
-
3
1
  module DeviseAccountExpireable
4
2
  class Engine < ::Rails::Engine
5
3
 
@@ -1,3 +1,3 @@
1
1
  module DeviseAccountExpireable
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,20 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_account_expireable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.0.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Justin McNally
8
+ - Brendten Eickstaedt
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-12 00:00:00.000000000 Z
12
+ date: 2013-11-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: devise
16
16
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
17
  requirements:
19
18
  - - ! '>='
20
19
  - !ruby/object:Gem::Version
@@ -22,7 +21,6 @@ dependencies:
22
21
  type: :runtime
23
22
  prerelease: false
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
24
  requirements:
27
25
  - - ! '>='
28
26
  - !ruby/object:Gem::Version
@@ -30,7 +28,6 @@ dependencies:
30
28
  - !ruby/object:Gem::Dependency
31
29
  name: rails
32
30
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
31
  requirements:
35
32
  - - ! '>='
36
33
  - !ruby/object:Gem::Version
@@ -38,7 +35,6 @@ dependencies:
38
35
  type: :runtime
39
36
  prerelease: false
40
37
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
38
  requirements:
43
39
  - - ! '>='
44
40
  - !ruby/object:Gem::Version
@@ -46,6 +42,7 @@ dependencies:
46
42
  description: Expire a user's account at a certain date
47
43
  email:
48
44
  - justin@kohactive.com
45
+ - brendten@brendteneickstaedt.com
49
46
  executables: []
50
47
  extensions: []
51
48
  extra_rdoc_files: []
@@ -65,26 +62,26 @@ files:
65
62
  - lib/generators/devise_account_expireable/templates/migration.rb
66
63
  homepage: ''
67
64
  licenses: []
65
+ metadata: {}
68
66
  post_install_message:
69
67
  rdoc_options: []
70
68
  require_paths:
71
69
  - lib
72
70
  required_ruby_version: !ruby/object:Gem::Requirement
73
- none: false
74
71
  requirements:
75
72
  - - ! '>='
76
73
  - !ruby/object:Gem::Version
77
74
  version: '0'
78
75
  required_rubygems_version: !ruby/object:Gem::Requirement
79
- none: false
80
76
  requirements:
81
77
  - - ! '>='
82
78
  - !ruby/object:Gem::Version
83
79
  version: '0'
84
80
  requirements: []
85
81
  rubyforge_project:
86
- rubygems_version: 1.8.24
82
+ rubygems_version: 2.0.5
87
83
  signing_key:
88
- specification_version: 3
84
+ specification_version: 4
89
85
  summary: At a certain date make a user's account not work
90
86
  test_files: []
87
+ has_rdoc: