def dependency_versions(args = {}, &bl)
      versions   = args[:versions] || {}
      check_deps = args[:dev] ? dev_deps : deps

      check_deps.each do |dep|
        unless versions.key?(dep.name)
          begin
            gem = Polisher::Gem.retrieve(dep.name)
            versions.merge! gem.versions(args, &bl)
          rescue
            unknown = Polisher::VersionChecker.unknown_version(:all, dep.name, &bl)
            versions.merge! dep.name => unknown
          end
        end

        args[:versions] = versions
      end

      versions
    end
def dependency_versions(args = {}, &bl)
      versions   = args[:versions] || {}
      check_deps = args[:dev] ? dev_deps : deps

      check_deps.each do |dep|
        unless versions.key?(dep.name)
          begin
            gem = Polisher::Gem.retrieve(dep.name)
            versions.merge! gem.versions(args, &bl)
          rescue
            unknown = Polisher::VersionChecker.unknown_version(:all, dep.name, &bl)
            versions.merge! dep.name => unknown
          end
        end

        args[:versions] = versions
      end

      versions
    end
module ClassMethods
 Retreive versions of gem available in all configured targets (optionally recursively)

 @param [Hash] args hash of options to configure retrieval
 @option args [Boolean] :recursive indicates if versions of dependencies
 should also be retrieved
 @option args [Boolean] :dev_deps indicates if versions of development
 dependencies should also be retrieved
 @retrieve versions of all gem dependencies available in configured targets