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,374 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'fileutils'
5
+ require 'rake'
6
+ require 'test/filecreation'
7
+ require 'test/capture_stdout'
8
+ require 'test/rake_test_setup'
9
+
10
+ ######################################################################
11
+ class TestTask < Test::Unit::TestCase
12
+ include CaptureStdout
13
+ include Rake
14
+ include TestMethods
15
+
16
+ def setup
17
+ Task.clear
18
+ end
19
+
20
+ def test_create
21
+ arg = nil
22
+ t = task(:name) { |task| arg = task; 1234 }
23
+ assert_equal "name", t.name
24
+ assert_equal [], t.prerequisites
25
+ assert t.needed?
26
+ t.execute(0)
27
+ assert_equal t, arg
28
+ assert_nil t.source
29
+ assert_equal [], t.sources
30
+ end
31
+
32
+ def test_inspect
33
+ t = task(:foo, :needs => [:bar, :baz])
34
+ assert_equal "<Rake::Task foo => [bar, baz]>", t.inspect
35
+ end
36
+
37
+ def test_invoke
38
+ runlist = []
39
+ t1 = task(:t1 => [:t2, :t3]) { |t| runlist << t.name; 3321 }
40
+ t2 = task(:t2) { |t| runlist << t.name }
41
+ t3 = task(:t3) { |t| runlist << t.name }
42
+ assert_equal ["t2", "t3"], t1.prerequisites
43
+ t1.invoke
44
+ assert_equal ["t2", "t3", "t1"], runlist
45
+ end
46
+
47
+ def test_invoke_with_circular_dependencies
48
+ runlist = []
49
+ t1 = task(:t1 => [:t2]) { |t| runlist << t.name; 3321 }
50
+ t2 = task(:t2 => [:t1]) { |t| runlist << t.name }
51
+ assert_equal ["t2"], t1.prerequisites
52
+ assert_equal ["t1"], t2.prerequisites
53
+ ex = assert_exception RuntimeError do
54
+ t1.invoke
55
+ end
56
+ assert_match(/circular dependency/i, ex.message)
57
+ assert_match(/t1 => t2 => t1/, ex.message)
58
+ end
59
+
60
+ def test_dry_run_prevents_actions
61
+ Rake.application.options.dryrun = true
62
+ runlist = []
63
+ t1 = task(:t1) { |t| runlist << t.name; 3321 }
64
+ out = capture_stdout { t1.invoke }
65
+ assert_match(/execute .*t1/i, out)
66
+ assert_match(/dry run/i, out)
67
+ assert_no_match(/invoke/i, out)
68
+ assert_equal [], runlist
69
+ ensure
70
+ Rake.application.options.dryrun = false
71
+ end
72
+
73
+ def test_tasks_can_be_traced
74
+ Rake.application.options.trace = true
75
+ t1 = task(:t1)
76
+ out = capture_stdout {
77
+ t1.invoke
78
+ }
79
+ assert_match(/invoke t1/i, out)
80
+ assert_match(/execute t1/i, out)
81
+ ensure
82
+ Rake.application.options.trace = false
83
+ end
84
+
85
+ def test_no_double_invoke
86
+ runlist = []
87
+ t1 = task(:t1 => [:t2, :t3]) { |t| runlist << t.name; 3321 }
88
+ t2 = task(:t2 => [:t3]) { |t| runlist << t.name }
89
+ t3 = task(:t3) { |t| runlist << t.name }
90
+ t1.invoke
91
+ assert_equal ["t3", "t2", "t1"], runlist
92
+ end
93
+
94
+ def test_can_double_invoke_with_reenable
95
+ runlist = []
96
+ t1 = task(:t1) { |t| runlist << t.name }
97
+ t1.invoke
98
+ t1.reenable
99
+ t1.invoke
100
+ assert_equal ["t1", "t1"], runlist
101
+ end
102
+
103
+ def test_clear
104
+ t = task("t" => "a") { }
105
+ t.clear
106
+ assert t.prerequisites.empty?, "prerequisites should be empty"
107
+ assert t.actions.empty?, "actions should be empty"
108
+ end
109
+
110
+ def test_clear_prerequisites
111
+ t = task("t" => ["a", "b"])
112
+ assert_equal ['a', 'b'], t.prerequisites
113
+ t.clear_prerequisites
114
+ assert_equal [], t.prerequisites
115
+ end
116
+
117
+ def test_clear_actions
118
+ t = task("t") { }
119
+ t.clear_actions
120
+ assert t.actions.empty?, "actions should be empty"
121
+ end
122
+
123
+ def test_find
124
+ task :tfind
125
+ assert_equal "tfind", Task[:tfind].name
126
+ ex = assert_exception(RuntimeError) { Task[:leaves] }
127
+ assert_equal "Don't know how to build task 'leaves'", ex.message
128
+ end
129
+
130
+ def test_defined
131
+ assert ! Task.task_defined?(:a)
132
+ task :a
133
+ assert Task.task_defined?(:a)
134
+ end
135
+
136
+ def test_multi_invocations
137
+ runs = []
138
+ p = proc do |t| runs << t.name end
139
+ task({:t1=>[:t2,:t3]}, &p)
140
+ task({:t2=>[:t3]}, &p)
141
+ task(:t3, &p)
142
+ Task[:t1].invoke
143
+ assert_equal ["t1", "t2", "t3"], runs.sort
144
+ end
145
+
146
+ def test_task_list
147
+ task :t2
148
+ task :t1 => [:t2]
149
+ assert_equal ["t1", "t2"], Task.tasks.collect {|t| t.name}
150
+ end
151
+
152
+ def test_task_gives_name_on_to_s
153
+ task :abc
154
+ assert_equal "abc", Task[:abc].to_s
155
+ end
156
+
157
+ def test_symbols_can_be_prerequisites
158
+ task :a => :b
159
+ assert_equal ["b"], Task[:a].prerequisites
160
+ end
161
+
162
+ def test_strings_can_be_prerequisites
163
+ task :a => "b"
164
+ assert_equal ["b"], Task[:a].prerequisites
165
+ end
166
+
167
+ def test_arrays_can_be_prerequisites
168
+ task :a => ["b", "c"]
169
+ assert_equal ["b", "c"], Task[:a].prerequisites
170
+ end
171
+
172
+ def test_filelists_can_be_prerequisites
173
+ task :a => FileList.new.include("b", "c")
174
+ assert_equal ["b", "c"], Task[:a].prerequisites
175
+ end
176
+
177
+ def test_investigation_output
178
+ t1 = task(:t1 => [:t2, :t3]) { |t| runlist << t.name; 3321 }
179
+ task(:t2)
180
+ task(:t3)
181
+ out = t1.investigation
182
+ assert_match(/class:\s*Rake::Task/, out)
183
+ assert_match(/needed:\s*true/, out)
184
+ assert_match(/pre-requisites:\s*--t[23]/, out)
185
+ end
186
+
187
+
188
+ def test_extended_comments
189
+ desc %{
190
+ This is a comment.
191
+
192
+ And this is the extended comment.
193
+ name -- Name of task to execute.
194
+ rev -- Software revision to use.
195
+ }
196
+ t = task(:t, :name, :rev)
197
+ assert_equal "[name,rev]", t.arg_description
198
+ assert_equal "This is a comment.", t.comment
199
+ assert_match(/^\s*name -- Name/, t.full_comment)
200
+ assert_match(/^\s*rev -- Software/, t.full_comment)
201
+ assert_match(/\A\s*This is a comment\.$/, t.full_comment)
202
+ end
203
+
204
+ def test_multiple_comments
205
+ desc "line one"
206
+ t = task(:t)
207
+ desc "line two"
208
+ task(:t)
209
+ assert_equal "line one / line two", t.comment
210
+ end
211
+
212
+ def test_settable_comments
213
+ t = task(:t)
214
+ t.comment = "HI"
215
+ assert_equal "HI", t.comment
216
+ end
217
+ end
218
+
219
+ ######################################################################
220
+ class TestTaskWithArguments < Test::Unit::TestCase
221
+ include CaptureStdout
222
+ include Rake
223
+ include TestMethods
224
+
225
+ def setup
226
+ Task.clear
227
+ end
228
+
229
+ def test_no_args_given
230
+ t = task :t
231
+ assert_equal [], t.arg_names
232
+ end
233
+
234
+ def test_args_given
235
+ t = task :t, :a, :b
236
+ assert_equal [:a, :b], t.arg_names
237
+ end
238
+
239
+ def test_name_and_needs
240
+ t = task(:t => [:pre])
241
+ assert_equal "t", t.name
242
+ assert_equal [], t.arg_names
243
+ assert_equal ["pre"], t.prerequisites
244
+ end
245
+
246
+ def test_name_and_explicit_needs
247
+ t = task(:t, :needs => [:pre])
248
+ assert_equal "t", t.name
249
+ assert_equal [], t.arg_names
250
+ assert_equal ["pre"], t.prerequisites
251
+ end
252
+
253
+ def test_name_args_and_explicit_needs
254
+ t = task(:t, :x, :y, :needs => [:pre])
255
+ assert_equal "t", t.name
256
+ assert_equal [:x, :y], t.arg_names
257
+ assert_equal ["pre"], t.prerequisites
258
+ end
259
+
260
+ def test_illegal_keys_in_task_name_hash
261
+ assert_exception RuntimeError do
262
+ t = task(:t, :x, :y => 1, :needs => [:pre])
263
+ end
264
+ end
265
+
266
+ def test_arg_list_is_empty_if_no_args_given
267
+ t = task(:t) { |tt, args| assert_equal({}, args.to_hash) }
268
+ t.invoke(1, 2, 3)
269
+ end
270
+
271
+ def test_tasks_can_access_arguments_as_hash
272
+ t = task :t, :a, :b, :c do |tt, args|
273
+ assert_equal({:a => 1, :b => 2, :c => 3}, args.to_hash)
274
+ assert_equal 1, args[:a]
275
+ assert_equal 2, args[:b]
276
+ assert_equal 3, args[:c]
277
+ assert_equal 1, args.a
278
+ assert_equal 2, args.b
279
+ assert_equal 3, args.c
280
+ end
281
+ t.invoke(1, 2, 3)
282
+ end
283
+
284
+ def test_actions_of_various_arity_are_ok_with_args
285
+ notes = []
286
+ t = task(:t, :x) do
287
+ notes << :a
288
+ end
289
+ t.enhance do | |
290
+ notes << :b
291
+ end
292
+ t.enhance do |task|
293
+ notes << :c
294
+ assert_kind_of Task, task
295
+ end
296
+ t.enhance do |t2, args|
297
+ notes << :d
298
+ assert_equal t, t2
299
+ assert_equal({:x => 1}, args.to_hash)
300
+ end
301
+ assert_nothing_raised do t.invoke(1) end
302
+ assert_equal [:a, :b, :c, :d], notes
303
+ end
304
+
305
+ def test_arguments_are_passed_to_block
306
+ t = task(:t, :a, :b) { |tt, args|
307
+ assert_equal( { :a => 1, :b => 2 }, args.to_hash )
308
+ }
309
+ t.invoke(1, 2)
310
+ end
311
+
312
+ def test_extra_parameters_are_ignored
313
+ t = task(:t, :a) { |tt, args|
314
+ assert_equal 1, args.a
315
+ assert_nil args.b
316
+ }
317
+ t.invoke(1, 2)
318
+ end
319
+
320
+ def test_arguments_are_passed_to_all_blocks
321
+ counter = 0
322
+ t = task :t, :a
323
+ task :t do |tt, args|
324
+ assert_equal 1, args.a
325
+ counter += 1
326
+ end
327
+ task :t do |tt, args|
328
+ assert_equal 1, args.a
329
+ counter += 1
330
+ end
331
+ t.invoke(1)
332
+ assert_equal 2, counter
333
+ end
334
+
335
+ def test_block_with_no_parameters_is_ok
336
+ t = task(:t) { }
337
+ t.invoke(1, 2)
338
+ end
339
+
340
+ def test_name_with_args
341
+ desc "T"
342
+ t = task(:tt, :a, :b)
343
+ assert_equal "tt", t.name
344
+ assert_equal "T", t.comment
345
+ assert_equal "[a,b]", t.arg_description
346
+ assert_equal "tt[a,b]", t.name_with_args
347
+ assert_equal [:a, :b],t.arg_names
348
+ end
349
+
350
+ def test_named_args_are_passed_to_prereqs
351
+ value = nil
352
+ pre = task(:pre, :rev) { |t, args| value = args.rev }
353
+ t = task(:t, :name, :rev, :needs => [:pre])
354
+ t.invoke("bill", "1.2")
355
+ assert_equal "1.2", value
356
+ end
357
+
358
+ def test_args_not_passed_if_no_prereq_names
359
+ pre = task(:pre) { |t, args|
360
+ assert_equal({}, args.to_hash)
361
+ assert_equal "bill", args.name
362
+ }
363
+ t = task(:t, :name, :rev, :needs => [:pre])
364
+ t.invoke("bill", "1.2")
365
+ end
366
+
367
+ def test_args_not_passed_if_no_arg_names
368
+ pre = task(:pre, :rev) { |t, args|
369
+ assert_equal({}, args.to_hash)
370
+ }
371
+ t = task(:t, :needs => [:pre])
372
+ t.invoke("bill", "1.2")
373
+ end
374
+ end
@@ -0,0 +1,77 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'rake/testtask'
5
+
6
+ class TestTestTask < Test::Unit::TestCase
7
+ include Rake
8
+ include TestMethods
9
+
10
+ def setup
11
+ Task.clear
12
+ ENV.delete('TEST')
13
+ end
14
+
15
+ def teardown
16
+ FileUtils.rm_rf("testdata")
17
+ end
18
+
19
+ def test_no_task
20
+ assert ! Task.task_defined?(:test)
21
+ end
22
+
23
+ def test_defaults
24
+ tt = Rake::TestTask.new do |t| end
25
+ assert_not_nil tt
26
+ assert_equal :test, tt.name
27
+ assert_equal ['lib'], tt.libs
28
+ assert_equal 'test/test*.rb', tt.pattern
29
+ assert_equal false, tt.verbose
30
+ assert Task.task_defined?(:test)
31
+ end
32
+
33
+ def test_non_defaults
34
+ tt = Rake::TestTask.new(:example) do |t|
35
+ t.libs = ['src', 'ext']
36
+ t.pattern = 'test/tc_*.rb'
37
+ t.verbose = true
38
+ end
39
+ assert_not_nil tt
40
+ assert_equal :example, tt.name
41
+ assert_equal ['src', 'ext'], tt.libs
42
+ assert_equal 'test/tc_*.rb', tt.pattern
43
+ assert_equal true, tt.verbose
44
+ assert Task.task_defined?(:example)
45
+ end
46
+
47
+ def test_pattern
48
+ tt = Rake::TestTask.new do |t|
49
+ t.pattern = '*.rb'
50
+ end
51
+ assert_equal ['install.rb'], tt.file_list.to_a
52
+ end
53
+
54
+ def test_env_test
55
+ ENV['TEST'] = 'testfile.rb'
56
+ tt = Rake::TestTask.new do |t|
57
+ t.pattern = '*'
58
+ end
59
+ assert_equal ["testfile.rb"], tt.file_list.to_a
60
+ end
61
+
62
+ def test_test_files
63
+ tt = Rake::TestTask.new do |t|
64
+ t.test_files = FileList['a.rb', 'b.rb']
65
+ end
66
+ assert_equal ["a.rb", 'b.rb'], tt.file_list.to_a
67
+ end
68
+
69
+ def test_both_pattern_and_test_files
70
+ tt = Rake::TestTask.new do |t|
71
+ t.test_files = FileList['a.rb', 'b.rb']
72
+ t.pattern = '*.rb'
73
+ end
74
+ assert_equal ['a.rb', 'b.rb', 'install.rb'], tt.file_list.to_a
75
+ end
76
+
77
+ end
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ require 'rubygems'
5
+ rescue LoadError
6
+ # got no gems
7
+ end
8
+
9
+ require 'test/unit'
10
+ require 'flexmock/test_unit'
11
+ require 'test/capture_stdout'
12
+ require 'test/rake_test_setup'
13
+ require 'rake'
14
+
15
+ class TestTopLevelFunctions < Test::Unit::TestCase
16
+ include CaptureStdout
17
+ include TestMethods
18
+
19
+ def setup
20
+ super
21
+ @app = Rake.application
22
+ Rake.application = flexmock("app")
23
+ end
24
+
25
+ def teardown
26
+ Rake.application = @app
27
+ super
28
+ end
29
+
30
+ def test_namespace
31
+ Rake.application.should_receive(:in_namespace).with("xyz", any).once
32
+ namespace "xyz" do end
33
+ end
34
+
35
+ def test_import
36
+ Rake.application.should_receive(:add_import).with("x").once.ordered
37
+ Rake.application.should_receive(:add_import).with("y").once.ordered
38
+ Rake.application.should_receive(:add_import).with("z").once.ordered
39
+ import('x', 'y', 'z')
40
+ end
41
+
42
+ def test_when_writing
43
+ out = capture_stdout do
44
+ when_writing("NOTWRITING") do
45
+ puts "WRITING"
46
+ end
47
+ end
48
+ assert_equal "WRITING\n", out
49
+ end
50
+
51
+ def test_when_not_writing
52
+ RakeFileUtils.nowrite_flag = true
53
+ out = capture_stdout do
54
+ when_writing("NOTWRITING") do
55
+ puts "WRITING"
56
+ end
57
+ end
58
+ assert_equal "DRYRUN: NOTWRITING\n", out
59
+ ensure
60
+ RakeFileUtils.nowrite_flag = false
61
+ end
62
+
63
+ def test_missing_constants_task
64
+ Rake.application.should_receive(:const_warning).with(:Task).once
65
+ Object.const_missing(:Task)
66
+ end
67
+
68
+ def test_missing_constants_file_task
69
+ Rake.application.should_receive(:const_warning).with(:FileTask).once
70
+ Object.const_missing(:FileTask)
71
+ end
72
+
73
+ def test_missing_constants_file_creation_task
74
+ Rake.application.should_receive(:const_warning).with(:FileCreationTask).once
75
+ Object.const_missing(:FileCreationTask)
76
+ end
77
+
78
+ def test_missing_constants_rake_app
79
+ Rake.application.should_receive(:const_warning).with(:RakeApp).once
80
+ Object.const_missing(:RakeApp)
81
+ end
82
+
83
+ def test_missing_other_constant
84
+ assert_exception(NameError) do Object.const_missing(:Xyz) end
85
+ end
86
+ end
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'test/rake_test_setup'
5
+ require 'test/in_environment'
6
+
7
+ require 'rake'
8
+
9
+ class TestWin32 < Test::Unit::TestCase
10
+ include InEnvironment
11
+ include TestMethods
12
+
13
+ Win32 = Rake::Win32
14
+
15
+ def test_win32_system_dir_uses_home_if_defined
16
+ in_environment('RAKE_SYSTEM' => nil, 'HOME' => 'C:\\HP') do
17
+ assert_equal "C:/HP/Rake", Win32.win32_system_dir
18
+ end
19
+ end
20
+
21
+ def test_win32_system_dir_uses_homedrive_homepath_when_no_home_defined
22
+ in_environment(
23
+ 'RAKE_SYSTEM' => nil,
24
+ 'HOME' => nil,
25
+ 'HOMEDRIVE' => "C:",
26
+ 'HOMEPATH' => "\\HP"
27
+ ) do
28
+ assert_equal "C:/HP/Rake", Win32.win32_system_dir
29
+ end
30
+ end
31
+
32
+ def test_win32_system_dir_uses_appdata_when_no_home_or_home_combo
33
+ in_environment(
34
+ 'RAKE_SYSTEM' => nil,
35
+ 'HOME' => nil,
36
+ 'HOMEDRIVE' => nil,
37
+ 'HOMEPATH' => nil,
38
+ 'APPDATA' => "C:\\Documents and Settings\\HP\\Application Data"
39
+ ) do
40
+ assert_equal "C:/Documents and Settings/HP/Application Data/Rake", Win32.win32_system_dir
41
+ end
42
+ end
43
+
44
+ def test_win32_system_dir_fallback_to_userprofile_otherwise
45
+ in_environment(
46
+ 'RAKE_SYSTEM' => nil,
47
+ 'HOME' => nil,
48
+ 'HOMEDRIVE' => nil,
49
+ 'HOMEPATH' => nil,
50
+ 'APPDATA' => nil,
51
+ 'USERPROFILE' => "C:\\Documents and Settings\\HP"
52
+ ) do
53
+ assert_equal "C:/Documents and Settings/HP/Rake", Win32.win32_system_dir
54
+ end
55
+ end
56
+
57
+ def test_win32_system_dir_nil_of_no_env_vars
58
+ in_environment(
59
+ 'RAKE_SYSTEM' => nil,
60
+ 'HOME' => nil,
61
+ 'HOMEDRIVE' => nil,
62
+ "HOMEPATH" => nil,
63
+ 'APPDATA' => nil,
64
+ "USERPROFILE" => nil
65
+ ) do
66
+ assert_exception(Rake::Win32::Win32HomeError) do
67
+ Win32.win32_system_dir
68
+ end
69
+ end
70
+ end
71
+
72
+ end
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{configuration}
5
+ s.version = "1.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Ara T. Howard"]
9
+ s.date = %q{2009-09-23}
10
+ s.email = %q{ara.t.howard@gmail.com}
11
+ s.files = ["config", "config/a.rb", "config/b.rb", "config/c.rb", "config/d.rb", "config/e.rb", "configuration.gemspec", "lib", "lib/configuration.rb", "Rakefile", "README", "README.erb", "samples", "samples/a.rb", "samples/b.rb", "samples/c.rb", "samples/d.rb", "samples/e.rb"]
12
+ s.homepage = %q{http://github.com/ahoward/configuration/tree/master}
13
+ s.require_paths = ["lib"]
14
+ s.rubyforge_project = %q{codeforpeople}
15
+ s.rubygems_version = %q{1.3.7}
16
+ s.summary = %q{configuration}
17
+
18
+ if s.respond_to? :specification_version then
19
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
20
+ s.specification_version = 2
21
+
22
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
23
+ else
24
+ end
25
+ else
26
+ end
27
+ end
@@ -0,0 +1,44 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{launchy}
5
+ s.version = "0.3.7"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Jeremy Hinegardner"]
9
+ s.date = %q{2010-07-19}
10
+ s.default_executable = %q{launchy}
11
+ s.description = %q{Launchy is helper class for launching cross-platform applications in a
12
+ fire and forget manner.
13
+
14
+ There are application concepts (browser, email client, etc) that are
15
+ common across all platforms, and they may be launched differently on
16
+ each platform. Launchy is here to make a common approach to launching
17
+ external application from within ruby programs.}
18
+ s.email = %q{jeremy@copiousfreetime.org}
19
+ s.executables = ["launchy"]
20
+ s.extra_rdoc_files = ["README", "HISTORY", "LICENSE", "lib/launchy/application.rb", "lib/launchy/browser.rb", "lib/launchy/command_line.rb", "lib/launchy/paths.rb", "lib/launchy/version.rb", "lib/launchy.rb"]
21
+ s.files = ["bin/launchy", "lib/launchy/application.rb", "lib/launchy/browser.rb", "lib/launchy/command_line.rb", "lib/launchy/paths.rb", "lib/launchy/version.rb", "lib/launchy.rb", "spec/application_spec.rb", "spec/browser_spec.rb", "spec/launchy_spec.rb", "spec/paths_spec.rb", "spec/spec_helper.rb", "spec/version_spec.rb", "spec/tattle-host-os.yml", "README", "HISTORY", "LICENSE", "tasks/announce.rake", "tasks/distribution.rake", "tasks/documentation.rake", "tasks/rspec.rake", "tasks/rubyforge.rake", "tasks/config.rb", "tasks/utils.rb", "Rakefile", "gemspec.rb"]
22
+ s.homepage = %q{http://copiousfreetime.rubyforge.org/launchy/}
23
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--main", "README"]
24
+ s.require_paths = ["lib"]
25
+ s.rubyforge_project = %q{copiousfreetime}
26
+ s.rubygems_version = %q{1.3.7}
27
+ s.summary = %q{Launchy is helper class for launching cross-platform applications in a fire and forget manner}
28
+
29
+ if s.respond_to? :specification_version then
30
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
31
+ s.specification_version = 3
32
+
33
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
34
+ s.add_runtime_dependency(%q<rake>, [">= 0.8.1"])
35
+ s.add_runtime_dependency(%q<configuration>, [">= 0.0.5"])
36
+ else
37
+ s.add_dependency(%q<rake>, [">= 0.8.1"])
38
+ s.add_dependency(%q<configuration>, [">= 0.0.5"])
39
+ end
40
+ else
41
+ s.add_dependency(%q<rake>, [">= 0.8.1"])
42
+ s.add_dependency(%q<configuration>, [">= 0.0.5"])
43
+ end
44
+ end