spline 0.0.11 → 0.0.12

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 (139) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/lib/spline/action_command.rb +21 -0
  4. data/lib/spline/install_command.rb +28 -0
  5. data/lib/spline/process_command.rb +20 -0
  6. data/lib/spline/spline_cli.rb +7 -19
  7. data/lib/spline/templates/action.tt +7 -0
  8. data/lib/spline/templates/my_first_action.tt +11 -0
  9. data/lib/spline/templates/my_process.tt +21 -0
  10. data/lib/spline/templates/my_second_action.tt +11 -0
  11. data/lib/spline/templates/process.tt +6 -0
  12. data/lib/spline/version.rb +1 -1
  13. data/spline.gemspec +0 -1
  14. metadata +9 -140
  15. data/vendor/bundle/ruby/2.1.0/bin/rake +0 -23
  16. data/vendor/bundle/ruby/2.1.0/bin/spline +0 -23
  17. data/vendor/bundle/ruby/2.1.0/build_info/rake-10.3.2.info +0 -1
  18. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.autotest +0 -7
  19. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.gemtest +0 -0
  20. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.rubocop.yml +0 -27
  21. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.togglerc +0 -7
  22. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/CONTRIBUTING.rdoc +0 -34
  23. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/History.rdoc +0 -609
  24. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/MIT-LICENSE +0 -21
  25. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/Manifest.txt +0 -162
  26. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/README.rdoc +0 -137
  27. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/Rakefile +0 -81
  28. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/bin/rake +0 -33
  29. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/alt_system.rb +0 -110
  30. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/application.rb +0 -783
  31. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/backtrace.rb +0 -23
  32. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/clean.rb +0 -76
  33. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/cloneable.rb +0 -16
  34. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/.document +0 -0
  35. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/compositepublisher.rb +0 -21
  36. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/ftptools.rb +0 -137
  37. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/publisher.rb +0 -81
  38. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/rubyforgepublisher.rb +0 -18
  39. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/sshpublisher.rb +0 -61
  40. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/sys.rb +0 -4
  41. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/cpu_counter.rb +0 -109
  42. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/default_loader.rb +0 -14
  43. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/dsl_definition.rb +0 -198
  44. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/early_time.rb +0 -21
  45. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/core.rb +0 -25
  46. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/module.rb +0 -1
  47. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/string.rb +0 -173
  48. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/time.rb +0 -15
  49. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_creation_task.rb +0 -24
  50. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_list.rb +0 -414
  51. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_task.rb +0 -46
  52. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_utils.rb +0 -116
  53. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_utils_ext.rb +0 -144
  54. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/gempackagetask.rb +0 -4
  55. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/invocation_chain.rb +0 -56
  56. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/invocation_exception_mixin.rb +0 -16
  57. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/linked_list.rb +0 -103
  58. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/loaders/makefile.rb +0 -40
  59. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/multi_task.rb +0 -13
  60. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/name_space.rb +0 -38
  61. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/packagetask.rb +0 -202
  62. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/pathmap.rb +0 -3
  63. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/phony.rb +0 -15
  64. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/private_reader.rb +0 -20
  65. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/promise.rb +0 -99
  66. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/pseudo_status.rb +0 -29
  67. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rake_module.rb +0 -38
  68. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rake_test_loader.rb +0 -22
  69. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rdoctask.rb +0 -4
  70. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ruby182_test_unit_fix.rb +0 -29
  71. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rule_recursion_overflow_error.rb +0 -20
  72. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/runtest.rb +0 -27
  73. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/scope.rb +0 -42
  74. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task.rb +0 -383
  75. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task_argument_error.rb +0 -7
  76. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task_arguments.rb +0 -98
  77. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task_manager.rb +0 -310
  78. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/tasklib.rb +0 -24
  79. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/testtask.rb +0 -212
  80. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/thread_history_display.rb +0 -48
  81. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/thread_pool.rb +0 -164
  82. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/trace_output.rb +0 -22
  83. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/version.rb +0 -7
  84. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/win32.rb +0 -56
  85. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake.rb +0 -78
  86. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/rakelib/publish.rake +0 -20
  87. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/rakelib/test_times.rake +0 -25
  88. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/file_creation.rb +0 -34
  89. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/helper.rb +0 -127
  90. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/support/rakefile_definitions.rb +0 -478
  91. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/support/ruby_runner.rb +0 -33
  92. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_private_reader.rb +0 -42
  93. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake.rb +0 -40
  94. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_application.rb +0 -641
  95. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_application_options.rb +0 -466
  96. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_backtrace.rb +0 -119
  97. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_clean.rb +0 -55
  98. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_cpu_counter.rb +0 -50
  99. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_definitions.rb +0 -79
  100. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_directory_task.rb +0 -63
  101. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_dsl.rb +0 -40
  102. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_early_time.rb +0 -31
  103. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_extension.rb +0 -59
  104. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_creation_task.rb +0 -56
  105. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_list.rb +0 -627
  106. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_list_path_map.rb +0 -8
  107. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_task.rb +0 -186
  108. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_utils.rb +0 -309
  109. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_ftp_file.rb +0 -74
  110. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_functional.rb +0 -482
  111. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_invocation_chain.rb +0 -64
  112. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_linked_list.rb +0 -84
  113. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_makefile_loader.rb +0 -46
  114. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_multi_task.rb +0 -58
  115. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_name_space.rb +0 -57
  116. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_package_task.rb +0 -79
  117. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_path_map.rb +0 -168
  118. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_path_map_explode.rb +0 -34
  119. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_path_map_partial.rb +0 -18
  120. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_pseudo_status.rb +0 -21
  121. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_rake_test_loader.rb +0 -20
  122. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_reduce_compat.rb +0 -26
  123. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_require.rb +0 -40
  124. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_rules.rb +0 -388
  125. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_scope.rb +0 -44
  126. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task.rb +0 -392
  127. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_argument_parsing.rb +0 -109
  128. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_arguments.rb +0 -127
  129. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_lib.rb +0 -9
  130. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_manager.rb +0 -178
  131. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_manager_argument_resolution.rb +0 -19
  132. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_with_arguments.rb +0 -171
  133. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_test_task.rb +0 -141
  134. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_thread_pool.rb +0 -142
  135. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_top_level_functions.rb +0 -71
  136. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_win32.rb +0 -72
  137. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_thread_history_display.rb +0 -101
  138. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_trace_output.rb +0 -52
  139. data/vendor/bundle/ruby/2.1.0/specifications/rake-10.3.2.gemspec +0 -45
