gemrage 0.3.2 → 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.
Files changed (165) hide show
  1. data/Gemfile +1 -0
  2. data/Gemfile.lock +6 -0
  3. data/VERSION +1 -1
  4. data/gemrage.gemspec +160 -2
  5. data/lib/rubygems/commands/scan_command.rb +26 -7
  6. data/spec/spec_helper.rb +2 -1
  7. data/vendor/ruby/1.8/bin/launchy +19 -0
  8. data/vendor/ruby/1.8/bin/rake +19 -0
  9. data/vendor/ruby/1.8/cache/configuration-1.1.0.gem +0 -0
  10. data/vendor/ruby/1.8/cache/launchy-0.3.7.gem +0 -0
  11. data/vendor/ruby/1.8/cache/rake-0.8.7.gem +0 -0
  12. data/vendor/ruby/1.8/gems/configuration-1.1.0/README +197 -0
  13. data/vendor/ruby/1.8/gems/configuration-1.1.0/README.erb +69 -0
  14. data/vendor/ruby/1.8/gems/configuration-1.1.0/Rakefile +241 -0
  15. data/vendor/ruby/1.8/gems/configuration-1.1.0/config/a.rb +5 -0
  16. data/vendor/ruby/1.8/gems/configuration-1.1.0/config/b.rb +19 -0
  17. data/vendor/ruby/1.8/gems/configuration-1.1.0/config/c.rb +8 -0
  18. data/vendor/ruby/1.8/gems/configuration-1.1.0/config/d.rb +5 -0
  19. data/vendor/ruby/1.8/gems/configuration-1.1.0/config/e.rb +13 -0
  20. data/vendor/ruby/1.8/gems/configuration-1.1.0/configuration.gemspec +28 -0
  21. data/vendor/ruby/1.8/gems/configuration-1.1.0/lib/configuration.rb +199 -0
  22. data/vendor/ruby/1.8/gems/configuration-1.1.0/samples/a.rb +11 -0
  23. data/vendor/ruby/1.8/gems/configuration-1.1.0/samples/b.rb +11 -0
  24. data/vendor/ruby/1.8/gems/configuration-1.1.0/samples/c.rb +11 -0
  25. data/vendor/ruby/1.8/gems/configuration-1.1.0/samples/d.rb +14 -0
  26. data/vendor/ruby/1.8/gems/configuration-1.1.0/samples/e.rb +12 -0
  27. data/vendor/ruby/1.8/gems/launchy-0.3.7/HISTORY +71 -0
  28. data/vendor/ruby/1.8/gems/launchy-0.3.7/LICENSE +16 -0
  29. data/vendor/ruby/1.8/gems/launchy-0.3.7/README +53 -0
  30. data/vendor/ruby/1.8/gems/launchy-0.3.7/Rakefile +62 -0
  31. data/vendor/ruby/1.8/gems/launchy-0.3.7/bin/launchy +12 -0
  32. data/vendor/ruby/1.8/gems/launchy-0.3.7/gemspec.rb +41 -0
  33. data/vendor/ruby/1.8/gems/launchy-0.3.7/lib/launchy/application.rb +178 -0
  34. data/vendor/ruby/1.8/gems/launchy-0.3.7/lib/launchy/browser.rb +98 -0
  35. data/vendor/ruby/1.8/gems/launchy-0.3.7/lib/launchy/command_line.rb +48 -0
  36. data/vendor/ruby/1.8/gems/launchy-0.3.7/lib/launchy/paths.rb +53 -0
  37. data/vendor/ruby/1.8/gems/launchy-0.3.7/lib/launchy/version.rb +17 -0
  38. data/vendor/ruby/1.8/gems/launchy-0.3.7/lib/launchy.rb +53 -0
  39. data/vendor/ruby/1.8/gems/launchy-0.3.7/spec/application_spec.rb +62 -0
  40. data/vendor/ruby/1.8/gems/launchy-0.3.7/spec/browser_spec.rb +58 -0
  41. data/vendor/ruby/1.8/gems/launchy-0.3.7/spec/launchy_spec.rb +18 -0
  42. data/vendor/ruby/1.8/gems/launchy-0.3.7/spec/paths_spec.rb +15 -0
  43. data/vendor/ruby/1.8/gems/launchy-0.3.7/spec/spec_helper.rb +5 -0
  44. data/vendor/ruby/1.8/gems/launchy-0.3.7/spec/tattle-host-os.yml +427 -0
  45. data/vendor/ruby/1.8/gems/launchy-0.3.7/spec/version_spec.rb +11 -0
  46. data/vendor/ruby/1.8/gems/launchy-0.3.7/tasks/announce.rake +39 -0
  47. data/vendor/ruby/1.8/gems/launchy-0.3.7/tasks/config.rb +107 -0
  48. data/vendor/ruby/1.8/gems/launchy-0.3.7/tasks/distribution.rake +46 -0
  49. data/vendor/ruby/1.8/gems/launchy-0.3.7/tasks/documentation.rake +32 -0
  50. data/vendor/ruby/1.8/gems/launchy-0.3.7/tasks/rspec.rake +37 -0
  51. data/vendor/ruby/1.8/gems/launchy-0.3.7/tasks/rubyforge.rake +52 -0
  52. data/vendor/ruby/1.8/gems/launchy-0.3.7/tasks/utils.rb +80 -0
  53. data/vendor/ruby/1.8/gems/rake-0.8.7/CHANGES +440 -0
  54. data/vendor/ruby/1.8/gems/rake-0.8.7/MIT-LICENSE +21 -0
  55. data/vendor/ruby/1.8/gems/rake-0.8.7/README +196 -0
  56. data/vendor/ruby/1.8/gems/rake-0.8.7/Rakefile +430 -0
  57. data/vendor/ruby/1.8/gems/rake-0.8.7/TODO +20 -0
  58. data/vendor/ruby/1.8/gems/rake-0.8.7/bin/rake +31 -0
  59. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/command_line_usage.rdoc +102 -0
  60. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/example/Rakefile1 +38 -0
  61. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/example/Rakefile2 +35 -0
  62. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/example/a.c +6 -0
  63. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/example/b.c +6 -0
  64. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/example/main.c +11 -0
  65. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/glossary.rdoc +51 -0
  66. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/jamis.rb +591 -0
  67. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/proto_rake.rdoc +127 -0
  68. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/rake.1.gz +0 -0
  69. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/rakefile.rdoc +534 -0
  70. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/rational.rdoc +151 -0
  71. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.4.14.rdoc +23 -0
  72. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.4.15.rdoc +35 -0
  73. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.5.0.rdoc +53 -0
  74. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.5.3.rdoc +78 -0
  75. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.5.4.rdoc +46 -0
  76. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.6.0.rdoc +141 -0
  77. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.7.0.rdoc +119 -0
  78. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.7.1.rdoc +59 -0
  79. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.7.2.rdoc +121 -0
  80. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.7.3.rdoc +47 -0
  81. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.8.0.rdoc +114 -0
  82. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.8.2.rdoc +165 -0
  83. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.8.3.rdoc +112 -0
  84. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.8.4.rdoc +147 -0
  85. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.8.5.rdoc +53 -0
  86. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.8.6.rdoc +55 -0
  87. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.8.7.rdoc +55 -0
  88. data/vendor/ruby/1.8/gems/rake-0.8.7/install.rb +88 -0
  89. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/alt_system.rb +108 -0
  90. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/classic_namespace.rb +8 -0
  91. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/clean.rb +33 -0
  92. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/contrib/compositepublisher.rb +24 -0
  93. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/contrib/ftptools.rb +153 -0
  94. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/contrib/publisher.rb +75 -0
  95. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  96. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/contrib/sshpublisher.rb +47 -0
  97. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/contrib/sys.rb +209 -0
  98. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/gempackagetask.rb +97 -0
  99. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/loaders/makefile.rb +42 -0
  100. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/packagetask.rb +184 -0
  101. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb +5 -0
  102. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/rdoctask.rb +209 -0
  103. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/ruby182_test_unit_fix.rb +23 -0
  104. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/runtest.rb +23 -0
  105. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/tasklib.rb +23 -0
  106. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/testtask.rb +161 -0
  107. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/win32.rb +55 -0
  108. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake.rb +2506 -0
  109. data/vendor/ruby/1.8/gems/rake-0.8.7/test/capture_stdout.rb +26 -0
  110. data/vendor/ruby/1.8/gems/rake-0.8.7/test/check_expansion.rb +5 -0
  111. data/vendor/ruby/1.8/gems/rake-0.8.7/test/check_no_expansion.rb +5 -0
  112. data/vendor/ruby/1.8/gems/rake-0.8.7/test/contrib/test_sys.rb +47 -0
  113. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/chains/Rakefile +15 -0
  114. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/default/Rakefile +19 -0
  115. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/dryrun/Rakefile +22 -0
  116. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/file_creation_task/Rakefile +33 -0
  117. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/imports/Rakefile +19 -0
  118. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/imports/deps.mf +1 -0
  119. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/multidesc/Rakefile +17 -0
  120. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/namespace/Rakefile +57 -0
  121. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/rakelib/test1.rb +3 -0
  122. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/rbext/rakefile.rb +3 -0
  123. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/sample.mf +14 -0
  124. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/statusreturn/Rakefile +8 -0
  125. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/unittest/Rakefile +1 -0
  126. data/vendor/ruby/1.8/gems/rake-0.8.7/test/filecreation.rb +32 -0
  127. data/vendor/ruby/1.8/gems/rake-0.8.7/test/functional.rb +15 -0
  128. data/vendor/ruby/1.8/gems/rake-0.8.7/test/in_environment.rb +30 -0
  129. data/vendor/ruby/1.8/gems/rake-0.8.7/test/rake_test_setup.rb +24 -0
  130. data/vendor/ruby/1.8/gems/rake-0.8.7/test/reqfile.rb +3 -0
  131. data/vendor/ruby/1.8/gems/rake-0.8.7/test/reqfile2.rb +3 -0
  132. data/vendor/ruby/1.8/gems/rake-0.8.7/test/session_functional.rb +339 -0
  133. data/vendor/ruby/1.8/gems/rake-0.8.7/test/shellcommand.rb +3 -0
  134. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_application.rb +675 -0
  135. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_clean.rb +14 -0
  136. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_definitions.rb +85 -0
  137. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_earlytime.rb +35 -0
  138. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_extension.rb +63 -0
  139. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_file_creation_task.rb +62 -0
  140. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_file_task.rb +143 -0
  141. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_filelist.rb +623 -0
  142. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_fileutils.rb +251 -0
  143. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_ftp.rb +59 -0
  144. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_invocation_chain.rb +81 -0
  145. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_makefile_loader.rb +26 -0
  146. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_multitask.rb +45 -0
  147. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_namespace.rb +55 -0
  148. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_package_task.rb +118 -0
  149. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_pathmap.rb +210 -0
  150. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_pseudo_status.rb +26 -0
  151. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_rake.rb +41 -0
  152. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_rdoc_task.rb +88 -0
  153. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_require.rb +35 -0
  154. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_rules.rb +349 -0
  155. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_task_arguments.rb +89 -0
  156. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_task_manager.rb +173 -0
  157. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_tasklib.rb +12 -0
  158. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_tasks.rb +374 -0
  159. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_test_task.rb +77 -0
  160. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_top_level_functions.rb +86 -0
  161. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_win32.rb +72 -0
  162. data/vendor/ruby/1.8/specifications/configuration-1.1.0.gemspec +27 -0
  163. data/vendor/ruby/1.8/specifications/launchy-0.3.7.gemspec +44 -0
  164. data/vendor/ruby/1.8/specifications/rake-0.8.7.gemspec +32 -0
  165. metadata +163 -5
