class Shoestrap::AdminGenerator

Public Instance Methods

add_before_filters() click to toggle source
# 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() click to toggle source
# 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
disable_registration() click to toggle source
# File lib/generators/shoestrap/admin_generator.rb, line 43
def disable_registration
  gsub_file 'app/models/admin.rb', / :registerable,/, ''
end
generate_admin_model() click to toggle source

FIXME: set editable attributes => could be fixed by dynamic editable attributes generation in cms generator

# 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() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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