Class: Padrino::Generators::AdminPage
- Includes:
- Actions, Padrino::Generators::Admin::Actions, Thor::Actions
- Defined in:
- padrino-admin/lib/padrino-admin/generators/admin_page.rb
Overview
Defines the generator for creating a new admin page.
Instance Attribute Summary collapse
-
#default_orm ⇒ Object
Returns the value of attribute default_orm.
Class Method Summary collapse
-
.banner ⇒ Object
Defines the “banner” text for the CLI.
-
.source_root ⇒ Object
Define the source template root.
Instance Method Summary collapse
-
#create_controller ⇒ Object
Create controller for admin.
-
#source_paths ⇒ Object
Look for custom template files in a generators folder under the project root.
Methods included from Padrino::Generators::Admin::Actions
#add_project_module, #ext, #fetch_app_name, #orm, #remove_project_module, #supported_ext, #supported_orm
Methods included from Actions
#already_exists?, #app_skeleton, #apply_component_for, #apply_default_fields, #check_app_existence, #destination_root, #empty_directory_with_keep_file, #execute_component_setup, #fetch_app_name, #fetch_component_choice, #fetch_project_name, #in_app_root?, #include_component_module_for, #initializer, #inject_into_file, #insert_hook, #insert_into_gemfile, #insert_middleware, #invalid_fields, #keep_file, #middleware, #recognize_path, #require_contrib, #require_dependencies, #resolve_valid_choice, #retrieve_component_config, #run_bundler, #store_component_choice, #store_component_config, #test?, #tiny?, #valid_choice?, #valid_constant?, #validate_namespace
Instance Attribute Details
#default_orm ⇒ Object
Returns the value of attribute default_orm.
8 9 10 |
# File 'padrino-admin/lib/padrino-admin/generators/admin_page.rb', line 8 def default_orm @default_orm end |
Class Method Details
.banner ⇒ Object
Defines the “banner” text for the CLI.
16 |
# File 'padrino-admin/lib/padrino-admin/generators/admin_page.rb', line 16 def self.; "padrino-gen admin_page [model]"; end |
.source_root ⇒ Object
Define the source template root.
14 |
# File 'padrino-admin/lib/padrino-admin/generators/admin_page.rb', line 14 def self.source_root; File.(File.dirname(__FILE__)); end |
Instance Method Details
#create_controller ⇒ Object
Create controller for admin.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'padrino-admin/lib/padrino-admin/generators/admin_page.rb', line 42 def create_controller self.destination_root = [:root] if in_app_root? @app_name = fetch_app_name @admin_name = [:admin_name].classify @admin_path = [:admin_name].underscore @admin_model = [:admin_model] models.each do |model| @orm = default_orm || Padrino::Admin::Generators::Orm.new(model, adapter) self.behavior = :revoke if [:destroy] empty_directory destination_root(@admin_path+"/views/#{@orm.name_plural}") template "templates/page/controller.rb.tt", destination_root(@admin_path+"/controllers/#{@orm.name_plural}.rb") template "templates/#{ext}/page/_form.#{ext}.tt", destination_root(@admin_path+"/views/#{@orm.name_plural}/_form.#{ext}") template "templates/#{ext}/page/edit.#{ext}.tt", destination_root(@admin_path+"/views/#{@orm.name_plural}/edit.#{ext}") template "templates/#{ext}/page/index.#{ext}.tt", destination_root(@admin_path+"/views/#{@orm.name_plural}/index.#{ext}") template "templates/#{ext}/page/new.#{ext}.tt", destination_root(@admin_path+"/views/#{@orm.name_plural}/new.#{ext}") [:destroy] ? remove_project_module(@orm.name_plural) : add_project_module(@orm.name_plural) end else say "You are not at the root of a Padrino application! (config/boot.rb not found)" end end |
#source_paths ⇒ Object
Look for custom template files in a generators folder under the project root.
24 25 26 27 28 29 30 |
# File 'padrino-admin/lib/padrino-admin/generators/admin_page.rb', line 24 def source_paths if File.exist? destination_root('generators') ["#{destination_root('generators')}", File.(File.dirname(__FILE__))] else [File.(File.dirname(__FILE__))] end end |