devise-guests 0.2.0 → 0.3.0
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.
- data/lib/devise-guests/controllers/helpers.rb +19 -4
- data/lib/devise-guests/engine.rb +10 -0
- data/lib/devise-guests/version.rb +1 -1
- data/lib/generators/active_record/devise_guests_generator.rb +22 -0
- data/lib/generators/active_record/templates/migration_existing.rb +14 -0
- data/lib/generators/devise_guests/devise_guests_generator.rb +18 -0
- data/lib/railties/devise_guests.rake +12 -0
- metadata +8 -4
@@ -30,7 +30,20 @@ module DeviseGuests::Controllers
|
|
30
30
|
|
31
31
|
|
32
32
|
def guest_#{mapping}
|
33
|
-
|
33
|
+
return @guest_#{mapping} if @guest_#{mapping}
|
34
|
+
|
35
|
+
if session[:guest_#{mapping}_id]
|
36
|
+
@guest_#{mapping} = #{class_name}.find_by_email(session[:guest_#{mapping}_id]) rescue nil
|
37
|
+
@guest_#{mapping} = nil if @guest_#{mapping}.respond_to? :guest and !@guest_#{mapping}.guest
|
38
|
+
end
|
39
|
+
|
40
|
+
@guest_#{mapping} ||= begin
|
41
|
+
u = create_guest_#{mapping}(session[:guest_#{mapping}_id])
|
42
|
+
session[:guest_#{mapping}_id] = u.email
|
43
|
+
u
|
44
|
+
end
|
45
|
+
|
46
|
+
@guest_#{mapping}
|
34
47
|
end
|
35
48
|
|
36
49
|
def current_or_guest_#{mapping}
|
@@ -48,9 +61,11 @@ module DeviseGuests::Controllers
|
|
48
61
|
end
|
49
62
|
|
50
63
|
private
|
51
|
-
def create_guest_#{mapping}
|
52
|
-
|
53
|
-
u.
|
64
|
+
def create_guest_#{mapping} email = nil
|
65
|
+
email ||= "guest_" + guest_#{mapping}_unique_suffix + "@example.com"
|
66
|
+
u = #{class_name}.create(:email => email)
|
67
|
+
u.password = u.password_confirmation = email
|
68
|
+
u.guest = true if u.respond_to? :guest
|
54
69
|
u
|
55
70
|
end
|
56
71
|
|
data/lib/devise-guests/engine.rb
CHANGED
@@ -8,5 +8,15 @@ module DeviseGuests
|
|
8
8
|
Devise.include_helpers(DeviseGuests::Controllers)
|
9
9
|
Devise.helpers << DeviseGuests::Controllers::Helpers
|
10
10
|
end
|
11
|
+
|
12
|
+
# This makes our rake tasks visible.
|
13
|
+
rake_tasks do
|
14
|
+
Dir.chdir(File.expand_path(File.join(File.dirname(__FILE__), '..'))) do
|
15
|
+
Dir.glob(File.join('railties', '*.rake')).each do |railtie|
|
16
|
+
load railtie
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
11
21
|
end
|
12
22
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'rails/generators/active_record'
|
2
|
+
require 'generators/devise/orm_helpers'
|
3
|
+
|
4
|
+
module ActiveRecord
|
5
|
+
module Generators
|
6
|
+
class DeviseGuestsGenerator < ActiveRecord::Generators::Base
|
7
|
+
include Devise::Generators::OrmHelpers
|
8
|
+
source_root File.expand_path("../templates", __FILE__)
|
9
|
+
|
10
|
+
def copy_devise_migration
|
11
|
+
migration_template "migration_existing.rb", "db/migrate/add_devise_guests_to_#{table_name}"
|
12
|
+
end
|
13
|
+
|
14
|
+
def migration_data
|
15
|
+
<<RUBY
|
16
|
+
## Database authenticatable
|
17
|
+
t.boolean :guest, :default => false
|
18
|
+
RUBY
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class AddDeviseGuestsTo<%= table_name.camelize %> < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
change_table(:<%= table_name %>) do |t|
|
4
|
+
<%= migration_data -%>
|
5
|
+
end
|
6
|
+
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.down
|
10
|
+
# By default, we don't want to make any assumption about how to roll back a migration when your
|
11
|
+
# model already existed. Please edit below which fields you would like to remove in this migration.
|
12
|
+
raise ActiveRecord::IrreversibleMigration
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module DeviseGuests
|
2
|
+
module Generators
|
3
|
+
class DeviseGuestsGenerator < Rails::Generators::NamedBase
|
4
|
+
include Rails::Generators::ResourceHelpers
|
5
|
+
|
6
|
+
namespace "devise_guests"
|
7
|
+
source_root File.expand_path("../templates", __FILE__)
|
8
|
+
|
9
|
+
desc "Generates devise guests attributes into a model with the given NAME"
|
10
|
+
|
11
|
+
hook_for :orm
|
12
|
+
|
13
|
+
def do_nothing
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
namespace :devise_guests do
|
2
|
+
# task to clean out old guest users
|
3
|
+
# rake devise_guests:delete_old_guest_users[days_old]
|
4
|
+
# example cron entry to delete users older than 7 days at 2:00 AM every day:
|
5
|
+
# 0 2 * * * cd /path/to/your/app && /path/to/rake devise_guests:delete_old_guest_users[7] RAILS_ENV=your_env
|
6
|
+
desc "Removes entries in the users table for guest users that are older than the number of days given."
|
7
|
+
task :delete_old_guest_users, [:days_old] => [:environment] do |t, args|
|
8
|
+
args.with_defaults(:days_old => 7)
|
9
|
+
User.where("guest = ? and updated_at < ?", true, Time.now - args[:days_old].to_i.days).each { |x| x.destroy }
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise-guests
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: devise
|
@@ -142,6 +142,10 @@ files:
|
|
142
142
|
- lib/devise-guests/controllers/url_helpers.rb
|
143
143
|
- lib/devise-guests/engine.rb
|
144
144
|
- lib/devise-guests/version.rb
|
145
|
+
- lib/generators/active_record/devise_guests_generator.rb
|
146
|
+
- lib/generators/active_record/templates/migration_existing.rb
|
147
|
+
- lib/generators/devise_guests/devise_guests_generator.rb
|
148
|
+
- lib/railties/devise_guests.rake
|
145
149
|
- spec/controllers/application_controller_spec.rb
|
146
150
|
- spec/helpers/devise_guests_helpers_spec.rb
|
147
151
|
- spec/integration/simple_integration_spec.rb
|
@@ -168,7 +172,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
168
172
|
version: '0'
|
169
173
|
segments:
|
170
174
|
- 0
|
171
|
-
hash:
|
175
|
+
hash: 2571116811496388903
|
172
176
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
177
|
none: false
|
174
178
|
requirements:
|
@@ -177,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
181
|
version: '0'
|
178
182
|
segments:
|
179
183
|
- 0
|
180
|
-
hash:
|
184
|
+
hash: 2571116811496388903
|
181
185
|
requirements: []
|
182
186
|
rubyforge_project:
|
183
187
|
rubygems_version: 1.8.23
|