Les fichiers de migrations sont désormais préfixées par un timestamp (exemple : db/migrate/20080618211857_create_admin_user.rb) et non plus par un simple identifiant incrémental. Vos fichiers de fixtures doivent désormais être préfixés par ce même timestamp (exemple : db/fixtures/20080618211857_users.yml).
Voici donc le script lib/create_fixtures.rb mis à jour :
module MigrateFixtures
FIXTURES_LOCATION = File.dirname(__FILE__) + '/../db/fixtures'
MIGRATIONS_LOCATION = File.dirname(__FILE__) + '/../db/migrate'
def self.extended(object)
class << object
alias_method :migrate_without_fixtures, :migrate unless method_defined?(:migrate_without_fixtures)
alias_method :migrate, :migrate_with_fixtures
end
end
def migrate_with_fixtures(direction)
migrate_without_fixtures(direction)
return if :down == direction
migration = current_migration
cnx = ActiveRecord::Base.connection
files = fixture_files.find_all do |file|
file =~ /\/#{migration}_/
end
files.each do |file|
table_name = file.gsub(/.*\/\d+_(.*)\.yml/, '\1')
say_with_time("Adding #{table_name} fixtures") do
Fixtures.new(cnx, table_name, nil, file.gsub(/(.*)\.yml/, '\1')).insert_fixtures
end
end
end
private
def current_migration
version = ActiveRecord::Migrator.current_version
file = migration_files.find do |f|
version = '%03d' % version if version.to_s.size < 3
f =~ /\/#{version}_/
end
index = migration_files.index file
file = index ? migration_files[index + 1] : migration_files.first
file.gsub(/.*\/(\d+)_.*/, '\1')
end
def fixture_files
@fixture_files ||= Dir["#{FIXTURES_LOCATION}/[0-9]*_*.yml"].sort
end
def migration_files
@migration_files ||= Dir["#{MIGRATIONS_LOCATION}/[0-9]*_*.rb"].sort
end
end
ActiveRecord::Migration.extend(MigrateFixtures)
Note : Cette version est compatible avec les anciennes version de rails.
En regardant le script de davux, permettant la colorisation d’un diff, je me suis dit qu’il devait y avoir une possibilité d’intégrer ça de manière simple à subversion.
Collez ce petit script dans un fichier (nous allons prendre ici /usr/local/bin/colorized_diff) et rendez le exécutable :
#! /bin/sh
plus='^[[0;32m'minus='^[[0;31m'diff "$@" | sed 's/^+.*$/'"$plus"'&^[[0m/; s/^-.*$/'"$minus"'&^[[0m/'
Ensuite, modifiez le fichier ~/.subversion/config pour y rajouter ou modifier la ligne suivante dans la section [helpers]:
diff-cmd = /usr/local/bin/colorized_diff
Vous pouvez omettre le chemin (/usr/local/bin) si il est dans votre PATH. Maintenant, un svn diff dans un shell vous affichera les lignes supprimées en rouge et les lignes ajoutées en vert. C'est pas plus mignon ?
Note : ^[ est le caractère d'échappement, vous pouvez le taper dans vim en faisant Ctrl-V puis Echap
Depuis un certain temps que j’écoute de la Jungle / Drum ‘n’ Bass, je me suis dit pourquoi pas essayer de mettre en pagaille réunir mes morceaux favoris en un seul. Non je ne compte pas faire carrière dans la musique, loin de là. Je me suis mis à réaliser ce mix juste pour m’amuser un peu et voir ce que cela pouvait donner.
L’objectif était de pas dépasser les 50 minutes. Le plus dur a été de choisir les pistes (et surtout d’en éliminer) puis à choisir un ordre cohérant et qui passe bien. Au final, je me suis fait plaisir