perens-instant-user 0.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.
data/README.rdoc ADDED
@@ -0,0 +1,56 @@
1
+ = Perens::InstantUser
2
+
3
+ Perens::InstantUser is a Rails Engine that makes it as easy as possible to
4
+ add user management: logins, authentication, sign-up, etc., to your Rails
5
+ application.
6
+
7
+ * All of the user management services are provided by the Devise gem, but
8
+ we've done most of the *work* that it would otherwise take to install devise.
9
+ The engine provides pre-configured routes and a User model.
10
+
11
+ * Rails >= 3.1, Devise >= 2.0.0.rc, and Ruby >= 1.9.3 are required.
12
+ It's time to make the jump to
13
+ Ruby 1.9 if you haven't already done so, as Rails 4.0 will require Ruby
14
+ 1.9.3 or greater.
15
+
16
+ * This engine is in a *very* early state of development.
17
+ There is no inline documentation in the code, and there are no tests!
18
+ But it works (at least for me), and provides
19
+ a good example of how to use Devise in an engine.
20
+
21
+ * My thanks to Devise author and Rails committer José Valim,
22
+ who upon my request added a set of features to Devise that made it possible
23
+ to use Devise from an engine.
24
+
25
+ == Installation
26
+
27
+ * Edit your Gemfile or gemspec to add a dependency on the perens-instant-user gem.
28
+ * <tt>bundle update</tt>
29
+ * <tt>rake perens_instant_user:install:migrations</tt>
30
+ * <tt>rake migrate</tt>
31
+ * Edit <tt>config/routes.rb</tt>, adding this line:
32
+ mount Perens::InstantUser::Engine => '/'
33
+ * Copy http://github.com/plataformatec/devise/blob/master/lib/generators/templates/devise.rb into <tt>config/initializers/devise.rb</tt> and edit it.
34
+ * Edit one of your environment files, like <tt>config/application.rb</tt>, to add the
35
+ URL info to be used in email messages to users from the user management
36
+ system. While testing, this might be:
37
+ config.action_mailer.default_url_options = { :host => 'localhost:3000' }
38
+ but it must be set to the correct external URL when your application is
39
+ running for
40
+ real users.
41
+ * Add <tt>user_authenticate!</tt> and other Devise helpers to your controllers
42
+ as appropriate. See the Devise README.rdoc[https://github.com/plataformatec/devise#readme] for information on the available features.
43
+
44
+ == Bugs
45
+ * Report issues here[https://github.com/BrucePerens/perens-instant-user/issues].
46
+
47
+ == To Do
48
+ * I'm planning to provide a web interface to set the configuration information,
49
+ removing the need to copy and edit the Devise configuration file and the
50
+ environment files.
51
+
52
+ == Why <tt>Perens::InstantUser</tt> instead of <tt>InstantUser</tt>, and why <tt>perens-instant-user</tt> instead of <tt>instant-user</tt>?
53
+ Ruby and Rails are large enough that we should not all be sharing the
54
+ same global namespace. Thus, all of my code will be in the
55
+ <tt>Perens</tt> module and my gem names will start with <tt>perens-</tt>.
56
+
@@ -0,0 +1,10 @@
1
+ class Perens::InstantUser::User < ActiveRecord::Base
2
+ # Include default devise modules. Others available are:
3
+ # :encryptable, :timeoutable and :omniauthable
4
+ devise :database_authenticatable, :registerable,
5
+ :recoverable, :rememberable, :trackable, :validatable,
6
+ :confirmable, :lockable, :token_authenticatable
7
+
8
+ # Setup accessible (or protected) attributes for your model
9
+ attr_accessible :email, :password, :password_confirmation, :remember_me
10
+ end
@@ -0,0 +1,5 @@
1
+ module Perens::InstantUser
2
+ def self.table_name_prefix
3
+ 'perens_instant_user_'
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ Devise.setup do |config|
2
+ config.router_name = :perens_instant_user
3
+ end
data/config/routes.rb ADDED
@@ -0,0 +1,6 @@
1
+ Perens::InstantUser::Engine.routes.draw do
2
+ devise_for :users, {
3
+ class_name: 'Perens::InstantUser::User',
4
+ module: :devise,
5
+ }
6
+ end
@@ -0,0 +1,50 @@
1
+ class CreatePerensInstantUserUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table(:perens_instant_user_users) do |t|
4
+ ## Database authenticatable
5
+ t.string :email, :null => false, :default => ""
6
+ t.string :encrypted_password, :null => false, :default => ""
7
+
8
+ ## Recoverable
9
+ t.string :reset_password_token
10
+ t.datetime :reset_password_sent_at
11
+
12
+ ## Rememberable
13
+ t.datetime :remember_created_at
14
+
15
+ ## Trackable
16
+ t.integer :sign_in_count, :default => 0
17
+ t.datetime :current_sign_in_at
18
+ t.datetime :last_sign_in_at
19
+ t.string :current_sign_in_ip
20
+ t.string :last_sign_in_ip
21
+
22
+ ## Encryptable
23
+ # t.string :password_salt
24
+
25
+ ## Confirmable
26
+ t.string :confirmation_token
27
+ t.datetime :confirmed_at
28
+ t.datetime :confirmation_sent_at
29
+ t.string :unconfirmed_email # Only if using reconfirmable
30
+
31
+ ## Lockable
32
+ t.integer :failed_attempts, :default => 0 # Only if lock strategy is :failed_attempts
33
+ t.string :unlock_token # Only if unlock strategy is :email or :both
34
+ t.datetime :locked_at
35
+
36
+ # Token authenticatable
37
+ t.string :authentication_token
38
+
39
+
40
+ t.timestamps
41
+ end
42
+
43
+ add_index :perens_instant_user_users, :email, :unique => true
44
+ add_index :perens_instant_user_users, :reset_password_token, :unique => true
45
+ add_index :perens_instant_user_users, :confirmation_token, :unique => true
46
+ add_index :perens_instant_user_users, :unlock_token, :unique => true
47
+ add_index :perens_instant_user_users, :authentication_token, :unique => true
48
+ end
49
+
50
+ end
@@ -0,0 +1,12 @@
1
+ require 'rails'
2
+ require 'devise'
3
+
4
+ require 'perens/instant_user/version'
5
+
6
+ module Perens
7
+ module InstantUser
8
+ class Engine < Rails::Engine
9
+ isolate_namespace ::Perens::InstantUser
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ module Perens
2
+ module InstantUser
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,2 @@
1
+ require 'devise'
2
+ require 'perens/instant_user/engine.rb'
File without changes
metadata ADDED
@@ -0,0 +1,122 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: perens-instant-user
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Bruce Perens
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: devise
16
+ requirement: &17906180 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 2.0.0rc
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *17906180
25
+ - !ruby/object:Gem::Dependency
26
+ name: rails
27
+ requirement: &17905020 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 3.2.rc1
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *17905020
36
+ - !ruby/object:Gem::Dependency
37
+ name: haml
38
+ requirement: &17904000 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *17904000
47
+ - !ruby/object:Gem::Dependency
48
+ name: tzinfo
49
+ requirement: &22098660 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *22098660
58
+ - !ruby/object:Gem::Dependency
59
+ name: omniauth
60
+ requirement: &22098240 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *22098240
69
+ - !ruby/object:Gem::Dependency
70
+ name: actionmailer
71
+ requirement: &22097740 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: 3.2.rc1
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *22097740
80
+ description: An engine that implements user and login handling instantly for an application.
81
+ It uses the Devise gem to provide all facilities.
82
+ email:
83
+ - bruce@perens.com
84
+ executables: []
85
+ extensions: []
86
+ extra_rdoc_files: []
87
+ files:
88
+ - ./app/models/perens/instant_user/user.rb
89
+ - ./app/models/perens/instant_user.rb
90
+ - ./perens-instant-user-0.0.1.gem
91
+ - ./db/migrate/20120103011557_create_perens_instant_user_users.rb
92
+ - ./config/routes.rb
93
+ - ./config/initializers/devise.rb
94
+ - ./lib/perens-instant-user.rb
95
+ - ./lib/perens/instant_user/engine.rb
96
+ - ./lib/perens/instant_user/version.rb
97
+ - ./README.rdoc
98
+ homepage: http://perens.com/
99
+ licenses: []
100
+ post_install_message:
101
+ rdoc_options: []
102
+ require_paths:
103
+ - lib
104
+ required_ruby_version: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ! '>='
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ requirements: []
117
+ rubyforge_project: perens-instant-user
118
+ rubygems_version: 1.8.11
119
+ signing_key:
120
+ specification_version: 3
121
+ summary: An engine that implements user and login handling instantly for an application.
122
+ test_files: []