@@ -0,0 +1,210 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'rake'
5
+
6
+ # ====================================================================
7
+ class TestPathMap < Test::Unit::TestCase
8
+ include TestMethods
9
+
10
+ def test_returns_self_with_no_args
11
+ assert_equal "abc.rb", "abc.rb".pathmap
12
+ end
13
+
14
+ def test_s_returns_file_separator
15
+ sep = File::ALT_SEPARATOR || File::SEPARATOR
16
+ assert_equal sep, "abc.rb".pathmap("%s")
17
+ assert_equal sep, "".pathmap("%s")
18
+ assert_equal "a#{sep}b", "a/b".pathmap("%d%s%f")
19
+ end
20
+
21
+ def test_f_returns_basename
22
+ assert_equal "abc.rb", "abc.rb".pathmap("%f")
23
+ assert_equal "abc.rb", "this/is/a/dir/abc.rb".pathmap("%f")
24
+ assert_equal "abc.rb", "/this/is/a/dir/abc.rb".pathmap("%f")
25
+ end
26
+
27
+ def test_n_returns_basename_without_extension
28
+ assert_equal "abc", "abc.rb".pathmap("%n")
29
+ assert_equal "abc", "abc".pathmap("%n")
30
+ assert_equal "abc", "this/is/a/dir/abc.rb".pathmap("%n")
31
+ assert_equal "abc", "/this/is/a/dir/abc.rb".pathmap("%n")
32
+ assert_equal "abc", "/this/is/a/dir/abc".pathmap("%n")
33
+ end
34
+
35
+ def test_d_returns_dirname
36
+ assert_equal ".", "abc.rb".pathmap("%d")
37
+ assert_equal "/", "/abc".pathmap("%d")
38
+ assert_equal "this/is/a/dir", "this/is/a/dir/abc.rb".pathmap("%d")
39
+ assert_equal "/this/is/a/dir", "/this/is/a/dir/abc.rb".pathmap("%d")
40
+ end
41
+
42
+ def test_9d_returns_partial_dirname
43
+ assert_equal "this/is", "this/is/a/dir/abc.rb".pathmap("%2d")
44
+ assert_equal "this", "this/is/a/dir/abc.rb".pathmap("%1d")
45
+ assert_equal ".", "this/is/a/dir/abc.rb".pathmap("%0d")
46
+ assert_equal "dir", "this/is/a/dir/abc.rb".pathmap("%-1d")
47
+ assert_equal "a/dir", "this/is/a/dir/abc.rb".pathmap("%-2d")
48
+ assert_equal "this/is/a/dir", "this/is/a/dir/abc.rb".pathmap("%100d")
49
+ assert_equal "this/is/a/dir", "this/is/a/dir/abc.rb".pathmap("%-100d")
50
+ end
51
+
52
+ def test_x_returns_extension
53
+ assert_equal "", "abc".pathmap("%x")
54
+ assert_equal ".rb", "abc.rb".pathmap("%x")
55
+ assert_equal ".rb", "abc.xyz.rb".pathmap("%x")
56
+ assert_equal "", ".depends".pathmap("%x")
57
+ assert_equal "", "dir/.depends".pathmap("%x")
58
+ end
59
+
60
+ def test_X_returns_everything_but_extension
61
+ assert_equal "abc", "abc".pathmap("%X")
62
+ assert_equal "abc", "abc.rb".pathmap("%X")
63
+ assert_equal "abc.xyz", "abc.xyz.rb".pathmap("%X")
64
+ assert_equal "ab.xyz", "ab.xyz.rb".pathmap("%X")
65
+ assert_equal "a.xyz", "a.xyz.rb".pathmap("%X")
66
+ assert_equal "abc", "abc.rb".pathmap("%X")
67
+ assert_equal "ab", "ab.rb".pathmap("%X")
68
+ assert_equal "a", "a.rb".pathmap("%X")
69
+ assert_equal ".depends", ".depends".pathmap("%X")
70
+ assert_equal "a/dir/.depends", "a/dir/.depends".pathmap("%X")
71
+ assert_equal "/.depends", "/.depends".pathmap("%X")
72
+ end
73
+
74
+ def test_p_returns_entire_pathname
75
+ assert_equal "abc.rb", "abc.rb".pathmap("%p")
76
+ assert_equal "this/is/a/dir/abc.rb", "this/is/a/dir/abc.rb".pathmap("%p")
77
+ assert_equal "/this/is/a/dir/abc.rb", "/this/is/a/dir/abc.rb".pathmap("%p")
78
+ end
79
+
80
+ def test_dash_returns_empty_string
81
+ assert_equal "", "abc.rb".pathmap("%-")
82
+ assert_equal "abc.rb", "abc.rb".pathmap("%X%-%x")
83
+ end
84
+
85
+ def test_percent_percent_returns_percent
86
+ assert_equal "a%b", "".pathmap("a%%b")
87
+ end
88
+
89
+ def test_undefined_percent_causes_error
90
+ ex = assert_exception(ArgumentError) {
91
+ "dir/abc.rb".pathmap("%z")
92
+ }
93
+ end
94
+
95
+ def test_pattern_returns_substitutions
96
+ assert_equal "bin/org/osb",
97
+ "src/org/osb/Xyz.java".pathmap("%{src,bin}d")
98
+ end
99
+
100
+ def test_pattern_can_use_backreferences
101
+ assert_equal "dir/hi/is", "dir/this/is".pathmap("%{t(hi)s,\\1}p")
102
+ end
103
+
104
+ def test_pattern_with_star_replacement_string_uses_block
105
+ assert_equal "src/ORG/osb",
106
+ "src/org/osb/Xyz.java".pathmap("%{/org,*}d") { |d| d.upcase }
107
+ assert_equal "Xyz.java",
108
+ "src/org/osb/Xyz.java".pathmap("%{.*,*}f") { |f| f.capitalize }
109
+ end
110
+
111
+ def test_pattern_with_no_replacement_nor_block_substitutes_empty_string
112
+ assert_equal "bc.rb", "abc.rb".pathmap("%{a}f")
113
+ end
114
+
115
+ def test_pattern_works_with_certain_valid_operators
116
+ assert_equal "dir/xbc.rb", "dir/abc.rb".pathmap("%{a,x}p")
117
+ assert_equal "d1r", "dir/abc.rb".pathmap("%{i,1}d")
118
+ assert_equal "xbc.rb", "dir/abc.rb".pathmap("%{a,x}f")
119
+ assert_equal ".Rb", "dir/abc.rb".pathmap("%{r,R}x")
120
+ assert_equal "xbc", "dir/abc.rb".pathmap("%{a,x}n")
121
+ end
122
+
123
+ def test_multiple_patterns
124
+ assert_equal "this/is/b/directory/abc.rb",
125
+ "this/is/a/dir/abc.rb".pathmap("%{a,b;dir,\\0ectory}p")
126
+ end
127
+
128
+ def test_partial_directory_selection_works_with_patterns
129
+ assert_equal "this/is/a/long",
130
+ "this/is/a/really/long/path/ok.rb".pathmap("%{/really/,/}5d")
131
+ end
132
+
133
+ def test_pattern_with_invalid_operator
134
+ ex = assert_exception(ArgumentError) do
135
+ "abc.xyz".pathmap("%{src,bin}z")
136
+ end
137
+ assert_match(/unknown.*pathmap.*spec.*z/i, ex.message)
138
+ end
139
+
140
+ def test_works_with_windows_separators
141
+ if File::ALT_SEPARATOR
142
+ assert_equal "abc", 'dir\abc.rb'.pathmap("%n")
143
+ assert_equal 'this\is\a\dir',
144
+ 'this\is\a\dir\abc.rb'.pathmap("%d")
145
+ end
146
+ end
147
+
148
+ def test_complex_patterns
149
+ sep = "".pathmap("%s")
150
+ assert_equal "dir/abc.rb", "dir/abc.rb".pathmap("%d/%n%x")
151
+ assert_equal "./abc.rb", "abc.rb".pathmap("%d/%n%x")
152
+ assert_equal "Your file extension is '.rb'",
153
+ "dir/abc.rb".pathmap("Your file extension is '%x'")
154
+ assert_equal "bin/org/onstepback/proj/A.class",
155
+ "src/org/onstepback/proj/A.java".pathmap("%{src,bin}d/%n.class")
156
+ assert_equal "src_work/bin/org/onstepback/proj/A.class",
157
+ "src_work/src/org/onstepback/proj/A.java".pathmap('%{\bsrc\b,bin}X.class')
158
+ assert_equal ".depends.bak", ".depends".pathmap("%X.bak")
159
+ assert_equal "d#{sep}a/b/c#{sep}file.txt", "a/b/c/d/file.txt".pathmap("%-1d%s%3d%s%f")
160
+ end
161
+ end
162
+
163
+ class TestPathMapExplode < Test::Unit::TestCase
164
+ def setup
165
+ String.class_eval { public :pathmap_explode }
166
+ end
167
+
168
+ def teardown
169
+ String.class_eval { protected :pathmap_explode }
170
+ end
171
+
172
+ def test_explode
173
+ assert_equal ['a'], 'a'.pathmap_explode
174
+ assert_equal ['a', 'b'], 'a/b'.pathmap_explode
175
+ assert_equal ['a', 'b', 'c'], 'a/b/c'.pathmap_explode
176
+ assert_equal ['/', 'a'], '/a'.pathmap_explode
177
+ assert_equal ['/', 'a', 'b'], '/a/b'.pathmap_explode
178
+ assert_equal ['/', 'a', 'b', 'c'], '/a/b/c'.pathmap_explode
179
+ if File::ALT_SEPARATOR
180
+ assert_equal ['c:.', 'a'], 'c:a'.pathmap_explode
181
+ assert_equal ['c:.', 'a', 'b'], 'c:a/b'.pathmap_explode
182
+ assert_equal ['c:.', 'a', 'b', 'c'], 'c:a/b/c'.pathmap_explode
183
+ assert_equal ['c:/', 'a'], 'c:/a'.pathmap_explode
184
+ assert_equal ['c:/', 'a', 'b'], 'c:/a/b'.pathmap_explode
185
+ assert_equal ['c:/', 'a', 'b', 'c'], 'c:/a/b/c'.pathmap_explode
186
+ end
187
+ end
188
+ end
189
+
190
+ class TestPathMapPartial < Test::Unit::TestCase
191
+ def test_pathmap_partial
192
+ @path = "1/2/file"
193
+ def @path.call(n)
194
+ pathmap_partial(n)
195
+ end
196
+ assert_equal("1", @path.call(1))
197
+ assert_equal("1/2", @path.call(2))
198
+ assert_equal("1/2", @path.call(3))
199
+ assert_equal(".", @path.call(0))
200
+ assert_equal("2", @path.call(-1))
201
+ assert_equal("1/2", @path.call(-2))
202
+ assert_equal("1/2", @path.call(-3))
203
+ end
204
+ end
205
+
206
+ class TestFileListPathMap < Test::Unit::TestCase
207
+ def test_file_list_supports_pathmap
208
+ assert_equal ['a', 'b'], FileList['dir/a.rb', 'dir/b.rb'].pathmap("%n")
209
+ end
210
+ end
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'rake'
5
+
6
+ require 'test/capture_stdout'
7
+ require 'test/rake_test_setup'
8
+
9
+ class PseudoStatusTest < Test::Unit::TestCase
10
+ def test_with_zero_exit_status
11
+ s = Rake::PseudoStatus.new
12
+ assert_equal 0, s.exitstatus
13
+ assert_equal 0, s.to_i
14
+ assert_equal 0, s >> 8
15
+ assert ! s.stopped?
16
+ assert s.exited?
17
+ end
18
+ def test_with_99_exit_status
19
+ s = Rake::PseudoStatus.new(99)
20
+ assert_equal 99, s.exitstatus
21
+ assert_equal 25344, s.to_i
22
+ assert_equal 99, s >> 8
23
+ assert ! s.stopped?
24
+ assert s.exited?
25
+ end
26
+ end
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'rake'
5
+
6
+ class TestRake < Test::Unit::TestCase
7
+ def test_each_dir_parent
8
+ assert_equal ['a'], alldirs('a')
9
+ assert_equal ['a/b', 'a'], alldirs('a/b')
10
+ assert_equal ['/a/b', '/a', '/'], alldirs('/a/b')
11
+ if File.dirname("c:/foo") == "c:"
12
+ # Under Unix
13
+ assert_equal ['c:/a/b', 'c:/a', 'c:'], alldirs('c:/a/b')
14
+ assert_equal ['c:a/b', 'c:a'], alldirs('c:a/b')
15
+ else
16
+ # Under Windows
17
+ assert_equal ['c:/a/b', 'c:/a', 'c:/'], alldirs('c:/a/b')
18
+ assert_equal ['c:a/b', 'c:a'], alldirs('c:a/b')
19
+ end
20
+ end
21
+
22
+ def alldirs(fn)
23
+ result = []
24
+ Rake.each_dir_parent(fn) { |d| result << d }
25
+ result
26
+ end
27
+
28
+ def test_can_override_application
29
+ old_app = Rake.application
30
+ fake_app = Object.new
31
+ Rake.application = fake_app
32
+ assert_equal fake_app, Rake.application
33
+ ensure
34
+ Rake.application = old_app
35
+ end
36
+
37
+ def test_original_dir_reports_current_dir
38
+ assert_equal Dir.pwd, Rake.original_dir
39
+ end
40
+
41
+ end
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'rake/rdoctask'
5
+ require 'test/rake_test_setup'
6
+
7
+ class TestRDocTask < Test::Unit::TestCase
8
+ include Rake
9
+ include TestMethods
10
+
11
+ def setup
12
+ Task.clear
13
+ end
14
+
15
+ def test_tasks_creation
16
+ Rake::RDocTask.new
17
+ assert Task[:rdoc]
18
+ assert Task[:clobber_rdoc]
19
+ assert Task[:rerdoc]
20
+ end
21
+
22
+ def test_tasks_creation_with_custom_name_symbol
23
+ rd = Rake::RDocTask.new(:rdoc_dev)
24
+ assert Task[:rdoc_dev]
25
+ assert Task[:clobber_rdoc_dev]
26
+ assert Task[:rerdoc_dev]
27
+ assert_equal :rdoc_dev, rd.name
28
+ end
29
+
30
+ def test_tasks_creation_with_custom_name_string
31
+ rd = Rake::RDocTask.new("rdoc_dev")
32
+ assert Task[:rdoc_dev]
33
+ assert Task[:clobber_rdoc_dev]
34
+ assert Task[:rerdoc_dev]
35
+ assert_equal "rdoc_dev", rd.name
36
+ end
37
+
38
+ def test_tasks_creation_with_custom_name_hash
39
+ options = { :rdoc => "rdoc", :clobber_rdoc => "rdoc:clean", :rerdoc => "rdoc:force" }
40
+ rd = Rake::RDocTask.new(options)
41
+ assert Task[:"rdoc"]
42
+ assert Task[:"rdoc:clean"]
43
+ assert Task[:"rdoc:force"]
44
+ assert_raises(RuntimeError) { Task[:clobber_rdoc] }
45
+ assert_equal options, rd.name
46
+ end
47
+
48
+ def test_tasks_creation_with_custom_name_hash_will_use_default_if_an_option_isnt_given
49
+ rd = Rake::RDocTask.new(:clobber_rdoc => "rdoc:clean")
50
+ assert Task[:rdoc]
51
+ assert Task[:"rdoc:clean"]
52
+ assert Task[:rerdoc]
53
+ end
54
+
55
+ def test_tasks_creation_with_custom_name_hash_raises_exception_if_invalid_option_given
56
+ assert_raises(ArgumentError) do
57
+ Rake::RDocTask.new(:foo => "bar")
58
+ end
59
+
60
+ begin
61
+ Rake::RDocTask.new(:foo => "bar")
62
+ rescue ArgumentError => e
63
+ assert_match(/foo/, e.message)
64
+ end
65
+ end
66
+
67
+ def test_inline_source_is_enabled_by_default
68
+ rd = Rake::RDocTask.new
69
+ assert rd.option_list.include?('--inline-source')
70
+ end
71
+
72
+ def test_inline_source_option_is_only_appended_if_option_not_already_given
73
+ rd = Rake::RDocTask.new
74
+ rd.options << '--inline-source'
75
+ assert_equal 1, rd.option_list.grep('--inline-source').size
76
+
77
+ rd = Rake::RDocTask.new
78
+ rd.options << '-S'
79
+ assert_equal 1, rd.option_list.grep('-S').size
80
+ assert_equal 0, rd.option_list.grep('--inline-source').size
81
+ end
82
+
83
+ def test_inline_source_option_can_be_disabled
84
+ rd = Rake::RDocTask.new
85
+ rd.inline_source = false
86
+ assert !rd.option_list.include?('--inline-source')
87
+ end
88
+ end
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'rake'
5
+ require 'test/rake_test_setup'
6
+
7
+ # ====================================================================
8
+ class TestRequire < Test::Unit::TestCase
9
+ include TestMethods
10
+
11
+ def test_can_load_rake_library
12
+ app = Rake::Application.new
13
+ assert app.instance_eval {
14
+ rake_require("test2", ['test/data/rakelib'], [])
15
+ }
16
+ end
17
+
18
+ def test_wont_reload_rake_library
19
+ app = Rake::Application.new
20
+ assert ! app.instance_eval {
21
+ rake_require("test2", ['test/data/rakelib'], ['test2'])
22
+ }
23
+ end
24
+
25
+ def test_throws_error_if_library_not_found
26
+ app = Rake::Application.new
27
+ ex = assert_exception(LoadError) {
28
+ assert app.instance_eval {
29
+ rake_require("testx", ['test/data/rakelib'], [])
30
+ }
31
+ }
32
+ assert_match(/x/, ex.message)
33
+ end
34
+ end
35
+