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