Class: Shoestrap::AdminGenerator
Instance Method Summary
collapse
shoestrap_logger, #source_paths
Instance Method Details
#add_before_filters ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/generators/shoestrap/admin_generator.rb', line 47
def add_before_filters
inject_into_file 'app/controllers/shoestrap/base_controller.rb', "before_filter :authenticate_admin!\n\n", before: 'def show'
inject_into_file 'config/initializers/kuhsaft.rb', before: ' Kuhsaft::Engine.configure do' do
<<-eos.gsub(/^ {4}/, '').chomp
Kuhsaft::Cms::AdminController.class_eval do
before_filter :authenticate_admin!
end
eos
end
end
|
#add_gems_and_bundle ⇒ Object
15
16
17
18
19
20
21
22
|
# File 'lib/generators/shoestrap/admin_generator.rb', line 15
def add_gems_and_bundle
gem 'devise'
gem 'devise-i18n'
Shell.exec('bundle')
ENV['BUNDLE_GEMFILE'] = File.join(Dir.pwd, 'Gemfile')
require 'bundler'
Bundler.require(:default)
end
|
#add_logout_link ⇒ Object
69
70
71
72
73
|
# File 'lib/generators/shoestrap/admin_generator.rb', line 69
def add_logout_link
inject_into_file 'app/views/kuhsaft/cms/admin/_main_navigation.html.haml',
" = link_to t('.logout'), destroy_admin_session_path, :method => :delete\n",
after: "%p.navbar-text.pull-right\n"
end
|
#disable_registration ⇒ Object
43
44
45
|
# File 'lib/generators/shoestrap/admin_generator.rb', line 43
def disable_registration
gsub_file 'app/models/admin.rb', / :registerable,/, ''
end
|
#generate_admin_model ⇒ Object
FIXME: set editable attributes => could be fixed by dynamic editable attributes generation in cms generator
11
12
13
|
# File 'lib/generators/shoestrap/admin_generator.rb', line 11
def generate_admin_model
generate 'shoestrap:cms', 'admin', 'first_name:string last_name:string'
end
|
#install_translations ⇒ Object
64
65
66
67
|
# File 'lib/generators/shoestrap/admin_generator.rb', line 64
def install_translations
copy_file 'translations/devise_admin.de.yml', 'config/locales/de/devise_admin.yml'
copy_file 'translations/admin.de.yml', 'config/locales/de/admin.yml', force: true
end
|
#install_views ⇒ Object
59
60
61
62
|
# File 'lib/generators/shoestrap/admin_generator.rb', line 59
def install_views
copy_file 'devise.html.haml', 'app/views/layouts/devise.html.haml'
directory 'devise_views', 'app/views/admins'
end
|
#setup_devise ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/generators/shoestrap/admin_generator.rb', line 24
def setup_devise
generate 'devise:install'
generate 'devise', 'admin'
gsub_file 'config/initializers/devise.rb', ' # config.scoped_views = false', ' config.scoped_views = true'
inject_into_file 'config/initializers/devise.rb', before: '# Use this hook to configure devise mailer, warden hooks and so forth.' do
<<-eos.gsub(/^ {8}/, '').chomp
Rails.application.config.to_prepare do
devise_layout = 'devise'
Devise::SessionsController.layout devise_layout
Devise::RegistrationsController.layout devise_layout
Devise::ConfirmationsController.layout devise_layout
Devise::UnlocksController.layout devise_layout
Devise::PasswordsController.layout devise_layout
end
eos
end
end
|