@@ -1,388 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
- require 'fileutils'
3
-
4
- class TestRakeRules < Rake::TestCase
5
- include Rake
6
-
7
- SRCFILE = "abc.c"
8
- SRCFILE2 = "xyz.c"
9
- FTNFILE = "abc.f"
10
- OBJFILE = "abc.o"
11
- FOOFILE = "foo"
12
- DOTFOOFILE = ".foo"
13
-
14
- def setup
15
- super
16
-
17
- Task.clear
18
- @runs = []
19
- end
20
-
21
- def test_multiple_rules1
22
- create_file(FTNFILE)
23
- delete_file(SRCFILE)
24
- delete_file(OBJFILE)
25
- rule(/\.o$/ => ['.c']) do @runs << :C end
26
- rule(/\.o$/ => ['.f']) do @runs << :F end
27
- t = Task[OBJFILE]
28
- t.invoke
29
- Task[OBJFILE].invoke
30
- assert_equal [:F], @runs
31
- end
32
-
33
- def test_multiple_rules2
34
- create_file(FTNFILE)
35
- delete_file(SRCFILE)
36
- delete_file(OBJFILE)
37
- rule(/\.o$/ => ['.f']) do @runs << :F end
38
- rule(/\.o$/ => ['.c']) do @runs << :C end
39
- Task[OBJFILE].invoke
40
- assert_equal [:F], @runs
41
- end
42
-
43
- def test_create_with_source
44
- create_file(SRCFILE)
45
- rule(/\.o$/ => ['.c']) do |t|
46
- @runs << t.name
47
- assert_equal OBJFILE, t.name
48
- assert_equal SRCFILE, t.source
49
- end
50
- Task[OBJFILE].invoke
51
- assert_equal [OBJFILE], @runs
52
- end
53
-
54
- def test_single_dependent
55
- create_file(SRCFILE)
56
- rule(/\.o$/ => '.c') do |t|
57
- @runs << t.name
58
- end
59
- Task[OBJFILE].invoke
60
- assert_equal [OBJFILE], @runs
61
- end
62
-
63
- def test_rule_can_be_created_by_string
64
- create_file(SRCFILE)
65
- rule '.o' => ['.c'] do |t|
66
- @runs << t.name
67
- end
68
- Task[OBJFILE].invoke
69
- assert_equal [OBJFILE], @runs
70
- end
71
-
72
- def test_rule_prereqs_can_be_created_by_string
73
- create_file(SRCFILE)
74
- rule '.o' => '.c' do |t|
75
- @runs << t.name
76
- end
77
- Task[OBJFILE].invoke
78
- assert_equal [OBJFILE], @runs
79
- end
80
-
81
- def test_plain_strings_as_dependents_refer_to_files
82
- create_file(SRCFILE)
83
- rule '.o' => SRCFILE do |t|
84
- @runs << t.name
85
- end
86
- Task[OBJFILE].invoke
87
- assert_equal [OBJFILE], @runs
88
- end
89
-
90
- def test_file_names_beginning_with_dot_can_be_tricked_into_referring_to_file
91
- verbose(false) do
92
- create_file('.foo')
93
- rule '.o' => "./.foo" do |t|
94
- @runs << t.name
95
- end
96
- Task[OBJFILE].invoke
97
- assert_equal [OBJFILE], @runs
98
- end
99
- end
100
-
101
- def test_file_names_beginning_with_dot_can_be_wrapped_in_lambda
102
- verbose(false) do
103
-
104
- create_file(".foo")
105
- rule '.o' => lambda { ".foo" } do |t|
106
- @runs << "#{t.name} - #{t.source}"
107
- end
108
- Task[OBJFILE].invoke
109
- assert_equal ["#{OBJFILE} - .foo"], @runs
110
- end
111
- end
112
-
113
- def test_file_names_containing_percent_can_be_wrapped_in_lambda
114
- verbose(false) do
115
- create_file("foo%x")
116
- rule '.o' => lambda { "foo%x" } do |t|
117
- @runs << "#{t.name} - #{t.source}"
118
- end
119
- Task[OBJFILE].invoke
120
- assert_equal ["#{OBJFILE} - foo%x"], @runs
121
- end
122
- end
123
-
124
- def test_non_extension_rule_name_refers_to_file
125
- verbose(false) do
126
- create_file("abc.c")
127
- rule "abc" => '.c' do |t|
128
- @runs << t.name
129
- end
130
- Task["abc"].invoke
131
- assert_equal ["abc"], @runs
132
- end
133
- end
134
-
135
- def test_pathmap_automatically_applies_to_name
136
- verbose(false) do
137
- create_file("zzabc.c")
138
- rule ".o" => 'zz%{x,a}n.c' do |t|
139
- @runs << "#{t.name} - #{t.source}"
140
- end
141
- Task["xbc.o"].invoke
142
- assert_equal ["xbc.o - zzabc.c"], @runs
143
- end
144
- end
145
-
146
- def test_plain_strings_are_just_filenames
147
- verbose(false) do
148
- create_file("plainname")
149
- rule ".o" => 'plainname' do |t|
150
- @runs << "#{t.name} - #{t.source}"
151
- end
152
- Task["xbc.o"].invoke
153
- assert_equal ["xbc.o - plainname"], @runs
154
- end
155
- end
156
-
157
- def test_rule_runs_when_explicit_task_has_no_actions
158
- create_file(SRCFILE)
159
- create_file(SRCFILE2)
160
- delete_file(OBJFILE)
161
- rule '.o' => '.c' do |t|
162
- @runs << t.source
163
- end
164
- file OBJFILE => [SRCFILE2]
165
- Task[OBJFILE].invoke
166
- assert_equal [SRCFILE], @runs
167
- end
168
-
169
- def test_close_matches_on_name_do_not_trigger_rule
170
- create_file("x.c")
171
- rule '.o' => ['.c'] do |t|
172
- @runs << t.name
173
- end
174
- assert_raises(RuntimeError) { Task['x.obj'].invoke }
175
- assert_raises(RuntimeError) { Task['x.xyo'].invoke }
176
- end
177
-
178
- def test_rule_rebuilds_obj_when_source_is_newer
179
- create_timed_files(OBJFILE, SRCFILE)
180
- rule(/\.o$/ => ['.c']) do
181
- @runs << :RULE
182
- end
183
- Task[OBJFILE].invoke
184
- assert_equal [:RULE], @runs
185
- end
186
-
187
- def test_rule_with_two_sources_runs_if_both_sources_are_present
188
- create_timed_files(OBJFILE, SRCFILE, SRCFILE2)
189
- rule OBJFILE => [lambda { SRCFILE }, lambda { SRCFILE2 }] do
190
- @runs << :RULE
191
- end
192
- Task[OBJFILE].invoke
193
- assert_equal [:RULE], @runs
194
- end
195
-
196
- def test_rule_with_two_sources_but_one_missing_does_not_run
197
- create_timed_files(OBJFILE, SRCFILE)
198
- delete_file(SRCFILE2)
199
- rule OBJFILE => [lambda { SRCFILE }, lambda { SRCFILE2 }] do
200
- @runs << :RULE
201
- end
202
- Task[OBJFILE].invoke
203
- assert_equal [], @runs
204
- end
205
-
206
- def test_rule_with_two_sources_builds_both_sources
207
- task 'x.aa'
208
- task 'x.bb'
209
- rule '.a' => '.aa' do
210
- @runs << "A"
211
- end
212
- rule '.b' => '.bb' do
213
- @runs << "B"
214
- end
215
- rule ".c" => ['.a', '.b'] do
216
- @runs << "C"
217
- end
218
- Task["x.c"].invoke
219
- assert_equal ["A", "B", "C"], @runs.sort
220
- end
221
-
222
- def test_second_rule_runs_when_first_rule_doesnt
223
- create_timed_files(OBJFILE, SRCFILE)
224
- delete_file(SRCFILE2)
225
- rule OBJFILE => [lambda { SRCFILE }, lambda { SRCFILE2 }] do
226
- @runs << :RULE1
227
- end
228
- rule OBJFILE => [lambda { SRCFILE }] do
229
- @runs << :RULE2
230
- end
231
- Task[OBJFILE].invoke
232
- assert_equal [:RULE2], @runs
233
- end
234
-
235
- def test_second_rule_doest_run_if_first_triggers
236
- create_timed_files(OBJFILE, SRCFILE, SRCFILE2)
237
- rule OBJFILE => [lambda { SRCFILE }, lambda { SRCFILE2 }] do
238
- @runs << :RULE1
239
- end
240
- rule OBJFILE => [lambda { SRCFILE }] do
241
- @runs << :RULE2
242
- end
243
- Task[OBJFILE].invoke
244
- assert_equal [:RULE1], @runs
245
- end
246
-
247
- def test_second_rule_doest_run_if_first_triggers_with_reversed_rules
248
- create_timed_files(OBJFILE, SRCFILE, SRCFILE2)
249
- rule OBJFILE => [lambda { SRCFILE }] do
250
- @runs << :RULE1
251
- end
252
- rule OBJFILE => [lambda { SRCFILE }, lambda { SRCFILE2 }] do
253
- @runs << :RULE2
254
- end
255
- Task[OBJFILE].invoke
256
- assert_equal [:RULE1], @runs
257
- end
258
-
259
- def test_rule_with_proc_dependent_will_trigger
260
- mkdir_p("src/jw")
261
- create_file("src/jw/X.java")
262
- rule %r(classes/.*\.class) => [
263
- proc { |fn| fn.pathmap("%{classes,src}d/%n.java") }
264
- ] do |task|
265
- assert_equal task.name, 'classes/jw/X.class'
266
- assert_equal task.source, 'src/jw/X.java'
267
- @runs << :RULE
268
- end
269
- Task['classes/jw/X.class'].invoke
270
- assert_equal [:RULE], @runs
271
- ensure
272
- rm_r("src", :verbose=>false) rescue nil
273
- end
274
-
275
- def test_proc_returning_lists_are_flattened_into_prereqs
276
- ran = false
277
- mkdir_p("flatten")
278
- create_file("flatten/a.txt")
279
- task 'flatten/b.data' do |t|
280
- ran = true
281
- touch t.name, :verbose => false
282
- end
283
- rule '.html' =>
284
- proc { |fn|
285
- [
286
- fn.ext("txt"),
287
- "flatten/b.data"
288
- ]
289
- } do |task|
290
- end
291
- Task['flatten/a.html'].invoke
292
- assert ran, "Should have triggered flattened dependency"
293
- ensure
294
- rm_r("flatten", :verbose=>false) rescue nil
295
- end
296
-
297
- def test_recursive_rules_will_work_as_long_as_they_terminate
298
- actions = []
299
- create_file("abc.xml")
300
- rule '.y' => '.xml' do actions << 'y' end
301
- rule '.c' => '.y' do actions << 'c'end
302
- rule '.o' => '.c' do actions << 'o'end
303
- rule '.exe' => '.o' do actions << 'exe'end
304
- Task["abc.exe"].invoke
305
- assert_equal ['y', 'c', 'o', 'exe'], actions
306
- end
307
-
308
- def test_recursive_rules_that_dont_terminate_will_overflow
309
- create_file("a.a")
310
- prev = 'a'
311
- ('b'..'z').each do |letter|
312
- rule ".#{letter}" => ".#{prev}" do |t| puts "#{t.name}" end
313
- prev = letter
314
- end
315
- ex = assert_raises(Rake::RuleRecursionOverflowError) {
316
- Task["a.z"].invoke
317
- }
318
- assert_match(/a\.z => a.y/, ex.message)
319
- end
320
-
321
- def test_rules_with_bad_dependents_will_fail
322
- rule "a" => [1] do |t| puts t.name end
323
- assert_raises(RuntimeError) do Task['a'].invoke end
324
- end
325
-
326
- def test_string_rule_with_args
327
- delete_file(OBJFILE)
328
- create_file(SRCFILE)
329
- rule '.o', [:a] => SRCFILE do |t, args|
330
- assert_equal 'arg', args.a
331
- end
332
- Task[OBJFILE].invoke('arg')
333
- end
334
-
335
- def test_regex_rule_with_args
336
- delete_file(OBJFILE)
337
- create_file(SRCFILE)
338
- rule(/.o$/, [:a] => SRCFILE) do |t, args|
339
- assert_equal 'arg', args.a
340
- end
341
- Task[OBJFILE].invoke('arg')
342
- end
343
-
344
- def test_string_rule_with_args_and_lambda_prereq
345
- delete_file(OBJFILE)
346
- create_file(SRCFILE)
347
- rule '.o', [:a] => [lambda{SRCFILE}]do |t, args|
348
- assert_equal 'arg', args.a
349
- end
350
- Task[OBJFILE].invoke('arg')
351
- end
352
-
353
- def test_regex_rule_with_args_and_lambda_prereq
354
- delete_file(OBJFILE)
355
- create_file(SRCFILE)
356
- rule(/.o$/, [:a] => [lambda{SRCFILE}]) do |t, args|
357
- assert_equal 'arg', args.a
358
- end
359
- Task[OBJFILE].invoke('arg')
360
- end
361
-
362
- def test_rule_with_method_prereq
363
- create_file(".foo")
364
- obj = Object.new
365
- def obj.find_prereq
366
- ".foo"
367
- end
368
- rule '.o' => obj.method(:find_prereq) do |t|
369
- @runs << "#{t.name} - #{t.source}"
370
- end
371
- Task[OBJFILE].invoke
372
- assert_equal ["#{OBJFILE} - .foo"], @runs
373
- end
374
-
375
- def test_rule_with_one_arg_method_prereq
376
- create_file(SRCFILE)
377
- obj = Object.new
378
- def obj.find_prereq(task_name)
379
- task_name.ext(".c")
380
- end
381
- rule '.o' => obj.method(:find_prereq) do |t|
382
- @runs << "#{t.name} - #{t.source}"
383
- end
384
- Task[OBJFILE].invoke
385
- assert_equal ["#{OBJFILE} - abc.c"], @runs
386
- end
387
-
388
- end
@@ -1,44 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
-
3
- class TestRakeScope < Rake::TestCase
4
- include Rake
5
-
6
- def test_path_against_empty_scope
7
- scope = Scope.make
8
- assert_equal scope, Scope::EMPTY
9
- assert_equal scope.path, ""
10
- end
11
-
12
- def test_path_against_one_element
13
- scope = Scope.make(:one)
14
- assert_equal "one", scope.path
15
- end
16
-
17
- def test_path_against_two_elements
18
- scope = Scope.make(:inner, :outer)
19
- assert_equal "outer:inner", scope.path
20
- end
21
-
22
- def test_path_with_task_name
23
- scope = Scope.make(:inner, :outer)
24
- assert_equal "outer:inner:task", scope.path_with_task_name("task")
25
- end
26
-
27
- def test_path_with_task_name_against_empty_scope
28
- scope = Scope.make
29
- assert_equal "task", scope.path_with_task_name("task")
30
- end
31
-
32
- def test_conj_against_two_elements
33
- scope = Scope.make.conj("B").conj("A")
34
- assert_equal Scope.make("A", "B"), scope
35
- end
36
-
37
- def test_trim
38
- scope = Scope.make("A", "B")
39
- assert_equal scope, scope.trim(0)
40
- assert_equal scope.tail, scope.trim(1)
41
- assert_equal scope.tail.tail, scope.trim(2)
42
- assert_equal scope.tail.tail, scope.trim(3)
43
- end
44
- end