require 'tmpdir' require 'open-uri' require 'archive/tar/minitar' require 'zlib' require 'fileutils' require 'bundler' Bundler::GemHelper.install_tasks def get_dest_dir(ruby_dir, version, tempdir) dest_dir = File.dirname(__FILE__) + "/lib/debase/ruby_core_source/#{ruby_dir}" return dest_dir if version.include?('-p') patchlevel = ENV['PATCHLEVEL'] if !patchlevel puts "extracting patchlevel from version.h" patchlevel = File.new("#{tempdir}/#{ruby_dir}/version.h").each_line.map do |li| if /#define RUBY_PATCHLEVEL (-?\d+)/ =~ li break $1 else nil end end#.find { |p| not p.nil?} puts "extracted patchlevel '#{patchlevel}'" end if patchlevel dest_dir = dest_dir + "-p" + patchlevel unless patchlevel == '-1' else warn "Unable to extract patchlevel from verion.h assuming there is no patchlevel please use a $PATCHLEVEL to specify one" end dest_dir end desc <