lib/autoproj/base.rb in autoproj-1.7.3.b1 vs lib/autoproj/base.rb in autoproj-1.7.3
- old
+ new
@@ -21,8 +21,29 @@
raise e, "in #{file}: #{e.message}", e.backtrace
else
raise e
end
end
-end
+ @post_import_blocks = Hash.new { |h, k| h[k] = Array.new }
+ class << self
+ attr_reader :post_import_blocks
+ end
+
+ def self.each_post_import_block(pkg, &block)
+ @post_import_blocks[nil].each(&block)
+ if @post_import_blocks.has_key?(pkg)
+ @post_import_blocks[pkg].each(&block)
+ end
+ end
+
+ def self.post_import(*packages, &block)
+ if packages.empty?
+ @post_import_blocks[nil] << block
+ else
+ packages.each do |pkg|
+ @post_import_blocks[pkg] << block
+ end
+ end
+ end
+end