Class: ExpressAdmin::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- ExpressAdmin::Generators::InstallGenerator
- Defined in:
- lib/generators/express_admin/install/install_generator.rb
Instance Attribute Summary collapse
-
#project_class ⇒ Object
readonly
Returns the value of attribute project_class.
-
#project_name ⇒ Object
readonly
Returns the value of attribute project_name.
Instance Method Summary collapse
- #add_express_admin_menu ⇒ Object
- #create_admin_layout ⇒ Object
- #create_application_css ⇒ Object
- #create_application_js ⇒ Object
- #create_common_files ⇒ Object
- #create_custom_devise_login ⇒ Object
- #create_installer ⇒ Object
- #create_menu ⇒ Object
- #insert_mount_point ⇒ Object
- #precompile_assets ⇒ Object
- #require_express_admin ⇒ Object
Instance Attribute Details
#project_class ⇒ Object (readonly)
Returns the value of attribute project_class.
5 6 7 |
# File 'lib/generators/express_admin/install/install_generator.rb', line 5 def project_class @project_class end |
#project_name ⇒ Object (readonly)
Returns the value of attribute project_name.
5 6 7 |
# File 'lib/generators/express_admin/install/install_generator.rb', line 5 def project_name @project_name end |
Instance Method Details
#add_express_admin_menu ⇒ Object
73 74 75 76 77 78 |
# File 'lib/generators/express_admin/install/install_generator.rb', line 73 def if File.exists?(engine_path) inject_into_file engine_path, " include ::ExpressAdmin::Menu::Loader\n", after: "class Engine < ::Rails::Engine\n" end end |
#create_admin_layout ⇒ Object
22 23 24 25 |
# File 'lib/generators/express_admin/install/install_generator.rb', line 22 def create_admin_layout template 'views/layouts/admin.html.et', File.join('app/views/layouts', @project_name, 'admin.html.et') end |
#create_application_css ⇒ Object
39 40 41 42 |
# File 'lib/generators/express_admin/install/install_generator.rb', line 39 def create_application_css template 'assets/stylesheets/application.css', File.join('app/assets/stylesheets', @project_name, 'admin.css') end |
#create_application_js ⇒ Object
34 35 36 37 |
# File 'lib/generators/express_admin/install/install_generator.rb', line 34 def create_application_js template 'assets/javascripts/application.js', File.join('app/assets/javascripts', @project_name, 'admin.js') end |
#create_common_files ⇒ Object
7 8 9 |
# File 'lib/generators/express_admin/install/install_generator.rb', line 7 def create_common_files @project_name = destination_root.split('/').last end |
#create_custom_devise_login ⇒ Object
27 28 29 30 31 32 |
# File 'lib/generators/express_admin/install/install_generator.rb', line 27 def create_custom_devise_login if defined?(Devise) template 'views/devise/sessions/new.html.et', File.join('app/views/devise/sessions/new.html.et') end end |
#create_installer ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/generators/express_admin/install/install_generator.rb', line 11 def create_installer @project_class = @project_name.camelize template 'install/installer.rb.erb', File.join('lib/generators', @project_name, 'install', 'install_generator.rb') template 'install/USAGE', File.join('lib/generators', @project_name, 'install', 'USAGE') empty_directory File.join('lib/generators', @project_name, 'install', 'templates') template 'install/installer_test.rb.erb', File.join('test/lib/generators', @project_name, 'install', 'install_generator_test.rb') end |
#create_menu ⇒ Object
69 70 71 |
# File 'lib/generators/express_admin/install/install_generator.rb', line 69 def template 'config/menu.yml.erb', File.join('config/menu.yml') end |
#insert_mount_point ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/generators/express_admin/install/install_generator.rb', line 44 def insert_mount_point @project_class = @project_name.camelize if File.exists?(engine_path) inject_into_file engine_path, " #{@project_class}::Engine.config.#{@project_name}_mount_point = '/'\n", after: "class Engine < ::Rails::Engine\n" end empty_directory File.join('config', 'initializers') if File.exists?(engine_path) create_file File.join('config', 'initializers', "mount_engine.rb"), "ExpressAdmin::Routes.register do |routes|\n routes.mount #{@project_class}::Engine, at: #{@project_class}::Engine.config.#{@project_name}_mount_point\nend\n" end end |
#precompile_assets ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/generators/express_admin/install/install_generator.rb', line 80 def precompile_assets assets = <<-'EOD' initializer :assets do |config| engine_assets_path = File.join(File.dirname(__FILE__), '..', '..', 'app', 'assets') all_assets = Dir.glob File.join(engine_assets_path, 'stylesheets', '**', '*.css*') all_assets += Dir.glob File.join(engine_assets_path, 'javascripts', '**', '*.js*') all_assets.each {|path| path.gsub!("#{engine_assets_path}/stylesheets/", '')} all_assets.each {|path| path.gsub!("#{engine_assets_path}/javascripts/", '')} Rails.application.config.assets.precompile += all_assets end EOD if File.exists?(engine_path) inject_into_file engine_path, assets, after: "class Engine < ::Rails::Engine\n" end end |
#require_express_admin ⇒ Object
60 61 62 63 64 65 66 67 |
# File 'lib/generators/express_admin/install/install_generator.rb', line 60 def require_express_admin @project_class = @project_name.camelize if File.exists?(engine_path) inject_into_file engine_path, "require 'express_admin'\n", before: "module #{@project_class}" end end |