Class: AdminPanel::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/admin_panel/install/install_generator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#app_nameObject (readonly)

Returns the value of attribute app_name.



23
24
25
# File 'lib/generators/admin_panel/install/install_generator.rb', line 23

def app_name
  @app_name
end

Instance Method Details

#copy_assetsObject



36
37
38
# File 'lib/generators/admin_panel/install/install_generator.rb', line 36

def copy_assets
  directory 'assets', 'app/assets'
end

#copy_helpersObject



40
41
42
# File 'lib/generators/admin_panel/install/install_generator.rb', line 40

def copy_helpers
  directory 'helpers', 'app/helpers'
end

#copy_layoutObject



25
26
27
28
29
30
31
32
33
34
# File 'lib/generators/admin_panel/install/install_generator.rb', line 25

def copy_layout
  @app_name = ::Rails.application.class.to_s.split("::").first.humanize
  extension = "html.#{options[:template_engine]}"

  template "layouts/#{options[:template_engine]}/admin/application.html.#{options[:template_engine]}", "app/views/layouts/admin/application.html.#{options[:template_engine]}"
  ['_messages', '_navigation'].each do |file|
    filename = "#{file}.#{extension}"
    copy_file "layouts/#{options[:template_engine]}/admin/#{filename}", "app/views/layouts/admin/#{filename}"
  end
end

#copy_scaffoldObject



44
45
46
47
# File 'lib/generators/admin_panel/install/install_generator.rb', line 44

def copy_scaffold
  directory 'controllers', 'app/controllers'
  directory "views/#{options[:template_engine]}", 'app/views'
end

#create_admin_modelObject



49
50
51
52
53
54
# File 'lib/generators/admin_panel/install/install_generator.rb', line 49

def create_admin_model
  invoke 'active_record:devise', ['admin'], ['--routes', false]
  append_to_file 'db/seeds.rb', %Q(
Admin.create!({ email: '[email protected]', password: 'administrator' })
)
end

#create_routesObject



56
57
58
59
60
61
62
63
64
65
66
# File 'lib/generators/admin_panel/install/install_generator.rb', line 56

def create_routes
  route %Q(
  devise_for :admin,
     :only => [:sessions, :passwords],
     :controllers => { :sessions => 'admin/sessions', :passwords => 'admin/passwords' }

  namespace :admin do
    get '/', to: 'dashboard#index', as: :dashboard
  end
)
end

#generate_kaminari_configObject



19
20
21
# File 'lib/generators/admin_panel/install/install_generator.rb', line 19

def generate_kaminari_config
  invoke 'kaminari:config'
end

#install_deviseObject



11
12
13
# File 'lib/generators/admin_panel/install/install_generator.rb', line 11

def install_devise
  invoke 'devise:install'
end

#install_simple_formObject



15
16
17
# File 'lib/generators/admin_panel/install/install_generator.rb', line 15

def install_simple_form
  invoke 'simple_form:install', [], ['--bootstrap']
end

#show_install_messageObject



68
69
70
# File 'lib/generators/admin_panel/install/install_generator.rb', line 68

def show_install_message
  readme "README"
end