lib/seed_dump/perform.rb in seed_dump-0.4.2 vs lib/seed_dump/perform.rb in seed_dump-0.4.3

- old
+ new

@@ -25,10 +25,11 @@ @opts['without_protection'] = env['WITHOUT_PROTECTION'].true? || (env['WITHOUT_PROTECTION'].nil? && @opts['timestamps']) @opts['skip_callbacks'] = env['SKIP_CALLBACKS'].true? @opts['models'] = env['MODELS'] || (env['MODEL'] ? env['MODEL'] : "") @opts['file'] = env['FILE'] || "#{Rails.root}/db/seeds.rb" @opts['append'] = (env['APPEND'].true? && File.exists?(@opts['file']) ) + @opts['max'] = env['MAX'] && env['MAX'].to_i > 0 ? env['MAX'].to_i : nil @ar_options = env['LIMIT'].to_i > 0 ? { :limit => env['LIMIT'].to_i } : {} @indent = " " * (env['INDENT'].nil? ? 2 : env['INDENT'].to_i) @opts['models'] = @opts['models'].split(',').collect {|x| x.underscore.singularize.camelize } @opts['schema'] = env['PG_SCHEMA'] @opts['model_dir'] = env['MODEL_DIR'] || @model_dir @@ -104,18 +105,28 @@ } if @opts['without_protection'] options = ', :without_protection => true ' end - - "\n#{model}.create([\n" << rows.join(",\n") << "\n]#{options})\n" + + if @opts['max'] + splited_rows = rows.each_slice(@opts['max']).to_a + maxsarr = [] + splited_rows.each do |sr| + maxsarr << "\n#{model}.create([\n" << sr.join(",\n") << "\n]#{options})\n" + end + maxsarr.join('') + else + "\n#{model}.create([\n" << rows.join(",\n") << "\n]#{options})\n" + end + end def dumpModels @seed_rb = "" @models.sort.each do |model| m = model.constantize - if m.ancestors.include?(ActiveRecord::Base) + if m.ancestors.include?(ActiveRecord::Base) && !m.abstract_class puts "Adding #{model} seeds." if @opts['verbose'] if @opts['skip_callbacks'] @seed_rb << "#{model}.reset_callbacks :save\n" @seed_rb << "#{model}.reset_callbacks :create\n"