Class: ScafGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- ScafGenerator
- Defined in:
- lib/generators/scaf/scaf_generator.rb
Instance Method Summary collapse
-
#initialize(*args, &block) ⇒ ScafGenerator
constructor
A new instance of ScafGenerator.
Constructor Details
#initialize(*args, &block) ⇒ ScafGenerator
Returns a new instance of ScafGenerator.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/generators/scaf/scaf_generator.rb', line 10 def initialize(*args, &block) super # Inicializa la variable de instancia @attributos a partir de los argumentos obtener_atributos # Genera un Controller generate "controller", "#{plural_name} --no-assets" # Genera un Scaffold sin Controller ni Vistas ni Assets y con atributo logico <tt>es_activo<tt> generate("scaffold", "#{scaffold_name} #{arguments.join(' ')} es_activo:boolean --no-scaffold-controller --no-assets") # Encuentra el ultimo archivo de migracion creado. # Es necesario porque no se puede predecir el nombre del archivo. # Luego pone valor por defecto de :es_activo en true. migracion = Dir["#{destination_root}/db/migrate/*"].max.split('/').last inject_into_file "db/migrate/#{migracion}", ", :default => true" , :after => 't.boolean :es_activo' # Agrega Default Scope y Metodo Eliminar! al Modelo inject_into_file "app/models/#{singular_name}.rb", "\n\n default_scope where(:es_activo => true)\n\n def eliminar!\n update_attributes :es_activo => false\n end\n" , :after => /ActiveRecord::Base$/ # Agrega controller de administracion en controllers/admin/ template 'admin_controller.rb', "app/controllers/admin/#{plural_name}_controller.rb" # Agrega Vistas en views/admin/ %w[index new edit _formulario].each do |action| template "views/#{action}.html.erb", "app/views/admin/#{plural_name}/#{action}.html.erb" end template "views/nombre.html.erb", "app/views/admin/#{plural_name}/_#{singular_name}.html.erb" # Agrega Ruta en namespace :admin inject_into_file 'config/routes.rb', "\n resources :#{plural_name} do\n post :reordenar, :on => :collection\n end" , :after => /namespace :admin do/ end |