2009-05-19 8 views

Respuesta

7

Puede ejecutar el generador e ignorar los modelos/migraciones/accesorios.

ruby script/generate rspec_model User --skip-migration --skip-fixture --skip 

He estado buscando escribir algo para hacer esto pero no ha habido ningún interés por parte de los demás.

17

En rspec-rails-2 que está diseñado para Rails 3, se han eliminado todos los generadores de rspec.

Puede resolver este problema ejecutando el generador de modelos de rieles. Puede agregar -s para omitir cualquier archivo existente y --migration = false para omitir la creación del archivo de migración.

así:

rails generate model example -s --migration=false 
+0

ya no funciona en los rieles 3.2.x – Rubytastic

+3

¡Funcionó para mí! rieles 3.2.13 – Elmor

0

https://gist.github.com/omenking/7774140

require 'fileutils' 
namespace :spec do 

    def progress name, x, y 
    print "\r #{name}: #{x}/#{y} %6.2f%%" % [x.to_f/y * 100] 
    end 

    def generate_files name 
    kind  = name.to_s.singularize 
    collection = Dir.glob Rails.root.join('app',name.to_s,'**','*').to_s 
    root  = Rails.root.join('app',name.to_s).to_s<<'/' 
    ext  = case name 
        when :controllers then '_controller.rb' 
        when :models  then '.rb' 
       end 
    count = collection.count 
    collection.each_with_index do |i,index| 
     `rails g #{kind} #{$1} -s` if i =~ /#{root}(.+)#{ext}/ 
     progress name, index, count 
    end 
    end 

    task generate_missing: :environment do 
    generate_files :controllers 
    generate_files :models 
    end 
end 

# if you dont want certian things generated than 
# configure your generators in your application.rb eg. 
# 
# config.generators do |g| 
#  g.orm :active_record 
#  g.template_engine :haml 
#  g.stylesheets false 
#  g.javascripts false 
#  g.test_framework :rspec, 
#      fixture: false, 
#      fixture_replacement: nil 
# end 
# 
1

Si el número de características que faltan es más bien pequeño, puede simplemente ejecutar los comandos rails generate para cada componente con especificaciones que faltan.

Cuando surge un conflicto, simplemente opte por no sobrescribir el archivo original. El generador ignorará los archivos existentes y generará los que faltan.

Cuestiones relacionadas