draft_generators 0.0.3
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 +7 -0
- data/.codeclimate.yml +6 -0
- data/.document +5 -0
- data/.rspec +1 -0
- data/.rubocop.yml +637 -0
- data/Gemfile +16 -0
- data/LICENSE.txt +20 -0
- data/README.markdown +24 -0
- data/Rakefile +51 -0
- data/VERSION +1 -0
- data/draft_generators.gemspec +120 -0
- data/lib/devise_customization_service.rb +95 -0
- data/lib/draft_generators.rb +8 -0
- data/lib/generators/draft/devise/devise_generator.rb +92 -0
- data/lib/generators/draft/devise/views/templates/confirmations/new.html.erb +49 -0
- data/lib/generators/draft/devise/views/templates/mailer/confirmation_instructions.html.erb +5 -0
- data/lib/generators/draft/devise/views/templates/mailer/email_changed.html.erb +7 -0
- data/lib/generators/draft/devise/views/templates/mailer/password_change.html.erb +3 -0
- data/lib/generators/draft/devise/views/templates/mailer/reset_password_instructions.html.erb +8 -0
- data/lib/generators/draft/devise/views/templates/mailer/unlock_instructions.html.erb +7 -0
- data/lib/generators/draft/devise/views/templates/passwords/edit.html.erb +83 -0
- data/lib/generators/draft/devise/views/templates/passwords/new.html.erb +49 -0
- data/lib/generators/draft/devise/views/templates/registrations/edit.html.erb +159 -0
- data/lib/generators/draft/devise/views/templates/registrations/new.html.erb +113 -0
- data/lib/generators/draft/devise/views/templates/registrations_with_sentinels/edit.html.erb +160 -0
- data/lib/generators/draft/devise/views/templates/registrations_with_sentinels/new.html.erb +102 -0
- data/lib/generators/draft/devise/views/templates/sessions/new.html.erb +51 -0
- data/lib/generators/draft/devise/views/templates/shared/_links.html.erb +25 -0
- data/lib/generators/draft/devise/views/templates/unlocks/new.html.erb +49 -0
- data/lib/generators/draft/devise/views/views_generator.rb +41 -0
- data/lib/generators/draft/layout/USAGE +49 -0
- data/lib/generators/draft/layout/layout_generator.rb +66 -0
- data/lib/generators/draft/layout/templates/_bootstrapcdn_assets.html.erb +10 -0
- data/lib/generators/draft/layout/templates/_flashes.html.erb +23 -0
- data/lib/generators/draft/layout/templates/_navbar.html.erb +75 -0
- data/lib/generators/draft/layout/templates/layout.html.erb +40 -0
- data/lib/generators/draft/model/USAGE +14 -0
- data/lib/generators/draft/model/model_generator.rb +42 -0
- data/lib/generators/draft/resource/USAGE +11 -0
- data/lib/generators/draft/resource/resource_generator.rb +172 -0
- data/lib/generators/draft/resource/templates/controllers/controller.rb +97 -0
- data/lib/generators/draft/resource/templates/controllers/read_only_controller.rb +13 -0
- data/lib/generators/draft/resource/templates/specs/crud_spec.rb +300 -0
- data/lib/generators/draft/resource/templates/specs/factories.rb +32 -0
- data/lib/generators/draft/resource/templates/views/association_new_form.html.erb +67 -0
- data/lib/generators/draft/resource/templates/views/create_row.html.erb +13 -0
- data/lib/generators/draft/resource/templates/views/destroy_row.html.erb +13 -0
- data/lib/generators/draft/resource/templates/views/edit_form.html.erb +72 -0
- data/lib/generators/draft/resource/templates/views/edit_form_with_errors.html.erb +85 -0
- data/lib/generators/draft/resource/templates/views/index.html.erb +102 -0
- data/lib/generators/draft/resource/templates/views/new_form.html.erb +73 -0
- data/lib/generators/draft/resource/templates/views/new_form_with_errors.html.erb +86 -0
- data/lib/generators/draft/resource/templates/views/show.html.erb +90 -0
- data/lib/generators/draft/resource/templates/views/update_row.html.erb +9 -0
- data/lib/generators/draft/scaffold/scaffold_controller_generator.rb +16 -0
- data/lib/generators/draft/scaffold/scaffold_erb_generator.rb +25 -0
- data/lib/generators/draft/scaffold/scaffold_generator.rb +15 -0
- data/lib/generators/draft/scaffold/templates/_card.html.erb +37 -0
- data/lib/generators/draft/scaffold/templates/_form.html.erb +44 -0
- data/lib/generators/draft/scaffold/templates/_list_item.html.erb +13 -0
- data/lib/generators/draft/scaffold/templates/_table_row.html.erb +23 -0
- data/lib/generators/draft/scaffold/templates/edit.html.erb +17 -0
- data/lib/generators/draft/scaffold/templates/index.html.erb +71 -0
- data/lib/generators/draft/scaffold/templates/new.html.erb +17 -0
- data/lib/generators/draft/scaffold/templates/show.html.erb +5 -0
- data/lib/rails_tag_service.rb +47 -0
- metadata +197 -0
@@ -0,0 +1,160 @@
|
|
1
|
+
<div class="row">
|
2
|
+
<div class="offset-md-3 col-md-6">
|
3
|
+
<div class="card mb-3">
|
4
|
+
<h5 class="card-header">
|
5
|
+
Edit <%= resource_name.to_s.titleize %>
|
6
|
+
</h5>
|
7
|
+
|
8
|
+
<div class="card-body">
|
9
|
+
<% was_validated = resource.errors.any? %>
|
10
|
+
<!-- Form html options start -->
|
11
|
+
<% form_html_options = { method: :put, novalidate: true, class: "mb-3" } %>
|
12
|
+
<!-- Form html options end -->
|
13
|
+
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: form_html_options) do |f| %>
|
14
|
+
|
15
|
+
<% if flash[:notice].present? %>
|
16
|
+
<div class="alert alert-info" role="alert">
|
17
|
+
<%= flash[:notice] %>
|
18
|
+
</div>
|
19
|
+
<% end %>
|
20
|
+
|
21
|
+
<% if flash[:alert].present? %>
|
22
|
+
<div class="alert alert-danger" role="alert">
|
23
|
+
<%= flash[:alert] %>
|
24
|
+
</div>
|
25
|
+
<% end %>
|
26
|
+
|
27
|
+
<div class="form-group">
|
28
|
+
<% email_was_invalid = resource.errors.include?(:email) %>
|
29
|
+
|
30
|
+
<% email_class = "form-control" %>
|
31
|
+
|
32
|
+
<% if was_validated %>
|
33
|
+
<% if email_was_invalid %>
|
34
|
+
<% email_class << " is-invalid" %>
|
35
|
+
<% else %>
|
36
|
+
<% email_class << " is-valid" %>
|
37
|
+
<% end %>
|
38
|
+
<% end %>
|
39
|
+
|
40
|
+
<%= f.label :email %>
|
41
|
+
|
42
|
+
<%= f.email_field :email, autofocus: true, class: email_class %>
|
43
|
+
|
44
|
+
<% if email_was_invalid %>
|
45
|
+
<% resource.errors.full_messages_for(:email).each do |message| %>
|
46
|
+
<div class="invalid-feedback d-flex">
|
47
|
+
<%= message %>
|
48
|
+
</div>
|
49
|
+
<% end %>
|
50
|
+
<% end %>
|
51
|
+
|
52
|
+
<% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
|
53
|
+
<small class="form-text text-muted">
|
54
|
+
Currently awaiting confirmation for <%= resource.unconfirmed_email %>.
|
55
|
+
</small>
|
56
|
+
<% end %>
|
57
|
+
</div>
|
58
|
+
|
59
|
+
<div class="form-group">
|
60
|
+
<% password_was_invalid = resource.errors.include?(:password) %>
|
61
|
+
|
62
|
+
<% password_class = "form-control" %>
|
63
|
+
|
64
|
+
<% if was_validated %>
|
65
|
+
<% if password_was_invalid %>
|
66
|
+
<% password_class << " is-invalid" %>
|
67
|
+
<% else %>
|
68
|
+
<% password_class << " is-valid" %>
|
69
|
+
<% end %>
|
70
|
+
<% end %>
|
71
|
+
|
72
|
+
<%= f.label :password %>
|
73
|
+
|
74
|
+
<%= f.password_field :password, class: password_class, autocomplete: "off" %>
|
75
|
+
|
76
|
+
<% if password_was_invalid %>
|
77
|
+
<% resource.errors.full_messages_for(:password).each do |message| %>
|
78
|
+
<div class="invalid-feedback d-flex">
|
79
|
+
<%= message %>
|
80
|
+
</div>
|
81
|
+
<% end %>
|
82
|
+
<% end %>
|
83
|
+
|
84
|
+
<small class="form-text text-muted">
|
85
|
+
Leave blank if you don't want to change it.
|
86
|
+
|
87
|
+
<% if @minimum_password_length %>
|
88
|
+
<%= @minimum_password_length %> characters minimum.
|
89
|
+
<% end %>
|
90
|
+
</small>
|
91
|
+
</div>
|
92
|
+
|
93
|
+
<div class="form-group">
|
94
|
+
<% password_confirmation_was_invalid = resource.errors.include?(:password_confirmation) %>
|
95
|
+
|
96
|
+
<% password_confirmation_class = "form-control" %>
|
97
|
+
|
98
|
+
<% if was_validated %>
|
99
|
+
<% if password_confirmation_was_invalid %>
|
100
|
+
<% password_confirmation_class << " is-invalid" %>
|
101
|
+
<% else %>
|
102
|
+
<% password_confirmation_class << " is-valid" %>
|
103
|
+
<% end %>
|
104
|
+
<% end %>
|
105
|
+
|
106
|
+
<%= f.label :password_confirmation %>
|
107
|
+
|
108
|
+
<%= f.password_field :password_confirmation, class: password_confirmation_class, autocomplete: "off" %>
|
109
|
+
|
110
|
+
<% if password_confirmation_was_invalid %>
|
111
|
+
<% resource.errors.full_messages_for(:password_confirmation).each do |message| %>
|
112
|
+
<div class="invalid-feedback d-flex">
|
113
|
+
<%= message %>
|
114
|
+
</div>
|
115
|
+
<% end %>
|
116
|
+
<% end %>
|
117
|
+
</div>
|
118
|
+
|
119
|
+
<div class="form-group">
|
120
|
+
<% current_password_was_invalid = resource.errors.include?(:current_password) %>
|
121
|
+
|
122
|
+
<% current_password_class = "form-control" %>
|
123
|
+
|
124
|
+
<% if was_validated %>
|
125
|
+
<% if current_password_was_invalid %>
|
126
|
+
<% current_password_class << " is-invalid" %>
|
127
|
+
<% else %>
|
128
|
+
<% current_password_class << " is-valid" %>
|
129
|
+
<% end %>
|
130
|
+
<% end %>
|
131
|
+
|
132
|
+
<%= f.label :current_password %>
|
133
|
+
|
134
|
+
<%= f.password_field :current_password, class: current_password_class, autocomplete: "off" %>
|
135
|
+
|
136
|
+
<% if current_password_was_invalid %>
|
137
|
+
<% resource.errors.full_messages_for(:current_password).each do |message| %>
|
138
|
+
<div class="invalid-feedback d-flex">
|
139
|
+
<%= message %>
|
140
|
+
</div>
|
141
|
+
<% end %>
|
142
|
+
<% end %>
|
143
|
+
|
144
|
+
<small class="form-text text-muted">
|
145
|
+
We need your current password to confirm your changes.
|
146
|
+
</small>
|
147
|
+
</div>
|
148
|
+
|
149
|
+
<%= f.submit "Update", class: "btn btn-block btn-outline-primary" %>
|
150
|
+
<% end %>
|
151
|
+
|
152
|
+
<%= link_to "Back", :back, class: "btn btn-block btn-outline-secondary" %>
|
153
|
+
</div>
|
154
|
+
|
155
|
+
<div class="card-footer">
|
156
|
+
<%= link_to "Cancel my account", registration_path(resource_name), data: { confirm: "Are you sure?" }, class: "btn btn-block btn-link", method: :delete %>
|
157
|
+
</div>
|
158
|
+
</div>
|
159
|
+
</div>
|
160
|
+
</div>
|
@@ -0,0 +1,102 @@
|
|
1
|
+
<div class="row">
|
2
|
+
<div class="offset-md-3 col-md-6">
|
3
|
+
<div class="card mb-3">
|
4
|
+
<h5 class="card-header">
|
5
|
+
<%= resource_name != "user" ? resource_name.to_s.titleize : "" %> Sign Up
|
6
|
+
</h5>
|
7
|
+
|
8
|
+
<div class="card-body">
|
9
|
+
<% was_validated = resource.errors.any? %>
|
10
|
+
<!-- Form html options start -->
|
11
|
+
<% form_html_options = { novalidate: true, class: "mb-3" } %>
|
12
|
+
<!-- Form html options end -->
|
13
|
+
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: form_html_options) do |f| %>
|
14
|
+
|
15
|
+
<div class="form-group">
|
16
|
+
<% email_was_invalid = resource.errors.include?(:email) %>
|
17
|
+
|
18
|
+
<% email_class = "form-control" %>
|
19
|
+
|
20
|
+
<% if was_validated %>
|
21
|
+
<% if email_was_invalid %>
|
22
|
+
<% email_class << " is-invalid" %>
|
23
|
+
<% else %>
|
24
|
+
<% email_class << " is-valid" %>
|
25
|
+
<% end %>
|
26
|
+
<% end %>
|
27
|
+
|
28
|
+
<%= f.label :email %>
|
29
|
+
|
30
|
+
<%= f.email_field :email, class: email_class, autofocus: true %>
|
31
|
+
|
32
|
+
<% if email_was_invalid %>
|
33
|
+
<% resource.errors.full_messages_for(:email).each do |message| %>
|
34
|
+
<div class="invalid-feedback d-flex">
|
35
|
+
<%= message %>
|
36
|
+
</div>
|
37
|
+
<% end %>
|
38
|
+
<% end %>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div class="form-group">
|
42
|
+
<% password_was_invalid = resource.errors.include?(:password) %>
|
43
|
+
|
44
|
+
<% password_class = "form-control" %>
|
45
|
+
|
46
|
+
<% if was_validated %>
|
47
|
+
<% if password_was_invalid %>
|
48
|
+
<% password_class << " is-invalid" %>
|
49
|
+
<% else %>
|
50
|
+
<% password_class << " is-valid" %>
|
51
|
+
<% end %>
|
52
|
+
<% end %>
|
53
|
+
|
54
|
+
<%= f.label :password %>
|
55
|
+
|
56
|
+
<%= f.password_field :password, class: password_class %>
|
57
|
+
|
58
|
+
<% if password_was_invalid %>
|
59
|
+
<% resource.errors.full_messages_for(:password).each do |message| %>
|
60
|
+
<div class="invalid-feedback d-flex">
|
61
|
+
<%= message %>
|
62
|
+
</div>
|
63
|
+
<% end %>
|
64
|
+
<% end %>
|
65
|
+
</div>
|
66
|
+
|
67
|
+
<div class="form-group">
|
68
|
+
<% password_confirmation_was_invalid = resource.errors.include?(:password_confirmation) %>
|
69
|
+
|
70
|
+
<% password_confirmation_class = "form-control" %>
|
71
|
+
|
72
|
+
<% if was_validated %>
|
73
|
+
<% if password_confirmation_was_invalid %>
|
74
|
+
<% password_confirmation_class << " is-invalid" %>
|
75
|
+
<% else %>
|
76
|
+
<% password_confirmation_class << " is-valid" %>
|
77
|
+
<% end %>
|
78
|
+
<% end %>
|
79
|
+
|
80
|
+
<%= f.label :password_confirmation %>
|
81
|
+
|
82
|
+
<%= f.password_field :password_confirmation, class: password_confirmation_class %>
|
83
|
+
|
84
|
+
<% if password_confirmation_was_invalid %>
|
85
|
+
<% resource.errors.full_messages_for(:password_confirmation).each do |message| %>
|
86
|
+
<div class="invalid-feedback d-flex">
|
87
|
+
<%= message %>
|
88
|
+
</div>
|
89
|
+
<% end %>
|
90
|
+
<% end %>
|
91
|
+
</div>
|
92
|
+
|
93
|
+
<%= f.button class: "btn btn-outline-primary btn-block" %>
|
94
|
+
|
95
|
+
<hr>
|
96
|
+
|
97
|
+
<%= render "devise/shared/links" %>
|
98
|
+
<% end %>
|
99
|
+
</div>
|
100
|
+
</div>
|
101
|
+
</div>
|
102
|
+
</div>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<div class="row">
|
2
|
+
<div class="offset-md-3 col-md-6">
|
3
|
+
<div class="card mb-3">
|
4
|
+
<h5 class="card-header">
|
5
|
+
<%= resource_name != "user" ? resource_name.to_s.titleize : "" %> Sign In
|
6
|
+
</h5>
|
7
|
+
|
8
|
+
<div class="card-body">
|
9
|
+
<% if flash[:notice].present? %>
|
10
|
+
<div class="alert alert-info" role="alert">
|
11
|
+
<%= flash[:notice] %>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<% if flash[:alert].present? %>
|
16
|
+
<div class="alert alert-danger" role="alert">
|
17
|
+
<%= flash[:alert] %>
|
18
|
+
</div>
|
19
|
+
<% end %>
|
20
|
+
|
21
|
+
<% form_html_options = { novalidate: true, class: "mb-3" } %>
|
22
|
+
|
23
|
+
<%= form_for(resource, as: resource_name, url: session_path(resource_name), html: form_html_options) do |f| %>
|
24
|
+
<div class="form-group">
|
25
|
+
<%= f.label :email %>
|
26
|
+
<%= f.email_field :email, autofocus: true, class: "form-control" %>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<div class="form-group">
|
30
|
+
<%= f.label :password %>
|
31
|
+
<%= f.password_field :password, autocomplete: "off", class: "form-control" %>
|
32
|
+
</div>
|
33
|
+
|
34
|
+
<% if devise_mapping.rememberable? -%>
|
35
|
+
<div class="form-check mb-3">
|
36
|
+
<%= f.label :remember_me, class: "form-check-label" do %>
|
37
|
+
<%= f.check_box :remember_me, class: "form-check-input" %> Remember me
|
38
|
+
<% end %>
|
39
|
+
</div>
|
40
|
+
<% end -%>
|
41
|
+
|
42
|
+
<%= f.submit "Sign in", class: "btn btn-outline-primary btn-block" %>
|
43
|
+
|
44
|
+
<hr>
|
45
|
+
|
46
|
+
<%= render "devise/shared/links" %>
|
47
|
+
<% end %>
|
48
|
+
</div>
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
</div>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%- if devise_mapping.omniauthable? %>
|
2
|
+
<%- resource_class.omniauth_providers.each do |provider| %>
|
3
|
+
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider), class: "btn btn-block btn-outline-secondary" %>
|
4
|
+
<% end -%>
|
5
|
+
<% end -%>
|
6
|
+
|
7
|
+
<%- if controller_name != "sessions" %>
|
8
|
+
<%= link_to "Sign in", new_session_path(resource_name), class: "btn btn-block btn-outline-secondary" %>
|
9
|
+
<% end -%>
|
10
|
+
|
11
|
+
<%- if devise_mapping.registerable? && controller_name != "registrations" %>
|
12
|
+
<%= link_to "Sign up", new_registration_path(resource_name), class: "btn btn-block btn-outline-secondary" %>
|
13
|
+
<% end -%>
|
14
|
+
|
15
|
+
<%- if devise_mapping.recoverable? && controller_name != "passwords" && controller_name != "registrations" %>
|
16
|
+
<%= link_to "Forgot your password?", new_password_path(resource_name), class: "btn btn-block btn-sm btn-link" %>
|
17
|
+
<% end -%>
|
18
|
+
|
19
|
+
<%- if devise_mapping.confirmable? && controller_name != "confirmations" %>
|
20
|
+
<%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name), class: "btn btn-block btn-sm btn-link" %>
|
21
|
+
<% end -%>
|
22
|
+
|
23
|
+
<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != "unlocks" %>
|
24
|
+
<%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name), class: "btn btn-block btn-sm btn-link" %>
|
25
|
+
<% end -%>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<div class="row">
|
2
|
+
<div class="offset-md-3 col-md-6">
|
3
|
+
<div class="card mb-3">
|
4
|
+
<h5 class="card-header">
|
5
|
+
Resend unlock instructions
|
6
|
+
</h5>
|
7
|
+
|
8
|
+
<div class="card-body">
|
9
|
+
<% was_validated = resource.errors.any? %>
|
10
|
+
|
11
|
+
<% form_html_options = { method: :post, novalidate: true, class: "mb-3" } %>
|
12
|
+
|
13
|
+
<%= form_for(resource, as: resource_name, url: unlock_path(resource_name), html: form_html_options) do |f| %>
|
14
|
+
<div class="form-group">
|
15
|
+
<% email_was_invalid = resource.errors.include?(:email) %>
|
16
|
+
|
17
|
+
<% email_class = "form-control" %>
|
18
|
+
|
19
|
+
<% if was_validated %>
|
20
|
+
<% if email_was_invalid %>
|
21
|
+
<% email_class << " is-invalid" %>
|
22
|
+
<% else %>
|
23
|
+
<% email_class << " is-valid" %>
|
24
|
+
<% end %>
|
25
|
+
<% end %>
|
26
|
+
|
27
|
+
<%= f.label :email %>
|
28
|
+
|
29
|
+
<%= f.email_field :email, class: email_class, autofocus: true %>
|
30
|
+
|
31
|
+
<% if email_was_invalid %>
|
32
|
+
<% resource.errors.full_messages_for(:email).each do |message| %>
|
33
|
+
<div class="invalid-feedback d-flex">
|
34
|
+
<%= message %>
|
35
|
+
</div>
|
36
|
+
<% end %>
|
37
|
+
<% end %>
|
38
|
+
</div>
|
39
|
+
|
40
|
+
<%= f.submit "Resend unlock instructions", class: "btn btn-outline-primary btn-block" %>
|
41
|
+
|
42
|
+
<hr>
|
43
|
+
|
44
|
+
<%= render "devise/shared/links" %>
|
45
|
+
<% end %>
|
46
|
+
</div>
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
</div>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "generators/devise/views_generator"
|
4
|
+
|
5
|
+
module Draft
|
6
|
+
module Devise
|
7
|
+
class FormForGenerator < ::Devise::Generators::FormForGenerator
|
8
|
+
source_root File.expand_path("../templates", __FILE__)
|
9
|
+
class_option :with_sentinels, type: :boolean, default: false, desc: "Skip adding comments to generated files"
|
10
|
+
|
11
|
+
def generate_registrations
|
12
|
+
if with_sentinels?
|
13
|
+
view_directory :registrations_with_sentinels, "app/views/#{plural_scope}/registrations"
|
14
|
+
view_directory :mailer, "app/views/#{plural_scope}/mailer"
|
15
|
+
else
|
16
|
+
view_directory :registrations
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def with_sentinels?
|
21
|
+
options[:with_sentinels]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class ViewsGenerator < ::Devise::Generators::ViewsGenerator
|
26
|
+
desc "Copies Draft Devise views to your application."
|
27
|
+
class_option :with_sentinels, type: :boolean, default: false, desc: "Skip adding comments to generated files"
|
28
|
+
class_option :views, aliases: "-v", type: :array, desc: "Select specific view directories to generate (confirmations, passwords, registrations, sessions, unlocks, mailer)"
|
29
|
+
|
30
|
+
remove_hook_for :form_builder
|
31
|
+
|
32
|
+
def form_builder
|
33
|
+
invoke Draft::Devise::FormForGenerator
|
34
|
+
end
|
35
|
+
|
36
|
+
def with_sentinels?
|
37
|
+
options[:with_sentinels]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
Description:
|
2
|
+
|
3
|
+
Generates a layout file with some handy utilities:
|
4
|
+
|
5
|
+
- Bootstrap (or a Bootswatch)
|
6
|
+
- Font Awesome
|
7
|
+
- A navbar with
|
8
|
+
- links to all detected index pages
|
9
|
+
- links to all detected registration and sign in forms
|
10
|
+
- Components to display flash notices and alerts
|
11
|
+
- A sticky footer
|
12
|
+
|
13
|
+
Specify "none" as the THEME_NAME to use vanilla Bootstrap; or, choose a
|
14
|
+
Bootswatch. As of this writing, available Bootswatches are:
|
15
|
+
|
16
|
+
- cerulean
|
17
|
+
- cosmo
|
18
|
+
- cyborg
|
19
|
+
- darkly
|
20
|
+
- flatly
|
21
|
+
- journal
|
22
|
+
- lumen
|
23
|
+
- none
|
24
|
+
- paper
|
25
|
+
- readable
|
26
|
+
- sandstone
|
27
|
+
- simplex
|
28
|
+
- slate
|
29
|
+
- spacelab
|
30
|
+
- superhero
|
31
|
+
- united
|
32
|
+
- yeti
|
33
|
+
|
34
|
+
WARNING: You will lose any modifications you've made to your current layout
|
35
|
+
if you choose to overwrite it. You can also specify a different filename
|
36
|
+
other than "application" with the --layout-file option.
|
37
|
+
|
38
|
+
Examples:
|
39
|
+
|
40
|
+
rails generate draft:layout
|
41
|
+
|
42
|
+
rails generate draft:layout --theme=paper
|
43
|
+
|
44
|
+
rails generate draft:layout --layout-file=some_other_filename
|
45
|
+
|
46
|
+
rails generate draft:layout --skip-cdn
|
47
|
+
|
48
|
+
(The last one omits links to CDN-hosted Bootstrap CSS, JS, and Font Awesome,
|
49
|
+
in case you are e.g. bundling them yourself using gems.)
|