rant 0.3.8 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/NEWS +19 -0
 - data/README +51 -24
 - data/Rantfile +7 -8
 - data/doc/advanced.rdoc +3 -1
 - data/doc/package.rdoc +280 -0
 - data/doc/rantfile.rdoc +9 -19
 - data/doc/rubyproject.rdoc +24 -16
 - data/lib/rant/archive/minitar.rb +983 -0
 - data/lib/rant/archive/rubyzip/ioextras.rb +122 -0
 - data/lib/rant/archive/rubyzip/stdrubyext.rb +114 -0
 - data/lib/rant/archive/rubyzip/tempfile_bugfixed.rb +195 -0
 - data/lib/rant/archive/rubyzip.rb +1575 -0
 - data/lib/rant/import/archive/tgz.rb +49 -0
 - data/lib/rant/import/archive/zip.rb +67 -0
 - data/lib/rant/import/archive.rb +312 -0
 - data/lib/rant/import/autoclean.rb +2 -2
 - data/lib/rant/import/c/dependencies.rb +3 -3
 - data/lib/rant/import/clean.rb +1 -1
 - data/lib/rant/import/directedrule.rb +1 -1
 - data/lib/rant/import/package/tgz.rb +35 -0
 - data/lib/rant/import/package/zip.rb +36 -0
 - data/lib/rant/import/rubydoc.rb +1 -1
 - data/lib/rant/import/rubypackage.rb +19 -77
 - data/lib/rant/import/rubytest.rb +1 -1
 - data/lib/rant/import/subfile.rb +28 -14
 - data/lib/rant/import/win32/rubycmdwrapper.rb +1 -1
 - data/lib/rant/import.rb +36 -16
 - data/lib/rant/plugin/csharp.rb +1 -1
 - data/lib/rant/rantenv.rb +2 -13
 - data/lib/rant/rantfile.rb +11 -11
 - data/lib/rant/rantlib.rb +7 -3
 - data/lib/rant/rantsys.rb +53 -2
 - data/lib/rant/rantvar.rb +62 -1
 - data/misc/TODO +41 -0
 - data/{devel-notes → misc/devel-notes} +6 -0
 - data/misc/mt.rb +3 -0
 - data/misc/t.rb +18 -0
 - data/test/import/c/dependencies/test_c_dependencies.rb +18 -0
 - data/test/import/package/MANIFEST +4 -0
 - data/test/import/package/Rantfile +49 -0
 - data/test/import/package/deep/sub/sub/f1 +1 -0
 - data/test/import/package/sub/f1 +1 -0
 - data/test/import/package/sub2/f1 +1 -0
 - data/test/import/package/test_package.rb +425 -0
 - data/test/import/subfile/Rantfile +8 -0
 - data/test/import/subfile/test_subfile.rb +12 -0
 - data/test/project_rb1/rantfile.rb +3 -4
 - data/test/project_rb1/test_project_rb1.rb +16 -40
 - data/test/rant-import/test_rant-import.rb +3 -3
 - data/test/test_filelist.rb +39 -2
 - data/test/tutil.rb +89 -3
 - metadata +35 -6
 - data/TODO +0 -21
 - data/lib/rant/import/package.rb +0 -258
 - /data/{rantmethods.rb → misc/rantmethods.rb} +0 -0
 
| 
         @@ -1,6 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         | 
| 
       2 
2 
     | 
    
         
             
            require 'test/unit'
         
     | 
| 
       3 
     | 
    
         
            -
            require 'rant/rantlib'
         
     | 
| 
       4 
3 
     | 
    
         
             
            require 'tutil'
         
     | 
| 
       5 
4 
     | 
    
         | 
| 
       6 
5 
     | 
    
         
             
            $testProjectRb1Dir = File.expand_path(File.dirname(__FILE__))
         
     | 
| 
         @@ -11,12 +10,10 @@ class TestProjectRb1 < Test::Unit::TestCase 
     | 
|
| 
       11 
10 
     | 
    
         
             
            	    test/text test/tc_wgrep.rb README test_project_rb1.rb
         
     | 
| 
       12 
11 
     | 
    
         
             
            	    rantfile.rb)
         
     | 
| 
       13 
12 
     | 
    
         
             
            	# Ensure we run in test directory.
         
     | 
| 
       14 
     | 
    
         
            -
            	Dir.chdir($testProjectRb1Dir) 
     | 
| 
      
 13 
     | 
    
         
            +
            	Dir.chdir($testProjectRb1Dir)
         
     | 
| 
       15 
14 
     | 
    
         
             
                end
         
     | 
| 
       16 
15 
     | 
    
         
             
                def teardown
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
            	    assert_equal(Rant.run(%w(clean)), 0)
         
     | 
| 
       19 
     | 
    
         
            -
            	end
         
     | 
| 
      
 16 
     | 
    
         
            +
                    assert_rant("clean")
         
     | 
| 
       20 
17 
     | 
    
         
             
            	manifest = @manifest.dup
         
     | 
| 
       21 
18 
     | 
    
         
             
            	check_manifest "after clean: "
         
     | 
| 
       22 
19 
     | 
    
         
             
                end
         
     | 
| 
         @@ -31,9 +28,7 @@ class TestProjectRb1 < Test::Unit::TestCase 
     | 
|
| 
       31 
28 
     | 
    
         
             
            	}
         
     | 
| 
       32 
29 
     | 
    
         
             
                end
         
     | 
| 
       33 
30 
     | 
    
         
             
                def test_doc
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
            	    assert_equal(Rant.run(%w(doc)), 0)
         
     | 
| 
       36 
     | 
    
         
            -
            	end
         
     | 
| 
      
 31 
     | 
    
         
            +
                    assert_rant("doc")
         
     | 
| 
       37 
32 
     | 
    
         
             
            	assert(test(?d, "doc"),
         
     | 
| 
       38 
33 
     | 
    
         
             
            	    "RDoc task should generate dir `doc'")
         
     | 
