From ea547c84f0137c78a35e230cafd9f3794d6fe4e5 Mon Sep 17 00:00:00 2001 From: benni Date: Mon, 27 Aug 2012 08:24:25 +0200 Subject: [PATCH] Added rake task to execute every rake task for every foodcoop. --- lib/foodsoft_config.rb | 8 ++++++++ lib/tasks/multicoops.rake | 12 ++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 lib/tasks/multicoops.rake diff --git a/lib/foodsoft_config.rb b/lib/foodsoft_config.rb index 4fdd9742..71b64024 100644 --- a/lib/foodsoft_config.rb +++ b/lib/foodsoft_config.rb @@ -24,6 +24,14 @@ class FoodsoftConfig config[key] end + # Loop through each foodcoop and executes the given block after setup config and database + def each_coop + APP_CONFIG.keys.reject { |coop| coop =~ /^(default|development|test|production)$/ }.each do |coop| + select_foodcoop coop + yield coop + end + end + private def set_config(foodcoop) diff --git a/lib/tasks/multicoops.rake b/lib/tasks/multicoops.rake new file mode 100644 index 00000000..6f69d111 --- /dev/null +++ b/lib/tasks/multicoops.rake @@ -0,0 +1,12 @@ +namespace :multicoops do + + desc 'Runs a specific rake task for each registered foodcoop, use rake multicoops:run db:migrate' + task :run => :environment do + task_to_run = ARGV[1] + FoodsoftConfig.each_coop do |coop| + puts "Run '#{task_to_run}' for #{coop}" + Rake::Task[task_to_run].invoke + end + end + +end \ No newline at end of file