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.



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

def app_name
  @app_name
end

Instance Method Details

#copy_assetsObject



32
33
34
# File 'lib/generators/admin_panel/install/install_generator.rb', line 32

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

#copy_helpersObject



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

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

#copy_layoutObject



21
22
23
24
25
26
27
28
29
30
# File 'lib/generators/admin_panel/install/install_generator.rb', line 21

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

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

#copy_scaffoldObject



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

def copy_scaffold
  directory 'controllers', 'app/controllers'
  directory 'views', 'app/views'
end

#create_admin_modelObject



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

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



52
53
54
55
56
57
58
59
60
61
62
# File 'lib/generators/admin_panel/install/install_generator.rb', line 52

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

#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



64
65
66
# File 'lib/generators/admin_panel/install/install_generator.rb', line 64

def show_install_message
  readme "README"
end