2009-05-19 10 views

Antwort

7

Sie könnten einfach den Generator ausführen und die Modelle/Migrationen/Fixtures ignorieren.

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

Ich habe nach etwas geschrieben, um dies zu tun, aber es gab kein Interesse von anderen.

17

In rspec-rails-2, das für Rails 3 vorgesehen ist, wurden alle rspec-Generatoren entfernt.

Sie können dieses Problem lösen, indem Sie den Schienenmodellgenerator ausführen. Sie können -s hinzufügen, um vorhandene Dateien zu überspringen, und --migration = false, um das Erstellen der Migrationsdatei zu überspringen.

Wie so:

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

funktioniert nicht mehr auf Schienen 3.2.x – Rubytastic

+3

Arbeitete für mich! Schienen 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

Wenn die Anzahl der fehlenden Spezifikationen eher klein ist, könnten Sie einfach die rails generate Befehle für die einzelnen Komponenten mit fehlenden Spezifikationen laufen.

Wenn ein Konflikt auftritt, einfach die ursprüngliche Datei nicht überschreiben. Der Generator wird die vorhandenen Dateien ignorieren und die fehlenden generieren.