lib/zen/task/package.rake in zen-0.2.8 vs lib/zen/task/package.rake in zen-0.3b

- old
+ new

@@ -1,46 +1,47 @@ -# Task group for managing packages. namespace :package do - desc 'Lists all installed packages' task :list do - Zen::Package::Registered.each do |name, pkg| - message = <<-MSG -#{name} --------------------- -#{pkg.about} + require File.expand_path('../../../zen', __FILE__) -MSG - - puts message + Zen::Package::REGISTERED.each do |name, pkg| + if pkg.about.nil? or pkg.about.empty? + puts "* #{name}" + else + puts "* #{name}\n #{pkg.about}" + end end end desc 'Migrates a package to a certain version' task :migrate, :name, :version do |task, args| + require File.expand_path('../../../zen', __FILE__) + if !args[:name] abort "You need to specify the name of a package to migrate" end + name = args[:name].to_sym + if !args[:version] version = nil else version = args[:version].to_i end # Validate the package name - if !Zen::Package::Registered[args[:name].to_sym] - abort "The package name \"#{args[:name]}\" is invalid." + if !Zen::Package::REGISTERED[name] + abort "The package name \"#{name}\" is invalid." end - package = Zen::Package::Registered[args[:name].to_sym] + package = Zen::Package::REGISTERED[name] # Get the migrations directory - if package.respond_to?(:migration_dir) and !package.migration_dir.nil? - dir = package.migration_dir + if package.respond_to?(:migrations) and !package.migrations.nil? + dir = package.migrations else - dir = package.directory + '/../../migrations' + abort 'The specified package has no migrations directory set' end # Validate the directory if !File.directory?(dir) abort "The directory #{dir} does not exist." @@ -49,13 +50,8 @@ table = 'migrations_package_' + package.name.to_s Ramaze::Log.info('Migrating package...') # Run all migrations - Zen.database.transaction do - Sequel::Migrator.run( - Zen.database, dir, :table => table, :target => version - ) - end + Sequel::Migrator.run(Zen.database, dir, :table => table, :target => version) end - end