devise_invitable 0.3.0 → 0.3.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/Gemfile +3 -0
- data/Gemfile.lock +108 -0
- data/README.rdoc +13 -1
- data/Rakefile +4 -3
- data/VERSION +1 -1
- data/app/controllers/{invitations_controller.rb → devise/invitations_controller.rb} +1 -1
- data/app/views/devise/invitations/edit.html.erb +14 -0
- data/app/views/devise/invitations/new.html.erb +12 -0
- data/app/views/{devise_mailer → devise/mailer}/invitation.html.erb +0 -0
- data/{lib/devise_invitable → config}/locales/en.yml +3 -0
- data/devise_invitable.gemspec +48 -35
- data/lib/devise_invitable.rb +4 -1
- data/lib/devise_invitable/controllers/helpers.rb +3 -2
- data/lib/devise_invitable/controllers/url_helpers.rb +21 -17
- data/lib/devise_invitable/mailer.rb +5 -7
- data/lib/devise_invitable/model.rb +5 -4
- data/lib/devise_invitable/rails.rb +13 -2
- data/lib/devise_invitable/routes.rb +6 -25
- data/lib/devise_invitable/schema.rb +2 -2
- data/test/integration/invitable_test.rb +31 -44
- data/test/integration_tests_helper.rb +22 -3
- data/test/mailers/invitation_test.rb +4 -4
- data/test/model_tests_helper.rb +1 -1
- data/test/models/invitable_test.rb +6 -6
- data/test/models_test.rb +1 -5
- data/test/rails_app/app/controllers/application_controller.rb +1 -8
- data/test/rails_app/app/helpers/application_helper.rb +0 -1
- data/test/rails_app/app/models/user.rb +1 -1
- data/test/rails_app/app/views/layouts/application.html.erb +15 -0
- data/test/rails_app/config.ru +4 -0
- data/test/rails_app/config/application.rb +45 -0
- data/test/rails_app/config/boot.rb +13 -110
- data/test/rails_app/config/environment.rb +4 -43
- data/test/rails_app/config/environments/development.rb +22 -13
- data/test/rails_app/config/environments/production.rb +41 -20
- data/test/rails_app/config/environments/test.rb +35 -28
- data/test/rails_app/config/initializers/backtrace_silencers.rb +1 -1
- data/test/rails_app/config/initializers/devise.rb +82 -45
- data/test/rails_app/config/initializers/inflections.rb +10 -2
- data/test/rails_app/config/initializers/mime_types.rb +5 -0
- data/test/rails_app/config/initializers/secret_token.rb +7 -0
- data/test/rails_app/config/initializers/session_store.rb +2 -9
- data/test/rails_app/config/locales/en.yml +5 -0
- data/test/rails_app/config/routes.rb +3 -2
- data/test/routes_test.rb +4 -4
- data/test/test_helper.rb +7 -36
- metadata +85 -33
- data/app/views/invitations/edit.html.erb +0 -14
- data/app/views/invitations/new.html.erb +0 -12
- data/test/rails_app/config/initializers/new_rails_defaults.rb +0 -21
- data/test/rails_app/vendor/plugins/devise_invitable/init.rb +0 -1
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
devise_invitable (0.3.0)
|
5
|
+
devise (~> 1.1.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: http://rubygems.org/
|
9
|
+
specs:
|
10
|
+
abstract (1.0.0)
|
11
|
+
actionmailer (3.0.0)
|
12
|
+
actionpack (= 3.0.0)
|
13
|
+
mail (~> 2.2.5)
|
14
|
+
actionpack (3.0.0)
|
15
|
+
activemodel (= 3.0.0)
|
16
|
+
activesupport (= 3.0.0)
|
17
|
+
builder (~> 2.1.2)
|
18
|
+
erubis (~> 2.6.6)
|
19
|
+
i18n (~> 0.4.1)
|
20
|
+
rack (~> 1.2.1)
|
21
|
+
rack-mount (~> 0.6.12)
|
22
|
+
rack-test (~> 0.5.4)
|
23
|
+
tzinfo (~> 0.3.23)
|
24
|
+
activemodel (3.0.0)
|
25
|
+
activesupport (= 3.0.0)
|
26
|
+
builder (~> 2.1.2)
|
27
|
+
i18n (~> 0.4.1)
|
28
|
+
activerecord (3.0.0)
|
29
|
+
activemodel (= 3.0.0)
|
30
|
+
activesupport (= 3.0.0)
|
31
|
+
arel (~> 1.0.0)
|
32
|
+
tzinfo (~> 0.3.23)
|
33
|
+
activeresource (3.0.0)
|
34
|
+
activemodel (= 3.0.0)
|
35
|
+
activesupport (= 3.0.0)
|
36
|
+
activesupport (3.0.0)
|
37
|
+
arel (1.0.1)
|
38
|
+
activesupport (~> 3.0.0)
|
39
|
+
bcrypt-ruby (2.1.2)
|
40
|
+
builder (2.1.2)
|
41
|
+
capybara (0.3.9)
|
42
|
+
culerity (>= 0.2.4)
|
43
|
+
mime-types (>= 1.16)
|
44
|
+
nokogiri (>= 1.3.3)
|
45
|
+
rack (>= 1.0.0)
|
46
|
+
rack-test (>= 0.5.4)
|
47
|
+
selenium-webdriver (>= 0.0.3)
|
48
|
+
culerity (0.2.12)
|
49
|
+
devise (1.1.2)
|
50
|
+
bcrypt-ruby (~> 2.1.2)
|
51
|
+
warden (~> 0.10.7)
|
52
|
+
erubis (2.6.6)
|
53
|
+
abstract (>= 1.0.0)
|
54
|
+
ffi (0.6.3)
|
55
|
+
rake (>= 0.8.7)
|
56
|
+
i18n (0.4.1)
|
57
|
+
json_pure (1.4.6)
|
58
|
+
mail (2.2.6)
|
59
|
+
activesupport (>= 2.3.6)
|
60
|
+
mime-types
|
61
|
+
treetop (>= 1.4.5)
|
62
|
+
mime-types (1.16)
|
63
|
+
mocha (0.9.8)
|
64
|
+
rake
|
65
|
+
nokogiri (1.4.3.1)
|
66
|
+
polyglot (0.3.1)
|
67
|
+
rack (1.2.1)
|
68
|
+
rack-mount (0.6.13)
|
69
|
+
rack (>= 1.0.0)
|
70
|
+
rack-test (0.5.4)
|
71
|
+
rack (>= 1.0)
|
72
|
+
rails (3.0.0)
|
73
|
+
actionmailer (= 3.0.0)
|
74
|
+
actionpack (= 3.0.0)
|
75
|
+
activerecord (= 3.0.0)
|
76
|
+
activeresource (= 3.0.0)
|
77
|
+
activesupport (= 3.0.0)
|
78
|
+
bundler (~> 1.0.0)
|
79
|
+
railties (= 3.0.0)
|
80
|
+
railties (3.0.0)
|
81
|
+
actionpack (= 3.0.0)
|
82
|
+
activesupport (= 3.0.0)
|
83
|
+
rake (>= 0.8.4)
|
84
|
+
thor (~> 0.14.0)
|
85
|
+
rake (0.8.7)
|
86
|
+
rubyzip (0.9.4)
|
87
|
+
selenium-webdriver (0.0.28)
|
88
|
+
ffi (>= 0.6.1)
|
89
|
+
json_pure
|
90
|
+
rubyzip
|
91
|
+
sqlite3-ruby (1.3.1)
|
92
|
+
thor (0.14.0)
|
93
|
+
treetop (1.4.8)
|
94
|
+
polyglot (>= 0.3.1)
|
95
|
+
tzinfo (0.3.23)
|
96
|
+
warden (0.10.7)
|
97
|
+
rack (>= 1.0.0)
|
98
|
+
|
99
|
+
PLATFORMS
|
100
|
+
ruby
|
101
|
+
|
102
|
+
DEPENDENCIES
|
103
|
+
capybara (>= 0.3.9)
|
104
|
+
devise (~> 1.1.0)
|
105
|
+
devise_invitable!
|
106
|
+
mocha (>= 0.9.8)
|
107
|
+
rails (~> 3.0.0)
|
108
|
+
sqlite3-ruby
|
data/README.rdoc
CHANGED
@@ -58,6 +58,18 @@ You have to configure mailer as it's required for confirmable and recoverable.
|
|
58
58
|
|
59
59
|
It uses two flash messages, :send_invitation and :updated, which are translated as other flash messages from devise.
|
60
60
|
|
61
|
+
== Sending an invitation
|
62
|
+
|
63
|
+
To send an invitation to a user use send_invitation class model. You must set email in the attributes hash:
|
64
|
+
|
65
|
+
User.send_invitation(:email => 'new_user@example.com')
|
66
|
+
|
67
|
+
To accept an invitation with a token use accept_invitation! class model. You must set invitiation_token attribute, and you can include other attriutes in the hash, which will be updated in the record.
|
68
|
+
|
69
|
+
User.accept_invitation!(:invitation_token => params[:invitation_token])
|
70
|
+
|
71
|
+
Invitations controller implement this. You can go to /users/invitation/new to send an invitation and an email will be sent with a link to accept in invitiation with a URL like /users/invitation/accept?invitation_token=...
|
72
|
+
|
61
73
|
== Adding Invitable to a running application
|
62
74
|
|
63
75
|
Define a migration to add invitable to your model:
|
@@ -74,7 +86,7 @@ Define a migration to add invitable to your model:
|
|
74
86
|
|
75
87
|
Add :invitable to the devise line of your model, or to config.all in devise initializer if your model uses devise :all.
|
76
88
|
|
77
|
-
Override authenticate_resource! filter if you need to customize who can send invitations.
|
89
|
+
Override authenticate_resource! filter if you need to customize who can send invitations as it's explained in controller filters section.
|
78
90
|
|
79
91
|
== Note on Patches/Pull Requests
|
80
92
|
|
data/Rakefile
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'rubygems'
|
2
1
|
require 'rake'
|
3
2
|
|
4
3
|
begin
|
@@ -10,8 +9,10 @@ begin
|
|
10
9
|
gem.email = "sergio@entrecables.com"
|
11
10
|
gem.homepage = "http://github.com/scambra/devise_invitable"
|
12
11
|
gem.authors = ["Sergio Cambra"]
|
13
|
-
gem.add_development_dependency 'mocha'
|
14
|
-
gem.add_development_dependency '
|
12
|
+
gem.add_development_dependency 'mocha', '>= 0.9.8'
|
13
|
+
gem.add_development_dependency 'capybara', '>= 0.3.9'
|
14
|
+
gem.add_development_dependency 'rails', '~> 3.0.0'
|
15
|
+
gem.add_development_dependency 'sqlite3-ruby'
|
15
16
|
gem.add_dependency 'devise', '~> 1.1.0'
|
16
17
|
end
|
17
18
|
Jeweler::GemcutterTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<h2>Set your password</h2>
|
2
|
+
|
3
|
+
<%= form_for resource, :as => resource_name, :url => invitation_path(resource_name), :html => { :method => :put } do |f| %>
|
4
|
+
<%= devise_error_messages! %>
|
5
|
+
<%= f.hidden_field :invitation_token %>
|
6
|
+
|
7
|
+
<p><%= f.label :password %><br />
|
8
|
+
<%= f.password_field :password %></p>
|
9
|
+
|
10
|
+
<p><%= f.label :password_confirmation %><br />
|
11
|
+
<%= f.password_field :password_confirmation %></p>
|
12
|
+
|
13
|
+
<p><%= f.submit "Set my password" %></p>
|
14
|
+
<% end %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<h2>Send invitation</h2>
|
2
|
+
|
3
|
+
<%= form_for resource, :as => resource_name, :url => invitation_path(resource_name) do |f| %>
|
4
|
+
<%= devise_error_messages! %>
|
5
|
+
|
6
|
+
<p><%= f.label :email %><br />
|
7
|
+
<%= f.text_field :email %></p>
|
8
|
+
|
9
|
+
<p><%= f.submit "Send an invitation" %></p>
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<%= link_to "Home", after_sign_in_path_for(resource_name) %><br />
|
File without changes
|
data/devise_invitable.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{devise_invitable}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Sergio Cambra"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-09-13}
|
13
13
|
s.description = %q{It adds support for send invitations by email (it requires to be authenticated) and accept the invitation setting the password}
|
14
14
|
s.email = %q{sergio@entrecables.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -19,20 +19,22 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
21
|
".gitignore",
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
22
24
|
"LICENSE",
|
23
25
|
"README.rdoc",
|
24
26
|
"Rakefile",
|
25
27
|
"VERSION",
|
26
|
-
"app/controllers/invitations_controller.rb",
|
27
|
-
"app/views/
|
28
|
-
"app/views/invitations/
|
29
|
-
"app/views/
|
28
|
+
"app/controllers/devise/invitations_controller.rb",
|
29
|
+
"app/views/devise/invitations/edit.html.erb",
|
30
|
+
"app/views/devise/invitations/new.html.erb",
|
31
|
+
"app/views/devise/mailer/invitation.html.erb",
|
32
|
+
"config/locales/en.yml",
|
30
33
|
"devise_invitable.gemspec",
|
31
34
|
"init.rb",
|
32
35
|
"lib/devise_invitable.rb",
|
33
36
|
"lib/devise_invitable/controllers/helpers.rb",
|
34
37
|
"lib/devise_invitable/controllers/url_helpers.rb",
|
35
|
-
"lib/devise_invitable/locales/en.yml",
|
36
38
|
"lib/devise_invitable/mailer.rb",
|
37
39
|
"lib/devise_invitable/model.rb",
|
38
40
|
"lib/devise_invitable/rails.rb",
|
@@ -51,6 +53,9 @@ Gem::Specification.new do |s|
|
|
51
53
|
"test/rails_app/app/helpers/application_helper.rb",
|
52
54
|
"test/rails_app/app/models/user.rb",
|
53
55
|
"test/rails_app/app/views/home/index.html.erb",
|
56
|
+
"test/rails_app/app/views/layouts/application.html.erb",
|
57
|
+
"test/rails_app/config.ru",
|
58
|
+
"test/rails_app/config/application.rb",
|
54
59
|
"test/rails_app/config/boot.rb",
|
55
60
|
"test/rails_app/config/database.yml",
|
56
61
|
"test/rails_app/config/environment.rb",
|
@@ -60,63 +65,71 @@ Gem::Specification.new do |s|
|
|
60
65
|
"test/rails_app/config/initializers/backtrace_silencers.rb",
|
61
66
|
"test/rails_app/config/initializers/devise.rb",
|
62
67
|
"test/rails_app/config/initializers/inflections.rb",
|
63
|
-
"test/rails_app/config/initializers/
|
68
|
+
"test/rails_app/config/initializers/mime_types.rb",
|
69
|
+
"test/rails_app/config/initializers/secret_token.rb",
|
64
70
|
"test/rails_app/config/initializers/session_store.rb",
|
71
|
+
"test/rails_app/config/locales/en.yml",
|
65
72
|
"test/rails_app/config/routes.rb",
|
66
|
-
"test/rails_app/vendor/plugins/devise_invitable/init.rb",
|
67
73
|
"test/routes_test.rb",
|
68
74
|
"test/test_helper.rb"
|
69
75
|
]
|
70
76
|
s.homepage = %q{http://github.com/scambra/devise_invitable}
|
71
77
|
s.rdoc_options = ["--charset=UTF-8"]
|
72
78
|
s.require_paths = ["lib"]
|
73
|
-
s.rubygems_version = %q{1.3.
|
79
|
+
s.rubygems_version = %q{1.3.7}
|
74
80
|
s.summary = %q{An invitation strategy for devise}
|
75
81
|
s.test_files = [
|
76
|
-
"test/
|
77
|
-
"test/
|
78
|
-
"test/
|
79
|
-
"test/
|
80
|
-
"test/models/
|
81
|
-
"test/models_test.rb",
|
82
|
+
"test/test_helper.rb",
|
83
|
+
"test/integration/invitable_test.rb",
|
84
|
+
"test/routes_test.rb",
|
85
|
+
"test/rails_app/app/helpers/application_helper.rb",
|
86
|
+
"test/rails_app/app/models/user.rb",
|
82
87
|
"test/rails_app/app/controllers/admins_controller.rb",
|
83
88
|
"test/rails_app/app/controllers/application_controller.rb",
|
84
89
|
"test/rails_app/app/controllers/home_controller.rb",
|
85
90
|
"test/rails_app/app/controllers/users_controller.rb",
|
86
|
-
"test/rails_app/
|
87
|
-
"test/rails_app/
|
88
|
-
"test/rails_app/config/
|
91
|
+
"test/rails_app/config/initializers/devise.rb",
|
92
|
+
"test/rails_app/config/initializers/inflections.rb",
|
93
|
+
"test/rails_app/config/initializers/mime_types.rb",
|
94
|
+
"test/rails_app/config/initializers/secret_token.rb",
|
95
|
+
"test/rails_app/config/initializers/session_store.rb",
|
96
|
+
"test/rails_app/config/initializers/backtrace_silencers.rb",
|
89
97
|
"test/rails_app/config/environment.rb",
|
90
|
-
"test/rails_app/config/environments/development.rb",
|
91
98
|
"test/rails_app/config/environments/production.rb",
|
92
99
|
"test/rails_app/config/environments/test.rb",
|
93
|
-
"test/rails_app/config/
|
94
|
-
"test/rails_app/config/initializers/inflections.rb",
|
95
|
-
"test/rails_app/config/initializers/new_rails_defaults.rb",
|
96
|
-
"test/rails_app/config/initializers/session_store.rb",
|
97
|
-
"test/rails_app/config/initializers/devise.rb",
|
100
|
+
"test/rails_app/config/environments/development.rb",
|
98
101
|
"test/rails_app/config/routes.rb",
|
99
|
-
"test/rails_app/
|
100
|
-
"test/
|
101
|
-
"test/
|
102
|
+
"test/rails_app/config/application.rb",
|
103
|
+
"test/rails_app/config/boot.rb",
|
104
|
+
"test/integration_tests_helper.rb",
|
105
|
+
"test/model_tests_helper.rb",
|
106
|
+
"test/models_test.rb",
|
107
|
+
"test/mailers/invitation_test.rb",
|
108
|
+
"test/models/invitable_test.rb"
|
102
109
|
]
|
103
110
|
|
104
111
|
if s.respond_to? :specification_version then
|
105
112
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
106
113
|
s.specification_version = 3
|
107
114
|
|
108
|
-
if Gem::Version.new(Gem::
|
109
|
-
s.add_development_dependency(%q<mocha>, [">= 0"])
|
110
|
-
s.add_development_dependency(%q<
|
115
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
116
|
+
s.add_development_dependency(%q<mocha>, [">= 0.9.8"])
|
117
|
+
s.add_development_dependency(%q<capybara>, [">= 0.3.9"])
|
118
|
+
s.add_development_dependency(%q<rails>, ["~> 3.0.0"])
|
119
|
+
s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
|
111
120
|
s.add_runtime_dependency(%q<devise>, ["~> 1.1.0"])
|
112
121
|
else
|
113
|
-
s.add_dependency(%q<mocha>, [">= 0"])
|
114
|
-
s.add_dependency(%q<
|
122
|
+
s.add_dependency(%q<mocha>, [">= 0.9.8"])
|
123
|
+
s.add_dependency(%q<capybara>, [">= 0.3.9"])
|
124
|
+
s.add_dependency(%q<rails>, ["~> 3.0.0"])
|
125
|
+
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
115
126
|
s.add_dependency(%q<devise>, ["~> 1.1.0"])
|
116
127
|
end
|
117
128
|
else
|
118
|
-
s.add_dependency(%q<mocha>, [">= 0"])
|
119
|
-
s.add_dependency(%q<
|
129
|
+
s.add_dependency(%q<mocha>, [">= 0.9.8"])
|
130
|
+
s.add_dependency(%q<capybara>, [">= 0.3.9"])
|
131
|
+
s.add_dependency(%q<rails>, ["~> 3.0.0"])
|
132
|
+
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
120
133
|
s.add_dependency(%q<devise>, ["~> 1.1.0"])
|
121
134
|
end
|
122
135
|
end
|
data/lib/devise_invitable.rb
CHANGED
@@ -7,11 +7,14 @@ Devise.module_eval do
|
|
7
7
|
mattr_accessor :invite_for
|
8
8
|
@@invite_for = 0
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
|
+
Devise.add_module :invitable, :controller => :invitations, :model => 'devise_invitable/model', :route => :invitation
|
11
12
|
|
12
13
|
module DeviseInvitable; end
|
13
14
|
|
14
15
|
require 'devise_invitable/mailer'
|
15
16
|
require 'devise_invitable/routes'
|
16
17
|
require 'devise_invitable/schema'
|
18
|
+
require 'devise_invitable/controllers/url_helpers'
|
19
|
+
require 'devise_invitable/controllers/helpers'
|
17
20
|
require 'devise_invitable/rails'
|
@@ -1,6 +1,7 @@
|
|
1
|
-
DeviseInvitable::Controllers::Helpers
|
1
|
+
module DeviseInvitable::Controllers::Helpers
|
2
2
|
protected
|
3
3
|
def authenticate_resource!
|
4
|
-
|
4
|
+
send(:"authenticate_#{resource_name}!")
|
5
5
|
end
|
6
6
|
end
|
7
|
+
ActionController::Base.send :include, DeviseInvitable::Controllers::Helpers
|
@@ -1,20 +1,24 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
resource
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
1
|
+
module DeviseInvitable
|
2
|
+
module Controllers
|
3
|
+
module UrlHelpers
|
4
|
+
[:path, :url].each do |path_or_url|
|
5
|
+
[nil, :new_, :accept_].each do |action|
|
6
|
+
class_eval <<-URL_HELPERS, __FILE__, __LINE__ + 1
|
7
|
+
def #{action}invitation_#{path_or_url}(resource, *args)
|
8
|
+
resource = case resource
|
9
|
+
when Symbol, String
|
10
|
+
resource
|
11
|
+
when Class
|
12
|
+
resource.name.underscore
|
13
|
+
else
|
14
|
+
resource.class.name.underscore
|
15
|
+
end
|
16
|
+
|
17
|
+
send("#{action}\#{resource}_invitation_#{path_or_url}", *args)
|
18
|
+
end
|
19
|
+
URL_HELPERS
|
16
20
|
end
|
17
|
-
|
21
|
+
end
|
18
22
|
end
|
19
23
|
end
|
20
|
-
end
|
24
|
+
end
|
@@ -1,9 +1,7 @@
|
|
1
|
-
module DeviseInvitable
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
end
|
1
|
+
module DeviseInvitable::Mailer
|
2
|
+
|
3
|
+
# Deliver an invitation when is requested
|
4
|
+
def invitation(record)
|
5
|
+
setup_mail(record, :invitation)
|
7
6
|
end
|
8
7
|
end
|
9
|
-
Devise::Mailer.send :include, DeviseInvitable::Mailer
|