carpeliam (owner)

Revisions

gist: 55259 Download_button fork
public
Public Clone URL: git://gist.github.com/55259.git
hax.rake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  desc "Run with same args as db:fixtures:load, but uses semi-sequential IDs"
  task :load_fixtures => :environment do
    require 'active_record/fixtures'
    
    class Fixtures
      def self.identify(label)
        @@id_lookups ||= {}
        @@id_lookups[label] ||= @@id_lookups.size + 1
      end
    end
    
    ActiveRecord::Base.establish_connection(Rails.env)
    base_dir = ENV['FIXTURES_PATH'] ? File.join(Rails.root, ENV['FIXTURES_PATH']) : File.join(Rails.root, 'test', 'fixtures')
    fixtures_dir = ENV['FIXTURES_DIR'] ? File.join(base_dir, ENV['FIXTURES_DIR']) : base_dir
 
    (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/).map {|f| File.join(fixtures_dir, f) } : Dir.glob(File.join(fixtures_dir, '*.{yml,csv}'))).each do |fixture_file|
      Fixtures.create_fixtures(File.dirname(fixture_file), File.basename(fixture_file, '.*'))
    end
  end