| 
       39 
34 
     | 
    
         
             
            	assert(test(?f, "doc/index.html"),
         
     | 
| 
         @@ -45,26 +40,12 @@ class TestProjectRb1 < Test::Unit::TestCase 
     | 
|
| 
       45 
40 
     | 
    
         
             
            	    "README should be in html docs")
         
     | 
| 
       46 
41 
     | 
    
         
             
                end
         
     | 
| 
       47 
42 
     | 
    
         
             
                def test_test
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
            	    assert_equal(0, Rant.run(%w(test)))
         
     | 
| 
       50 
     | 
    
         
            -
            	end
         
     | 
| 
      
 43 
     | 
    
         
            +
                    assert_rant("test")
         
     | 
| 
       51 
44 
     | 
    
         
             
                end
         
     | 
| 
       52 
45 
     | 
    
         
             
                def test_package
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
            	    assert_equal(0, Rant.run(%w(pkg)))
         
     | 
| 
       55 
     | 
    
         
            -
            	end
         
     | 
| 
      
 46 
     | 
    
         
            +
                    assert_rant("pkg")
         
     | 
| 
       56 
47 
     | 
    
         
             
            	assert(test(?d, "packages"),
         
     | 
| 
       57 
48 
     | 
    
         
             
            	    "task `pkg' should create dir `packages'")
         
     | 
| 
       58 
     | 
    
         
            -
            	begin
         
     | 
| 
       59 
     | 
    
         
            -
            	    have_tar = !`tar --help`.empty?
         
     | 
| 
       60 
     | 
    
         
            -
            	rescue
         
     | 
| 
       61 
     | 
    
         
            -
            	    have_tar = false
         
     | 
| 
       62 
     | 
    
         
            -
            	end
         
     | 
| 
       63 
     | 
    
         
            -
            	begin
         
     | 
| 
       64 
     | 
    
         
            -
            	    have_zip = !`zip -help`.empty?
         
     | 
| 
       65 
     | 
    
         
            -
            	rescue
         
     | 
| 
       66 
     | 
    
         
            -
            	    have_zip = false
         
     | 
| 
       67 
     | 
    
         
            -
            	end
         
     | 
| 
       68 
49 
     | 
    
         
             
            	have_gem = false
         
     | 
| 
       69 
50 
     | 
    
         
             
            	pkg_base = "packages/wgrep-1.0.0"
         
     | 
| 
       70 
51 
     | 
    
         
             
            	begin
         
     | 
| 
         @@ -72,21 +53,13 @@ class TestProjectRb1 < Test::Unit::TestCase 
     | 
|
| 
       72 
53 
     | 
    
         
             
            	    have_gem = true
         
     | 
| 
       73 
54 
     | 
    
         
             
            	rescue LoadError
         
     | 
| 
       74 
55 
     | 
    
         
             
            	end
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
            	    verify_tar "packages", "wgrep-1.0.0", ".tar.gz"
         
     | 
| 
       80 
     | 
    
         
            -
            	else
         
     | 
| 
       81 
     | 
    
         
            -
            	    puts "*** tar not available ***"
         
     | 
| 
       82 
     | 
    
         
            -
            	end
         
     | 
| 
       83 
     | 
    
         
            -
            	if have_zip
         
     | 
| 
      
 56 
     | 
    
         
            +
                    tar_fn = pkg_base + ".tar.gz"
         
     | 
| 
      
 57 
     | 
    
         
            +
                    assert(test(?f, tar_fn),
         
     | 
| 
      
 58 
     | 
    
         
            +
                        "tar is available, so a tar.gz should have been built")
         
     | 
| 
      
 59 
     | 
    
         
            +
                    verify_tar "packages", "wgrep-1.0.0", ".tar.gz"
         
     | 
| 
       84 
60 
     | 
    
         
             
            	    assert(test(?f, pkg_base + ".zip"),
         
     | 
| 
       85 
61 
     | 
    
         
             
            		"zip is available, so a zip should have been built")
         
     | 
| 
       86 
62 
     | 
    
         
             
            	    verify_zip "packages", "wgrep-1.0.0", ".zip"
         
     | 
| 
       87 
     | 
    
         
            -
            	else
         
     | 
| 
       88 
     | 
    
         
            -
            	    puts "*** zip not available ***"
         
     | 
| 
       89 
     | 
    
         
            -
            	end
         
     | 
| 
       90 
63 
     | 
    
         
             
            	if have_gem
         
     | 
| 
       91 
64 
     | 
    
         
             
            	    assert(test(?f, pkg_base + ".gem"),
         
     | 
| 
       92 
65 
     | 
    
         
             
            		"gem is available, so a gem should have been built")
         
     | 
| 
         @@ -103,7 +76,8 @@ class TestProjectRb1 < Test::Unit::TestCase 
     | 
|
| 
       103 
76 
     | 
    
         
             
            	FileUtils.mkdir tmp_dir
         
     | 
| 
       104 
77 
     | 
    
         
             
            	FileUtils.cp tar_fn, tmp_dir
         
     | 
| 
       105 
78 
     | 
    
         
             
            	FileUtils.cd tmp_dir do
         
     | 
| 
       106 
     | 
    
         
            -
             
     | 
| 
      
 79 
     | 
    
         
            +
                        #`tar xzf #{tar_fn}`
         
     | 
| 
      
 80 
     | 
    
         
            +
                        unpack_archive :tgz, tar_fn
         
     | 
| 
       107 
81 
     | 
    
         
             
            	    assert(test(?d, pkg_base),
         
     | 
| 
       108 
82 
     | 
    
         
             
            		"`#{pkg_base}' should be root directory of all files in tar")
         
     | 
| 
       109 
83 
     | 
    
         
             
            	    FileUtils.cd pkg_base do
         
     | 
| 
         @@ -123,7 +97,8 @@ class TestProjectRb1 < Test::Unit::TestCase 
     | 
