devise-bootstrap-views 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.
- checksums.yaml +7 -0
- data/.gitignore +22 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +51 -0
- data/Rakefile +2 -0
- data/Screenshot.png +0 -0
- data/app/assets/stylesheets/devise_bootstrap_views.scss +10 -0
- data/app/helpers/devise_bootstrap_views_helper.rb +20 -0
- data/app/views/devise/confirmations/new.html.erb +18 -0
- data/app/views/devise/mailer/confirmation_instructions.html.erb +6 -0
- data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/devise/passwords/edit.html.erb +24 -0
- data/app/views/devise/passwords/new.html.erb +17 -0
- data/app/views/devise/registrations/edit.html.erb +30 -0
- data/app/views/devise/registrations/new.html.erb +24 -0
- data/app/views/devise/sessions/new.html.erb +26 -0
- data/app/views/devise/shared/_links.erb +25 -0
- data/app/views/devise/unlocks/new.html.erb +16 -0
- data/devise-bootstrap-views.gemspec +23 -0
- data/lib/devise-bootstrap-views.rb +23 -0
- data/lib/generators/devise/views/bootstrap_templates/bootstrap_templates_generator.rb +10 -0
- data/lib/generators/devise/views/locale/locale_generator.rb +10 -0
- data/lib/version.rb +3 -0
- data/locales/ca.yml +59 -0
- data/locales/de.yml +110 -0
- data/locales/en.yml +110 -0
- data/locales/es-AR.yml +51 -0
- data/locales/es-ES.yml +59 -0
- data/locales/es.yml +51 -0
- data/locales/fr.yml +51 -0
- data/locales/hu.yml +59 -0
- data/locales/it.yml +51 -0
- data/locales/nl.yml +59 -0
- data/locales/pl.yml +57 -0
- data/locales/pt-BR.yml +51 -0
- data/locales/ru.yml +56 -0
- data/locales/tr.yml +51 -0
- data/locales/zh-CN.yml +57 -0
- data/locales/zh-TW.yml +57 -0
- metadata +112 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 32d447d978731a77f131e95233583426e7ccb681
|
4
|
+
data.tar.gz: f226b1a961d9588ad0aafbdf8d087b269aca2fb5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f133d667f1dbb6ea075a14c23b3d64e4b167d4e1ac68b22617c4e00a50c61fc3add0d15d61abb61e574748adca81eaa9a2c99aa9108309a8d4501af492410386
|
7
|
+
data.tar.gz: 4f3f8db514dc0f32a86c9698d4736eb92c4311ba75a90e6a9aaae2608476f532f27548cc41d4fcded98caf5fc00a3b4d92927e5f6c13dd39740389b1f9602a9d
|
data/.gitignore
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
12
|
+
pkg
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
18
|
+
*.bundle
|
19
|
+
*.so
|
20
|
+
*.o
|
21
|
+
*.a
|
22
|
+
mkmf.log
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Yinghai Zhao
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
# Devise Bootstrap Views
|
2
|
+
|
3
|
+
Here are some of the highlights:
|
4
|
+
|
5
|
+
* Devise views with Bootstrap 3.
|
6
|
+
* Used Bootstrap responsive columns.
|
7
|
+
* I18n Support.
|
8
|
+
|
9
|
+
WARNING:
|
10
|
+
This gem copies lots of its code from [devise-i18n-views](https://github.com/mcasimir/devise-i18n-views) gem.
|
11
|
+
|
12
|
+
## Screenshot
|
13
|
+

|
14
|
+
|
15
|
+
## Installation
|
16
|
+
|
17
|
+
Add this line to your application's Gemfile:
|
18
|
+
|
19
|
+
gem 'devise-bootstrap-views'
|
20
|
+
|
21
|
+
And then execute:
|
22
|
+
|
23
|
+
$ bundle
|
24
|
+
|
25
|
+
Add some minor css fix to your rails asset pipeline manifest
|
26
|
+
|
27
|
+
*= require devise_bootstrap_views
|
28
|
+
|
29
|
+
Then you need to install the required translations in your `config/locales`. You can do this either manually (downloading them from [devise-i18n-views/locales](https://github.com/mcasimir/devise-i18n-views/tree/master/locales)) or through the apposite generator `devise:views:locale`, eg.
|
30
|
+
|
31
|
+
``` sh
|
32
|
+
rails g devise:views:locale it
|
33
|
+
```
|
34
|
+
|
35
|
+
will generate `config/locales/devise.views.it.yml`.
|
36
|
+
|
37
|
+
## Customizing Views
|
38
|
+
|
39
|
+
The `devise:views:bootstrap_templates` generator will copy all views to your application, so you can modify the files as you wish:
|
40
|
+
|
41
|
+
``` sh
|
42
|
+
rails g devise:views:bootstrap_templates
|
43
|
+
```
|
44
|
+
|
45
|
+
## Contributing
|
46
|
+
|
47
|
+
1. Fork it ( https://github.com/hisea/devise-bootstrap-views/fork )
|
48
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
49
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
50
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
51
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
data/Screenshot.png
ADDED
Binary file
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module DeviseBootstrapViewsHelper
|
2
|
+
def devise_error_messages!
|
3
|
+
return '' if resource.errors.empty?
|
4
|
+
|
5
|
+
messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
|
6
|
+
sentence = I18n.t('errors.messages.not_saved',
|
7
|
+
count: resource.errors.count,
|
8
|
+
resource: resource.class.model_name.human.downcase)
|
9
|
+
|
10
|
+
html = <<-HTML
|
11
|
+
<div class="alert alert-danger alert-block">
|
12
|
+
<button type="button" class="close" data-dismiss="alert">x</button>
|
13
|
+
<h5>#{sentence}</h4>
|
14
|
+
#{messages}
|
15
|
+
</div>
|
16
|
+
HTML
|
17
|
+
|
18
|
+
html.html_safe
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<%= devise_error_messages! %>
|
2
|
+
<div class="panel panel-default">
|
3
|
+
<div class="panel-heading">
|
4
|
+
<h4><%= t('.resend_confirmation_instructions', :default => 'Resend confirmation instructions') %></h4>
|
5
|
+
</div>
|
6
|
+
<div class="panel-body">
|
7
|
+
<%= form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => { :method => :post, role: "form" }) do |f| %>
|
8
|
+
<div class="form-group">
|
9
|
+
<%= f.label :email %>
|
10
|
+
<%= f.email_field :email, class: "form-control" %>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<%= f.submit t('.resend_confirmation_instructions', :default => 'Resend confirmation instructions'), class: "btn btn-primary" %>
|
14
|
+
<% end %>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<%= render "devise/shared/links" %>o
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<p><%= t('.greeting', :recipient => @resource.email, :default => "Welcome #{@resource.email}!") %></p>
|
2
|
+
|
3
|
+
<p><%= t('.instruction', :default => "You can confirm your account email through the link below:") %></p>
|
4
|
+
|
5
|
+
<p><%= link_to t('.action', :default => "Confirm my account"),
|
6
|
+
confirmation_url(@resource, :confirmation_token => @resource.confirmation_token, locale: I18n.locale) %></p>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<p><%= t('.greeting', :recipient => @resource.email, :default => "Hello #{@resource.email}!") %></p>
|
2
|
+
|
3
|
+
<p><%= t('.instruction', :default => "Someone has requested a link to change your password, and you can do this through the link below.") %></p>
|
4
|
+
|
5
|
+
<p><%= link_to t('.action', :default => "Change my password"), edit_password_url(@resource, :reset_password_token => @token, locale: I18n.locale) %></p>
|
6
|
+
|
7
|
+
<p><%= t('.instruction_2', :default => "If you didn't request this, please ignore this email.") %></p>
|
8
|
+
<p><%= t('.instruction_3', :default => "Your password won't change until you access the link above and create a new one.") %></p>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<p><%= t('.greeting', :recipient => @resource.email, :default => "Hello #{@resource.email}!") %></p>
|
2
|
+
|
3
|
+
<p><%= t('.message', :default => "Your account has been locked due to an excessive amount of unsuccessful sign in attempts.") %></p>
|
4
|
+
|
5
|
+
<p><%= t('.instruction', :default => "Click the link below to unlock your account:") %></p>
|
6
|
+
|
7
|
+
<p><%= link_to t('.action', :default => "Unlock my account"), unlock_url(@resource, :unlock_token => @resource.unlock_token, locale: I18n.locale) %></p>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<%= devise_error_messages! %>
|
2
|
+
<div class="panel panel-default">
|
3
|
+
<div class="panel-heading">
|
4
|
+
<h4><%= t('.change_your_password', :default => 'Change your password') %></h4>
|
5
|
+
</div>
|
6
|
+
<div class="panel-body">
|
7
|
+
<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put, role: "form" }) do |f| %>
|
8
|
+
<%= f.hidden_field :reset_password_token %>
|
9
|
+
|
10
|
+
<div class="form-group">
|
11
|
+
<%= f.label :password, t('.new_password', :default => 'New password') %>
|
12
|
+
<%= f.password_field :password, class: "form-control" %>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<div class="form-group">
|
16
|
+
<%= f.label :password_confirmation, t('.confirm_new_password', :default => 'Confirm new password') %>
|
17
|
+
<%= f.password_field :password_confirmation, class: "form-control" %>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<%= f.submit t('.change_my_password', :default => 'Change my password'), class: "btn btn-primary" %>
|
21
|
+
<% end %>
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
<%= render "devise/shared/links" %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<%= devise_error_messages! %>
|
2
|
+
<div class="panel panel-default">
|
3
|
+
<div class="panel-heading">
|
4
|
+
<h4><%= t('.forgot_your_password', :default => 'Forgot your password?') %></h4>
|
5
|
+
</div>
|
6
|
+
<div class="panel-body">
|
7
|
+
<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post, role: "form" }) do |f| %>
|
8
|
+
<div class="form-group">
|
9
|
+
<%= f.label :email %>
|
10
|
+
<%= f.email_field :email, class: "form-control" %>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<%= f.submit t('.send_me_reset_password_instructions', :default => "Send me reset password instructions"), class: "btn btn-primary" %>
|
14
|
+
<% end %>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
<%= render "devise/shared/links" %>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<%= devise_error_messages! %>
|
2
|
+
<div class="panel panel-default">
|
3
|
+
<div class="panel-heading">
|
4
|
+
<h4><%= t('.title', :resource => resource_class.model_name.human , :default => 'Edit #{resource_name.to_s.humanize}') %></h4>
|
5
|
+
</div>
|
6
|
+
<div class="panel-body">
|
7
|
+
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
|
8
|
+
<div class="form-group">
|
9
|
+
<%= f.label :email %>
|
10
|
+
<%= f.email_field :email, class: "form-control" %>
|
11
|
+
</div>
|
12
|
+
<div class="form-group">
|
13
|
+
<%= f.label :password %> <i>(<%= t('.leave_blank_if_you_don_t_want_to_change_it', :default => "leave blank if you don't want to change it") %>)</i><br />
|
14
|
+
<%= f.password_field :password, :autocomplete => "off" %>
|
15
|
+
</div>
|
16
|
+
<div class="form-group">
|
17
|
+
<%= f.label :password_confirmation %><br />
|
18
|
+
<%= f.password_field :password_confirmation, class: "form-control" %>
|
19
|
+
</div>
|
20
|
+
<div class="form-group">
|
21
|
+
<%= f.label :current_password %> <i>(<%= t('.we_need_your_current_password_to_confirm_your_changes', :default => 'we need your current password to confirm your changes') %>)</i>
|
22
|
+
<%= f.password_field :current_password, class: "form-control" %>
|
23
|
+
</div>
|
24
|
+
<%= f.submit t('.update', :default => "Update"), class: "btn btn-primary" %></div>
|
25
|
+
<% end %>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<p><%= t('.unhappy', :default => 'Unhappy') %>? <%= link_to t('.cancel_my_account', :default => "Cancel my account"), registration_path(resource_name), :data => { :confirm => t('.are_you_sure', :default => "Are you sure?") }, :method => :delete %>.</p>
|
29
|
+
|
30
|
+
<%= link_to "Back", :back %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<%= devise_error_messages! %>
|
2
|
+
<div class="panel panel-default">
|
3
|
+
<div class="panel-heading">
|
4
|
+
<h4><%= t('.sign_up', :default => "Sign up") %></h4>
|
5
|
+
</div>
|
6
|
+
<div class="panel-body">
|
7
|
+
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), html: { role: "form" }) do |f| %>
|
8
|
+
<div class="form-group">
|
9
|
+
<%= f.label :email %>
|
10
|
+
<%= f.email_field :email, class: "form-control" %>
|
11
|
+
</div>
|
12
|
+
<div class="form-group">
|
13
|
+
<%= f.label :password %><br />
|
14
|
+
<%= f.password_field :password, class: "form-control" %>
|
15
|
+
</div>
|
16
|
+
<div class="form-group">
|
17
|
+
<%= f.label :password_confirmation %>
|
18
|
+
<%= f.password_field :password_confirmation, class: "form-control" %>
|
19
|
+
</div>
|
20
|
+
<%= f.submit t('.sign_up', :default => "Sign up"), class: "btn btn-primary" %>
|
21
|
+
<% end %>
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
<%= render "devise/shared/links" %>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<div class="panel panel-default">
|
2
|
+
<div class="panel-heading">
|
3
|
+
<h4><%= t('.sign_in', :default => "Sign in") %></h4>
|
4
|
+
</div>
|
5
|
+
<div class="panel-body">
|
6
|
+
<%= form_for(resource, as: resource_name, url: session_path(resource_name), html: { role: "form" }) do |f| %>
|
7
|
+
<div class="form-group">
|
8
|
+
<%= f.label :email %>
|
9
|
+
<%= f.email_field :email, autofocus: true, class: "form-control" %>
|
10
|
+
</div>
|
11
|
+
<div class="form-group">
|
12
|
+
<%= f.label :password %>
|
13
|
+
<%= f.password_field :password, autocomplete: "off", class: "form-control" %>
|
14
|
+
</div>
|
15
|
+
<% if devise_mapping.rememberable? %>
|
16
|
+
<div class="checkbox">
|
17
|
+
<label>
|
18
|
+
<%= f.check_box :remember_me %>
|
19
|
+
<%= f.label :remember_me %>
|
20
|
+
</div>
|
21
|
+
<% end %>
|
22
|
+
<%= f.submit t('.sign_in', :default => "Sign in"), class: "btn btn-primary" %>
|
23
|
+
<% end %>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
<%= render "devise/shared/links" %>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%- if controller_name != 'sessions' %>
|
2
|
+
<%= link_to t(".sign_in", :default => "Sign in"), new_session_path(resource_name) %><br />
|
3
|
+
<% end -%>
|
4
|
+
|
5
|
+
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
|
6
|
+
<%= link_to t(".sign_up", :default => "Sign up"), new_registration_path(resource_name) %><br />
|
7
|
+
<% end -%>
|
8
|
+
|
9
|
+
<%- if devise_mapping.recoverable? && controller_name != 'passwords' %>
|
10
|
+
<%= link_to t(".forgot_your_password", :default => "Forgot your password?"), new_password_path(resource_name) %><br />
|
11
|
+
<% end -%>
|
12
|
+
|
13
|
+
<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
|
14
|
+
<%= link_to t('.didn_t_receive_confirmation_instructions', :default => "Didn't receive confirmation instructions?"), new_confirmation_path(resource_name) %><br />
|
15
|
+
<% end -%>
|
16
|
+
|
17
|
+
<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
|
18
|
+
<%= link_to t('.didn_t_receive_unlock_instructions', :default => "Didn't receive unlock instructions?"), new_unlock_path(resource_name) %><br />
|
19
|
+
<% end -%>
|
20
|
+
|
21
|
+
<%- if devise_mapping.omniauthable? %>
|
22
|
+
<%- resource_class.omniauth_providers.each do |provider| %>
|
23
|
+
<%= link_to t('.sign_in_with_provider', :provider => provider.to_s.titleize, :default => "Sign in with #{provider.to_s.titleize}"), omniauth_authorize_path(resource_name, provider) %><br />
|
24
|
+
<% end -%>
|
25
|
+
<% end -%>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%= devise_error_messages! %>
|
2
|
+
<div class="panel panel-default">
|
3
|
+
<div class="panel-heading">
|
4
|
+
<h4><%= t('.resend_unlock_instructions', :default => "Resend unlock instructions") %></h4>
|
5
|
+
</div>
|
6
|
+
<div class="panel-body">
|
7
|
+
<%= form_for(resource, :as => resource_name, :url => unlock_path(resource_name), :html => { :method => :post, html: { role: "form" } }) do |f| %>
|
8
|
+
<div class="form-group">
|
9
|
+
<%= f.label :email %>
|
10
|
+
<%= f.email_field :email, class: "form-control" %>
|
11
|
+
</div>
|
12
|
+
<%= f.submit t('.resend_unlock_instructions', :default => "Resend unlock instructions"), class: "btn btn-primary"%>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
<%= render "devise/shared/links" %>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "devise-bootstrap-views"
|
8
|
+
spec.version = DeviseBootstrapViews::VERSION
|
9
|
+
spec.authors = ["Yinghai Zhao"]
|
10
|
+
spec.email = ["zyinghai@gmail.com"]
|
11
|
+
spec.summary = %q{Devise Bootstrap views with i18n support.}
|
12
|
+
spec.description = %q{Devise Bootstrap views with i18n support.}
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'rails'
|
2
|
+
module DeviseBootstrapViews
|
3
|
+
class Engine < ::Rails::Engine
|
4
|
+
end
|
5
|
+
|
6
|
+
class Railtie < ::Rails::Railtie #:nodoc:
|
7
|
+
initializer 'rails-i18n-views' do |app|
|
8
|
+
DeviseBootstrapViews::Railtie.instance_eval do
|
9
|
+
pattern = pattern_from app.config.i18n.available_locales
|
10
|
+
|
11
|
+
files = Dir[File.join(File.dirname(__FILE__), '../locales', "#{pattern}.yml")]
|
12
|
+
I18n.load_path.concat(files)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
protected
|
17
|
+
|
18
|
+
def self.pattern_from(args)
|
19
|
+
array = Array(args || [])
|
20
|
+
array.blank? ? '*' : "{#{array.join ','}}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module Devise
|
2
|
+
module Views
|
3
|
+
class BootstrapTemplatesGenerator < Rails::Generators::Base
|
4
|
+
source_root File.expand_path('../../../../../../app/views', __FILE__)
|
5
|
+
def copy_views
|
6
|
+
directory("devise", Rails.root.join("app", "views", "devise"))
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module Devise
|
2
|
+
module Views
|
3
|
+
class LocaleGenerator < Rails::Generators::NamedBase
|
4
|
+
source_root File.expand_path('../../../../../../locales', __FILE__)
|
5
|
+
def copy_locale
|
6
|
+
copy_file("#{name}.yml", Rails.root.join("config", "locales", "devise.views.#{name}.yml"))
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|