|
| 
       123 
97 
     | 
    
         
             
            	FileUtils.mkdir tmp_dir
         
     | 
| 
       124 
98 
     | 
    
         
             
            	FileUtils.cp zip_fn, tmp_dir
         
     | 
| 
       125 
99 
     | 
    
         
             
            	FileUtils.cd tmp_dir do
         
     | 
| 
       126 
     | 
    
         
            -
             
     | 
| 
      
 100 
     | 
    
         
            +
                        #`unzip -q #{zip_fn}`
         
     | 
| 
      
 101 
     | 
    
         
            +
                        unpack_archive :zip, zip_fn
         
     | 
| 
       127 
102 
     | 
    
         
             
            	    assert(test(?d, pkg_base),
         
     | 
| 
       128 
103 
     | 
    
         
             
            		"`#{pkg_base}' should be root directory of all files in zip")
         
     | 
| 
       129 
104 
     | 
    
         
             
            	    FileUtils.cd pkg_base do
         
     | 
| 
         @@ -142,12 +117,13 @@ class TestProjectRb1 < Test::Unit::TestCase 
     | 
|
| 
       142 
117 
     | 
    
         
             
            	# TODO: some out, err checking
         
     | 
| 
       143 
118 
     | 
    
         | 
| 
       144 
119 
     | 
    
         
             
            	# run the monolithic rant script
         
     | 
| 
       145 
     | 
    
         
            -
             
     | 
| 
      
 120 
     | 
    
         
            +
                    #out = `#{Rant::Env::RUBY} make -T`
         
     | 
| 
      
 121 
     | 
    
         
            +
                    out = run_ruby("make", "-T")
         
     | 
| 
       146 
122 
     | 
    
         
             
            	assert_equal(0, $?,
         
     | 
| 
       147 
123 
     | 
    
         
             
            	    "imported `rant -T' should return 0")
         
     | 
| 
       148 
124 
     | 
    
         
             
            	assert_match(/\bpkg\b/, out,
         
     | 
| 
       149 
125 
     | 
    
         
             
            	    "imported `rant -T' should list described task `pkg'")
         
     | 
| 
       150 
126 
     | 
    
         
             
                ensure
         
     | 
| 
       151 
     | 
    
         
            -
             
     | 
| 
      
 127 
     | 
    
         
            +
                    FileUtils.rm_f "make"
         
     | 
| 
       152 
128 
     | 
    
         
             
                end
         
     | 
| 
       153 
129 
     | 
    
         
             
            end
         
     | 
| 
         @@ -29,7 +29,7 @@ class TestRantImport < Test::Unit::TestCase 
     | 
|
| 
       29 
29 
     | 
    
         
             
            	open("mylib.t/rant/import/mygen.rb", "w") { |f|
         
     | 
| 
       30 
30 
     | 
    
         
             
            	    f << <<-EOF
         
     | 
| 
       31 
31 
     | 
    
         
             
            	    mygen = Object.new
         
     | 
| 
       32 
     | 
    
         
            -
            	    def mygen. 
     | 
| 
      
 32 
     | 
    
         
            +
            	    def mygen.rant_gen(rac, ch, args, &block)
         
     | 
| 
       33 
33 
     | 
    
         
             
            		tn = args.first || "mygen"
         
     | 
| 
       34 
34 
     | 
    
         
             
            		rac.task(:__caller__ => ch, tn => []) do |t|
         
     | 
| 
       35 
35 
     | 
    
         
             
            		    puts "Greetings from `" + t.name + "', generated by MyGen."
         
     | 
| 
         @@ -73,7 +73,7 @@ class TestRantImport < Test::Unit::TestCase 
     | 
|
| 
       73 
73 
     | 
    
         
             
            	    module Rant::Generators
         
     | 
| 
       74 
74 
     | 
    
         
             
            		module Sub
         
     | 
| 
       75 
75 
     | 
    
         
             
            		    class T
         
     | 
| 
       76 
     | 
    
         
            -
            			def self. 
     | 
| 
      
 76 
     | 
    
         
            +
            			def self.rant_gen(rac, ch, args, &blk)
         
     | 
| 
       77 
77 
     | 
    
         
             
            			    raise "no ch" unless Hash === ch
         
     | 
| 
       78 
78 
     | 
    
         
             
            			    rac.cx.task args.first do |t|
         
     | 
| 
       79 
79 
     | 
    
         
             
            				puts args
         
     | 
| 
         @@ -122,7 +122,7 @@ class TestRantImport < Test::Unit::TestCase 
     | 
|
| 
       122 
122 
     | 
    
         
             
            	    module Rant::Generators
         
     | 
| 
       123 
123 
     | 
    
         
             
            		module Sub2
         
     | 
| 
       124 
124 
     | 
    
         
             
            		    class T
         
     | 
| 
       125 
     | 
    
         
            -
            			def self. 
     | 
| 
      
 125 
     | 
    
         
            +
            			def self.rant_gen(rac, ch, args, &blk)
         
     | 
| 
       126 
126 
     | 
    
         
             
            			    rac.cx.task args.first do |t|
         
     | 
| 
       127 
127 
     | 
    
         
             
            				misc_print(args)
         
     | 
| 
       128 
128 
     | 
    
         
             
            			    end
         
     | 
    
        data/test/test_filelist.rb
    CHANGED
    
    | 
         @@ -158,6 +158,15 @@ class TestFileList < Test::Unit::TestCase 
     | 
|
| 
       158 
158 
     | 
    
         
             
            	    assert_equal(1, l2.size)
         
     | 
| 
       159 
159 
     | 
    
         
             
            	end
         
     | 
| 
       160 
160 
     | 
    
         
             
                end
         
     | 
| 
      
 161 
     | 
    
         
            +
                def test_add_array
         
     | 
| 
      
 162 
     | 
    
         
            +
            	touch_temp %w(1.t 2.t) do
         
     | 
| 
      
 163 
     | 
    
         
            +
            	    l1 = fl "*.t"
         
     | 
| 
      
 164 
     | 
    
         
            +
            	    l2 = l1 + %w(x)
         
     | 
| 
      
 165 
     | 
    
         
            +
            	    assert_equal(2, l1.size)
         
     | 
| 
      
 166 
     | 
    
         
            +
            	    assert_equal(3, l2.size)
         
     | 
| 
      
 167 
     | 
    
         
            +
            	    assert(l2.include?("x"))
         
     | 
| 
      
 168 
     | 
    
         
            +
            	end
         
     | 
| 
      
 169 
     | 
    
         
            +
                end
         
     | 
| 
       161 
170 
     | 
    
         
             
                def test_glob
         
     | 
| 
       162 
171 
     | 
    
         
             
            	touch_temp %w(t.t1 t.t2) do
         
     | 
| 
       163 
172 
     | 
    
         
             
            	    l = fl "*.t1"
         
     | 
| 
         @@ -287,8 +296,36 @@ class TestFileList < Test::Unit::TestCase 
     | 
|
| 
       287 
296 
     | 
    
         
             
            	    l2 = cx.sys["*.t"]
         
     | 
| 
       288 
297 
     | 
    
         
             
            	    assert_equal(4, l1.size)
         
     | 
| 
       289 
298 
     | 
    
         
             
            	    assert_equal(2, l2.size)
         
     | 
| 
       290 
     | 
    
         
            -
            	    %w(a.t .a.t b.t .b.t).each { |f| 
     | 
| 
       291 
     | 
    
         
            -
             
     | 
| 
      
 299 
     | 
    
         
            +
            	    %w(a.t .a.t b.t .b.t).each { |f|
         
     | 
| 
      
 300 
     | 
    
         
            +
                            assert(l1.include?(f))
         
     | 
| 
      
 301 
     | 
    
         
            +
                        }
         
     | 
| 
      
 302 
     | 
    
         
            +
            	    %w(a.t b.t ).each { |f|
         
     | 
| 
      
 303 
     | 
    
         
            +
                            assert(l2.include?(f))
         
     | 
| 
      
 304 
     | 
    
         
            +
                        }
         
     | 
| 
       292 
305 
     | 
    
         
             
            	end
         
     | 
| 
       293 
306 
     | 
    
         
             
                end
         
     | 
| 
      
 307 
     | 
    
         
            +
                def test_add_no_dir
         
     | 
| 
      
 308 
     | 
    
         
            +
                    cx = Rant::RantApp.new.cx
         
     | 
| 
      
 309 
     | 
    
         
            +
                    FileUtils.mkdir "tfl.t"
         
     | 
| 
      
 310 
     | 
    
         
            +
                    FileUtils.mkdir "tfl.tt"
         
     | 
| 
      
 311 
     | 
    
         
            +
                    touch_temp %w(a.t a.tt) do
         
     | 
| 
      
 312 
     | 
    
         
            +
                        l1 = cx.sys["*.t"]
         
     | 
| 
      
 313 
     | 
    
         
            +
                        l1 += cx.sys["*.tt"].no_dir
         
     | 
| 
      
 314 
     | 
    
         
            +
                        assert_equal(3, l1.size)
         
     | 
| 
      
 315 
     | 
    
         
            +
                        %w(tfl.t a.t a.tt).each { |f|
         
     | 
| 
      
 316 
     | 
    
         
            +
                            assert(l1.include?(f))
         
     | 
| 
      
 317 
     | 
    
         
            +
                        }
         
     | 
| 
      
 318 
     | 
    
         
            +
                    end
         
     | 
| 
      
 319 
     | 
    
         
            +
                ensure
         
     | 
| 
      
 320 
     | 
    
         
            +
                    FileUtils.rm_rf %w(tfl.t tfl.tt)
         
     | 
| 
      
 321 
     | 
    
         
            +
                end
         
     | 
| 
      
 322 
     | 
    
         
            +
                def test_exclude_arrows_op
         
     | 
| 
      
 323 
     | 
    
         
            +
                    cx = Rant::RantApp.new.cx
         
     | 
| 
      
 324 
     | 
    
         
            +
                    touch_temp %w(a.t b.t) do
         
     | 
| 
      
 325 
     | 
    
         
            +
                        fl = cx.sys["*.t"]
         
     | 
| 
      
 326 
     | 
    
         
            +
                        fl.exclude "*.t"
         
     | 
| 
      
 327 
     | 
    
         
            +
                        fl << "a.t"
         
     | 
| 
      
 328 
     | 
    
         
            +
                        assert(fl.include?("a.t"))
         
     | 
| 
      
 329 
     | 
    
         
            +
                    end
         
     | 
| 
      
 330 
     | 
    
         
            +
                end
         
     | 
| 
       294 
331 
     | 
    
         
             
            end
         
     | 
    
        data/test/tutil.rb
    CHANGED
    
    | 
         @@ -10,6 +10,7 @@ module Test 
     | 
|
| 
       10 
10 
     | 
    
         
             
            	    def assert_rant(*args)
         
     | 
| 
       11 
11 
     | 
    
         
             
            		res = 0
         
     | 
| 
       12 
12 
     | 
    
         
             
            		capture = true
         
     | 
| 
      
 13 
     | 
    
         
            +
                            newproc = false
         
     | 
| 
       13 
14 
     | 
    
         
             
            		args.flatten!
         
     | 
| 
       14 
15 
     | 
    
         
             
            		args.reject! { |arg|
         
     | 
| 
       15 
16 
     | 
    
         
             
            		    if Symbol === arg
         
     | 
| 
         @@ -17,6 +18,7 @@ module Test 
     | 
|
| 
       17 
18 
     | 
    
         
             
            			when :fail: res = 1
         
     | 
| 
       18 
19 
     | 
    
         
             
            			when :v: capture = false
         
     | 
| 
       19 
20 
     | 
    
         
             
            			when :verbose: capture = false
         
     | 
| 
      
 21 
     | 
    
         
            +
                                    when :x: newproc = true
         
     | 
| 
       20 
22 
     | 
    
         
             
            			else
         
     | 
| 
       21 
23 
     | 
    
         
             
            			    raise "No such option -- #{arg}"
         
     | 
| 
       22 
24 
     | 
    
         
             
            			end
         
     | 
| 
         @@ -25,6 +27,17 @@ module Test 
     | 
|
| 
       25 
27 
     | 
    
         
             
            			false
         
     | 
| 
       26 
28 
     | 
    
         
             
            		    end
         
     | 
| 
       27 
29 
     | 
    
         
             
            		}
         
     | 
| 
      
 30 
     | 
    
         
            +
                            if newproc
         
     | 
| 
      
 31 
     | 
    
         
            +
                                if capture
         
     | 
| 
      
 32 
     | 
    
         
            +
                                    # TODO: stderr
         
     | 
| 
      
 33 
     | 
    
         
            +
                                    `#{Rant::Sys.sp(Rant::Env::RUBY)} #{Rant::Sys.sp(RANT_BIN)} #{args.flatten.join(' ')}`
         
     | 
| 
      
 34 
     | 
    
         
            +
                                else
         
     | 
| 
      
 35 
     | 
    
         
            +
                                    system("#{Rant::Sys.sp(Rant::Env::RUBY)} " +
         
     | 
| 
      
 36 
     | 
    
         
            +
                                        #{Rant::Sys.sp(RANT_BIN)} " +
         
     | 
| 
      
 37 
     | 
    
         
            +
                                        "#{args.flatten.join(' ')}")
         
     | 
| 
      
 38 
     | 
    
         
            +
                                end
         
     | 
| 
      
 39 
     | 
    
         
            +
                                assert_equal(res, $?.exitstatus)
         
     | 
| 
      
 40 
     | 
    
         
            +
                            end
         
     | 
| 
       28 
41 
     | 
    
         
             
            		if capture
         
     | 
| 
       29 
42 
     | 
    
         
             
            		    capture_std do
         
     | 
| 
       30 
43 
     | 
    
         
             
            			assert_equal(res, ::Rant::RantApp.new.run(*args))
         
     | 
| 
         @@ -33,6 +46,9 @@ module Test 
     | 
|
| 
       33 
46 
     | 
    
         
             
            		    assert_equal(res, ::Rant::RantApp.new.run(*args))
         
     | 
| 
       34 
47 
     | 
    
         
             
            		end
         
     | 
| 
       35 
48 
     | 
    
         
             
            	    end
         
     | 
| 
      
 49 
     | 
    
         
            +
                        def assert_exit(status = 0)
         
     | 
| 
      
 50 
     | 
    
         
            +
                            assert_equal(status, $?.exitstatus)
         
     | 
| 
      
 51 
     | 
    
         
            +
                        end
         
     | 
| 
       36 
52 
     | 
    
         
             
            	end
         
     | 
| 
       37 
53 
     | 
    
         
             
                end
         
     | 
| 
       38 
54 
     | 
    
         
             
            end
         
     | 
| 
         @@ -145,13 +161,83 @@ When testing Rant: `#{Dir.pwd + "/" + errfn}' exists. 
     | 
|
| 
       145 
161 
     | 
    
         
             
            end
         
     | 
| 
       146 
162 
     | 
    
         | 
| 
       147 
163 
     | 
    
         
             
            def run_rant(*args)
         
     | 
| 
       148 
     | 
    
         
            -
                `#{Rant::Sys.sp(Rant::Env::RUBY)} #{Rant::Sys.sp(RANT_BIN)} #{args.flatten. 
     | 
| 
      
 164 
     | 
    
         
            +
                `#{Rant::Sys.sp(Rant::Env::RUBY)} #{Rant::Sys.sp(RANT_BIN)} #{args.flatten.join(' ')}`
         
     | 
| 
       149 
165 
     | 
    
         
             
            end
         
     | 
| 
       150 
166 
     | 
    
         | 
| 
       151 
167 
     | 
    
         
             
            def run_import(*args)
         
     | 
| 
       152 
     | 
    
         
            -
                `#{Rant::Sys.sp(Rant::Env::RUBY)} #{Rant::Sys.sp(RANT_IMPORT_BIN)} #{args.flatten. 
     | 
| 
      
 168 
     | 
    
         
            +
                `#{Rant::Sys.sp(Rant::Env::RUBY)} #{Rant::Sys.sp(RANT_IMPORT_BIN)} #{args.flatten.join(' ')}`
         
     | 
| 
       153 
169 
     | 
    
         
             
            end
         
     | 
| 
       154 
170 
     | 
    
         | 
| 
       155 
171 
     | 
    
         
             
            def run_ruby(*args)
         
     | 
| 
       156 
     | 
    
         
            -
                `#{Rant::Sys.sp(Rant::Env::RUBY)} #{args.flatten. 
     | 
| 
      
 172 
     | 
    
         
            +
                `#{Rant::Sys.sp(Rant::Env::RUBY)} #{args.flatten.join(' ')}`
         
     | 
| 
      
 173 
     | 
    
         
            +
            end
         
     | 
| 
      
 174 
     | 
    
         
            +
             
     | 
| 
      
 175 
     | 
    
         
            +
            $have_unzip = !!Rant::Env.find_bin("unzip")
         
     | 
| 
      
 176 
     | 
    
         
            +
             
     | 
| 
      
 177 
     | 
    
         
            +
            def unpack_archive(atype, archive)
         
     | 
| 
      
 178 
     | 
    
         
            +
                case atype
         
     | 
| 
      
 179 
     | 
    
         
            +
                when :tgz
         
     | 
| 
      
 180 
     | 
    
         
            +
                    if ::Rant::Env.have_tar?
         
     | 
| 
      
 181 
     | 
    
         
            +
                        `tar -xzf #{archive}`
         
     | 
| 
      
 182 
     | 
    
         
            +
                    else
         
     | 
| 
      
 183 
     | 
    
         
            +
                        minitar_unpack archive
         
     | 
| 
      
 184 
     | 
    
         
            +
                    end
         
     | 
| 
      
 185 
     | 
    
         
            +
                when :zip
         
     | 
| 
      
 186 
     | 
    
         
            +
                    if $have_unzip
         
     | 
| 
      
 187 
     | 
    
         
            +
                        `unzip -q #{archive}`
         
     | 
| 
      
 188 
     | 
    
         
            +
                    else
         
     | 
| 
      
 189 
     | 
    
         
            +
                        rubyzip_unpack archive
         
     | 
| 
      
 190 
     | 
    
         
            +
                    end
         
     | 
| 
      
 191 
     | 
    
         
            +
                else
         
     | 
| 
      
 192 
     | 
    
         
            +
                    raise "can't unpack archive type #{atype}"
         
     | 
| 
      
 193 
     | 
    
         
            +
                end
         
     | 
| 
      
 194 
     | 
    
         
            +
            end
         
     | 
| 
      
 195 
     | 
    
         
            +
            def minitar_unpack(archive)
         
     | 
| 
      
 196 
     | 
    
         
            +
                require 'rant/archive/minitar'
         
     | 
| 
      
 197 
     | 
    
         
            +
                tgz = Zlib::GzipReader.new(File.open(archive, 'rb'))
         
     | 
| 
      
 198 
     | 
    
         
            +
                # unpack closes tgz
         
     | 
| 
      
 199 
     | 
    
         
            +
                Rant::Archive::Minitar.unpack(tgz, '.')
         
     | 
| 
      
 200 
     | 
    
         
            +
            end
         
     | 
| 
      
 201 
     | 
    
         
            +
            def rubyzip_unpack(archive)
         
     | 
| 
      
 202 
     | 
    
         
            +
                require 'rant/archive/rubyzip'
         
     | 
| 
      
 203 
     | 
    
         
            +
                f = Rant::Archive::Rubyzip::ZipFile.open archive
         
     | 
| 
      
 204 
     | 
    
         
            +
                f.entries.each { |e|
         
     | 
| 
      
 205 
     | 
    
         
            +
                    dir, = File.split(e.name)
         
     | 
| 
      
 206 
     | 
    
         
            +
                    FileUtils.mkpath dir unless test ?d, dir
         
     | 
| 
      
 207 
     | 
    
         
            +
                    f.extract e, e.name
         
     | 
| 
      
 208 
     | 
    
         
            +
                }
         
     | 
| 
      
 209 
     | 
    
         
            +
                f.close
         
     | 
| 
      
 210 
     | 
    
         
            +
            end
         
     | 
| 
      
 211 
     | 
    
         
            +
             
     | 
| 
      
 212 
     | 
    
         
            +
            # Returns a list with the files required by the IO object script.
         
     | 
| 
      
 213 
     | 
    
         
            +
            def extract_requires(script, dynamic_requires = [])
         
     | 
| 
      
 214 
     | 
    
         
            +
                in_ml_comment = false
         
     | 
| 
      
 215 
     | 
    
         
            +
                requires = []
         
     | 
| 
      
 216 
     | 
    
         
            +
                script.each { |line|
         
     | 
| 
      
 217 
     | 
    
         
            +
                    if in_ml_comment
         
     | 
| 
      
 218 
     | 
    
         
            +
                        if line =~ /^=end/
         
     | 
| 
      
 219 
     | 
    
         
            +
                            in_ml_comment = false
         
     | 
| 
      
 220 
     | 
    
         
            +
                        end
         
     | 
| 
      
 221 
     | 
    
         
            +
                        next
         
     | 
| 
      
 222 
     | 
    
         
            +
                    end
         
     | 
| 
      
 223 
     | 
    
         
            +
                    # skip shebang line
         
     | 
| 
      
 224 
     | 
    
         
            +
                    next if line =~ /^#! ?(\/|\\)?\w/
         
     | 
| 
      
 225 
     | 
    
         
            +
                    # skip pure comment lines
         
     | 
| 
      
 226 
     | 
    
         
            +
                    next if line =~ /^\s*#/
         
     | 
| 
      
 227 
     | 
    
         
            +
                    if line =~ /^=begin\s/
         
     | 
| 
      
 228 
     | 
    
         
            +
                        in_ml_comment = true
         
     | 
| 
      
 229 
     | 
    
         
            +
                        next
         
     | 
| 
      
 230 
     | 
    
         
            +
                    end
         
     | 
| 
      
 231 
     | 
    
         
            +
                    name = nil
         
     | 
| 
      
 232 
     | 
    
         
            +
                    lib_file = nil
         
     | 
| 
      
 233 
     | 
    
         
            +
                    if line =~ /\s*(require|load)\s*('|")([^\2]*)\2/
         
     | 
| 
      
 234 
     | 
    
         
            +
                        fn = $3
         
     | 
| 
      
 235 
     | 
    
         
            +
                        if fn =~ /\#\{[^\}]+\}/ || fn =~ /\#\@/
         
     | 
| 
      
 236 
     | 
    
         
            +
                            dynamic_requires << fn
         
     | 
| 
      
 237 
     | 
    
         
            +
                        else
         
     | 
| 
      
 238 
     | 
    
         
            +
                            requires << fn
         
     | 
| 
      
 239 
     | 
    
         
            +
                        end
         
     | 
| 
      
 240 
     | 
    
         
            +
                    end
         
     | 
| 
      
 241 
     | 
    
         
            +
                }
         
     | 
| 
      
 242 
     | 
    
         
            +
                requires
         
     | 
| 
       157 
243 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -3,8 +3,8 @@ rubygems_version: 0.8.10 
     | 
|
| 
       3 
3 
     | 
    
         
             
            specification_version: 1
         
     | 
| 
       4 
4 
     | 
    
         
             
            name: rant
         
     | 
| 
       5 
5 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       6 
     | 
    
         
            -
              version: 0. 
     | 
| 
       7 
     | 
    
         
            -
            date: 2005- 
     | 
| 
      
 6 
     | 
    
         
            +
              version: 0.4.0
         
     | 
| 
      
 7 
     | 
    
         
            +
            date: 2005-07-10
         
     | 
| 
       8 
8 
     | 
    
         
             
            summary: Rant is a Ruby based build tool.
         
     | 
| 
       9 
9 
     | 
    
         
             
            require_paths: 
         
     | 
| 
       10 
10 
     | 
    
         
             
              - lib
         
     | 
| 
         @@ -30,13 +30,10 @@ authors: 
     | 
|
| 
       30 
30 
     | 
    
         
             
                - Stefan Lang
         
     | 
| 
       31 
31 
     | 
    
         
             
            files: 
         
     | 
| 
       32 
32 
     | 
    
         
             
              - NEWS
         
     | 
| 
       33 
     | 
    
         
            -
              - TODO
         
     | 
| 
       34 
33 
     | 
    
         
             
              - README
         
     | 
| 
       35 
34 
     | 
    
         
             
              - Rantfile
         
     | 
| 
       36 
35 
     | 
    
         
             
              - install.rb
         
     | 
| 
       37 
36 
     | 
    
         
             
              - run_rant
         
     | 
| 
       38 
     | 
    
         
            -
              - devel-notes
         
     | 
| 
       39 
     | 
    
         
            -
              - rantmethods.rb
         
     | 
| 
       40 
37 
     | 
    
         
             
              - run_import
         
     | 
| 
       41 
38 
     | 
    
         
             
              - setup.rb
         
     | 
| 
       42 
39 
     | 
    
         
             
              - COPYING
         
     | 
| 
         @@ -54,6 +51,7 @@ files: 
     | 
|
| 
       54 
51 
     | 
    
         
             
              - lib/rant/import
         
     | 
| 
       55 
52 
     | 
    
         
             
              - lib/rant/plugin_methods.rb
         
     | 
| 
       56 
53 
     | 
    
         
             
              - lib/rant/plugin
         
     | 
| 
      
 54 
     | 
    
         
            +
              - lib/rant/archive
         
     | 
| 
       57 
55 
     | 
    
         
             
              - lib/rant/import.rb
         
     | 
| 
       58 
56 
     | 
    
         
             
              - lib/rant/c/include.rb
         
     | 
| 
       59 
57 
     | 
    
         
             
              - lib/rant/import/c
         
     | 
| 
         @@ -63,15 +61,27 @@ files: 
     | 
|
| 
       63 
61 
     | 
    
         
             
              - lib/rant/import/rubydoc.rb
         
     | 
| 
       64 
62 
     | 
    
         
             
              - lib/rant/import/rubytest.rb
         
     | 
| 
       65 
63 
     | 
    
         
             
              - lib/rant/import/rubypackage.rb
         
     | 
| 
      
 64 
     | 
    
         
            +
              - lib/rant/import/archive.rb
         
     | 
| 
      
 65 
     | 
    
         
            +
              - lib/rant/import/package
         
     | 
| 
      
 66 
     | 
    
         
            +
              - lib/rant/import/archive
         
     | 
| 
       66 
67 
     | 
    
         
             
              - lib/rant/import/subfile.rb
         
     | 
| 
       67 
     | 
    
         
            -
              - lib/rant/import/package.rb
         
     | 
| 
       68 
68 
     | 
    
         
             
              - lib/rant/import/clean.rb
         
     | 
| 
       69 
69 
     | 
    
         
             
              - lib/rant/import/autoclean.rb
         
     | 
| 
       70 
70 
     | 
    
         
             
              - lib/rant/import/c/dependencies.rb
         
     | 
| 
       71 
71 
     | 
    
         
             
              - lib/rant/import/win32/rubycmdwrapper.rb
         
     | 
| 
      
 72 
     | 
    
         
            +
              - lib/rant/import/package/tgz.rb
         
     | 
| 
      
 73 
     | 
    
         
            +
              - lib/rant/import/package/zip.rb
         
     | 
| 
      
 74 
     | 
    
         
            +
              - lib/rant/import/archive/tgz.rb
         
     | 
| 
      
 75 
     | 
    
         
            +
              - lib/rant/import/archive/zip.rb
         
     | 
| 
       72 
76 
     | 
    
         
             
              - lib/rant/plugin/README
         
     | 
| 
       73 
77 
     | 
    
         
             
              - lib/rant/plugin/configure.rb
         
     | 
| 
       74 
78 
     | 
    
         
             
              - lib/rant/plugin/csharp.rb
         
     | 
| 
      
 79 
     | 
    
         
            +
              - lib/rant/archive/minitar.rb
         
     | 
| 
      
 80 
     | 
    
         
            +
              - lib/rant/archive/rubyzip
         
     | 
| 
      
 81 
     | 
    
         
            +
              - lib/rant/archive/rubyzip.rb
         
     | 
| 
      
 82 
     | 
    
         
            +
              - lib/rant/archive/rubyzip/stdrubyext.rb
         
     | 
| 
      
 83 
     | 
    
         
            +
              - lib/rant/archive/rubyzip/ioextras.rb
         
     | 
| 
      
 84 
     | 
    
         
            +
              - lib/rant/archive/rubyzip/tempfile_bugfixed.rb
         
     | 
| 
       75 
85 
     | 
    
         
             
              - test/c
         
     | 
| 
       76 
86 
     | 
    
         
             
              - test/test_filetask.rb
         
     | 
| 
       77 
87 
     | 
    
         
             
              - test/test_lighttask.rb
         
     | 
| 
         @@ -128,6 +138,7 @@ files: 
     | 
|
| 
       128 
138 
     | 
    
         
             
              - test/import/truth
         
     | 
| 
       129 
139 
     | 
    
         
             
              - test/import/subfile
         
     | 
| 
       130 
140 
     | 
    
         
             
              - test/import/directedrule
         
     | 
| 
      
 141 
     | 
    
         
            +
              - test/import/package
         
     | 
| 
       131 
142 
     | 
    
         
             
              - test/import/c/dependencies
         
     | 
| 
       132 
143 
     | 
    
         
             
              - test/import/c/dependencies/src
         
     | 
| 
       133 
144 
     | 
    
         
             
              - test/import/c/dependencies/bar.h
         
     | 
| 
         @@ -151,6 +162,17 @@ files: 
     | 
|
| 
       151 
162 
     | 
    
         
             
              - test/import/subfile/autoclean.rf
         
     | 
| 
       152 
163 
     | 
    
         
             
              - test/import/directedrule/Rantfile
         
     | 
| 
       153 
164 
     | 
    
         
             
              - test/import/directedrule/test_directedrule.rb
         
     | 
| 
      
 165 
     | 
    
         
            +
              - test/import/package/sub
         
     | 
| 
      
 166 
     | 
    
         
            +
              - test/import/package/deep
         
     | 
| 
      
 167 
     | 
    
         
            +
              - test/import/package/sub2
         
     | 
| 
      
 168 
     | 
    
         
            +
              - test/import/package/Rantfile
         
     | 
| 
      
 169 
     | 
    
         
            +
              - test/import/package/test_package.rb
         
     | 
| 
      
 170 
     | 
    
         
            +
              - test/import/package/MANIFEST
         
     | 
| 
      
 171 
     | 
    
         
            +
              - test/import/package/sub/f1
         
     | 
| 
      
 172 
     | 
    
         
            +
              - test/import/package/deep/sub
         
     | 
| 
      
 173 
     | 
    
         
            +
              - test/import/package/deep/sub/sub
         
     | 
| 
      
 174 
     | 
    
         
            +
              - test/import/package/deep/sub/sub/f1
         
     | 
| 
      
 175 
     | 
    
         
            +
              - test/import/package/sub2/f1
         
     | 
| 
       154 
176 
     | 
    
         
             
              - test/plugin/configure
         
     | 
| 
       155 
177 
     | 
    
         
             
              - test/plugin/csharp
         
     | 
| 
       156 
178 
     | 
    
         
             
              - test/plugin/rantfile
         
     | 
| 
         @@ -183,6 +205,7 @@ files: 
     | 
|
| 
       183 
205 
     | 
    
         
             
              - doc/csharp.rdoc
         
     | 
| 
       184 
206 
     | 
    
         
             
              - doc/rant-import.rdoc
         
     | 
| 
       185 
207 
     | 
    
         
             
              - doc/examples
         
     | 
| 
      
 208 
     | 
    
         
            +
              - doc/package.rdoc
         
     | 
| 
       186 
209 
     | 
    
         
             
              - doc/examples/directedrule
         
     | 
| 
       187 
210 
     | 
    
         
             
              - doc/examples/myprog
         
     | 
| 
       188 
211 
     | 
    
         
             
              - doc/examples/c_dependencies
         
     | 
| 
         @@ -206,6 +229,11 @@ files: 
     | 
|
| 
       206 
229 
     | 
    
         
             
              - doc/examples/c_dependencies/src/util.c
         
     | 
| 
       207 
230 
     | 
    
         
             
              - doc/examples/c_dependencies/include/hello.h
         
     | 
| 
       208 
231 
     | 
    
         
             
              - doc/examples/c_dependencies/include/util.h
         
     | 
| 
      
 232 
     | 
    
         
            +
              - misc/TODO
         
     | 
| 
      
 233 
     | 
    
         
            +
              - misc/t.rb
         
     | 
| 
      
 234 
     | 
    
         
            +
              - misc/mt.rb
         
     | 
| 
      
 235 
     | 
    
         
            +
              - misc/devel-notes
         
     | 
| 
      
 236 
     | 
    
         
            +
              - misc/rantmethods.rb
         
     | 
| 
       209 
237 
     | 
    
         
             
            test_files: []
         
     | 
| 
       210 
238 
     | 
    
         
             
            rdoc_options: 
         
     | 
| 
       211 
239 
     | 
    
         
             
              - "-S"
         
     | 
| 
         @@ -224,6 +252,7 @@ extra_rdoc_files: 
     | 
|
| 
       224 
252 
     | 
    
         
             
              - doc/rant.rdoc
         
     | 
| 
       225 
253 
     | 
    
         
             
              - doc/csharp.rdoc
         
     | 
| 
       226 
254 
     | 
    
         
             
              - doc/rant-import.rdoc
         
     | 
| 
      
 255 
     | 
    
         
            +
              - doc/package.rdoc
         
     | 
| 
       227 
256 
     | 
    
         
             
              - README
         
     | 
| 
       228 
257 
     | 
    
         
             
              - doc/examples/myprog/README
         
     | 
| 
       229 
258 
     | 
    
         
             
              - lib/rant/plugin/README
         
     | 
    
        data/TODO
    DELETED
    
    | 
         @@ -1,21 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
            = TODO
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            == GET RID OF CLASS Rant::Path
         
     | 
| 
       5 
     | 
    
         
            -
            Done.
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
            == Packaging
         
     | 
| 
       8 
     | 
    
         
            -
            Try minitar if tar is not available.
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
            == C# plugin
         
     | 
| 
       11 
     | 
    
         
            -
            Define the method +assembly+ for building a file with the C# compiler?
         
     | 
| 
       12 
     | 
    
         
            -
            Done.
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
            == Predefined tasks
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
            Add a 'distclean' task that removes all files and directories
         
     | 
| 
       17 
     | 
    
         
            -
            generatet by any file task.
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
            == Java plugin
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
            At least for the 1.0.0 release.
         
     |