spline 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
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,641 +0,0 @@
1
- require File.expand_path('../helper', __FILE__)
2
-
3
- class TestRakeApplication < Rake::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @app = Rake.application
9
- @app.options.rakelib = []
10
- end
11
-
12
- def setup_command_line(*options)
13
- ARGV.clear
14
- options.each do |option|
15
- ARGV << option
16
- end
17
- end
18
-
19
- def test_display_exception_details
20
- begin
21
- raise 'test'
22
- rescue => ex
23
- end
24
-
25
- out, err = capture_io do
26
- @app.display_error_message ex
27
- end
28
-
29
- assert_empty out
30
-
31
- assert_match 'rake aborted!', err
32
- assert_match __method__.to_s, err
33
- end
34
-
35
- def test_display_exception_details_cause
36
- skip 'Exception#cause not implemented' unless
37
- Exception.method_defined? :cause
38
-
39
- begin
40
- raise 'cause a'
41
- rescue
42
- begin
43
- raise 'cause b'
44
- rescue => ex
45
- end
46
- end
47
-
48
- out, err = capture_io do
49
- @app.display_error_message ex
50
- end
51
-
52
- assert_empty out
53
-
54
- assert_match 'cause a', err
55
- assert_match 'cause b', err
56
- end
57
-
58
- def test_display_exception_details_cause_loop
59
- skip 'Exception#cause not implemented' unless
60
- Exception.method_defined? :cause
61
-
62
- begin
63
- begin
64
- raise 'cause a'
65
- rescue => a
66
- begin
67
- raise 'cause b'
68
- rescue
69
- raise a
70
- end
71
- end
72
- rescue => ex
73
- end
74
-
75
- out, err = capture_io do
76
- @app.display_error_message ex
77
- end
78
-
79
- assert_empty out
80
-
81
- assert_match 'cause a', err
82
- assert_match 'cause b', err
83
- end
84
-
85
- def test_display_tasks
86
- @app.options.show_tasks = :tasks
87
- @app.options.show_task_pattern = //
88
- @app.last_description = "COMMENT"
89
- @app.define_task(Rake::Task, "t")
90
- out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
91
- assert_match(/^rake t/, out)
92
- assert_match(/# COMMENT/, out)
93
- end
94
-
95
- def test_display_tasks_with_long_comments
96
- @app.terminal_columns = 80
97
- @app.options.show_tasks = :tasks
98
- @app.options.show_task_pattern = //
99
- numbers = "1234567890" * 8
100
- @app.last_description = numbers
101
- @app.define_task(Rake::Task, "t")
102
-
103
- out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
104
-
105
- assert_match(/^rake t/, out)
106
- assert_match(/# #{numbers[0, 65]}\.\.\./, out)
107
- end
108
-
109
- def test_display_tasks_with_task_name_wider_than_tty_display
110
- @app.terminal_columns = 80
111
- @app.options.show_tasks = :tasks
112
- @app.options.show_task_pattern = //
113
- task_name = "task name" * 80
114
- @app.last_description = "something short"
115
- @app.define_task(Rake::Task, task_name)
116
-
117
- out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
118
-
119
- # Ensure the entire task name is output and we end up showing no description
120
- assert_match(/rake #{task_name} # .../, out)
121
- end
122
-
123
- def test_display_tasks_with_very_long_task_name_to_a_non_tty_shows_name_and_comment
124
- @app.options.show_tasks = :tasks
125
- @app.options.show_task_pattern = //
126
- @app.tty_output = false
127
- description = "something short"
128
- task_name = "task name" * 80
129
- @app.last_description = "something short"
130
- @app.define_task(Rake::Task, task_name)
131
-
132
- out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
133
-
134
- # Ensure the entire task name is output and we end up showing no description
135
- assert_match(/rake #{task_name} # #{description}/, out)
136
- end
137
-
138
- def test_display_tasks_with_long_comments_to_a_non_tty_shows_entire_comment
139
- @app.options.show_tasks = :tasks
140
- @app.options.show_task_pattern = //
141
- @app.tty_output = false
142
- @app.last_description = "1234567890" * 8
143
- @app.define_task(Rake::Task, "t")
144
- out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
145
- assert_match(/^rake t/, out)
146
- assert_match(/# #{@app.last_description}/, out)
147
- end
148
-
149
- def test_truncating_comments_to_a_non_tty
150
- @app.terminal_columns = 80
151
- @app.options.show_tasks = :tasks
152
- @app.options.show_task_pattern = //
153
- @app.tty_output = false
154
- numbers = "1234567890" * 8
155
- @app.last_description = numbers
156
- @app.define_task(Rake::Task, "t")
157
-
158
- out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
159
-
160
- assert_match(/^rake t/, out)
161
- assert_match(/# #{numbers[0, 65]}\.\.\./, out)
162
- end
163
-
164
- def test_describe_tasks
165
- @app.options.show_tasks = :describe
166
- @app.options.show_task_pattern = //
167
- @app.last_description = "COMMENT"
168
- @app.define_task(Rake::Task, "t")
169
- out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
170
- assert_match(/^rake t$/, out)
171
- assert_match(/^ {4}COMMENT$/, out)
172
- end
173
-
174
- def test_show_lines
175
- @app.options.show_tasks = :lines
176
- @app.options.show_task_pattern = //
177
- @app.last_description = "COMMENT"
178
- @app.define_task(Rake::Task, "t")
179
- @app['t'].locations << "HERE:1"
180
- out, = capture_io do @app.instance_eval { display_tasks_and_comments } end
181
- assert_match(/^rake t +[^:]+:\d+ *$/, out)
182
- end
183
-
184
- def test_finding_rakefile
185
- rakefile_default
186
-
187
- assert_match(/Rakefile/i, @app.instance_eval { have_rakefile })
188
- end
189
-
190
- def test_not_finding_rakefile
191
- @app.instance_eval { @rakefiles = ['NEVER_FOUND'] }
192
- assert(! @app.instance_eval do have_rakefile end)
193
- assert_nil @app.rakefile
194
- end
195
-
196
- def test_load_rakefile
197
- rakefile_unittest
198
-
199
- @app.instance_eval do
200
- handle_options
201
- options.silent = true
202
- load_rakefile
203
- end
204
-
205
- assert_equal "rakefile", @app.rakefile.downcase
206
- assert_equal @tempdir, Dir.pwd
207
- end
208
-
209
- def test_load_rakefile_doesnt_print_rakefile_directory_from_same_dir
210
- rakefile_unittest
211
-
212
- _, err = capture_io do
213
- @app.instance_eval do
214
- # pretend we started from the unittest dir
215
- @original_dir = File.expand_path(".")
216
- raw_load_rakefile
217
- end
218
- end
219
-
220
- assert_empty err
221
- end
222
-
223
- def test_load_rakefile_from_subdir
224
- rakefile_unittest
225
- Dir.chdir 'subdir'
226
-
227
- @app.instance_eval do
228
- handle_options
229
- options.silent = true
230
- load_rakefile
231
- end
232
-
233
- assert_equal "rakefile", @app.rakefile.downcase
234
- assert_equal @tempdir, Dir.pwd
235
- end
236
-
237
- def test_load_rakefile_prints_rakefile_directory_from_subdir
238
- rakefile_unittest
239
- Dir.chdir 'subdir'
240
-
241
- app = Rake::Application.new
242
- app.options.rakelib = []
243
-
244
- _, err = capture_io do
245
- app.instance_eval do
246
- raw_load_rakefile
247
- end
248
- end
249
-
250
- assert_equal "(in #{@tempdir}\)\n", err
251
- end
252
-
253
- def test_load_rakefile_doesnt_print_rakefile_directory_from_subdir_if_silent
254
- rakefile_unittest
255
- Dir.chdir 'subdir'
256
-
257
- _, err = capture_io do
258
- @app.instance_eval do
259
- handle_options
260
- options.silent = true
261
- raw_load_rakefile
262
- end
263
- end
264
-
265
- assert_empty err
266
- end
267
-
268
- def test_load_rakefile_not_found
269
- ARGV.clear
270
- Dir.chdir @tempdir
271
- ENV['RAKE_SYSTEM'] = 'not_exist'
272
-
273
- @app.instance_eval do
274
- handle_options
275
- options.silent = true
276
- end
277
-
278
-
279
- ex = assert_raises(RuntimeError) do
280
- @app.instance_eval do
281
- raw_load_rakefile
282
- end
283
- end
284
-
285
- assert_match(/no rakefile found/i, ex.message)
286
- end
287
-
288
- def test_load_from_system_rakefile
289
- rake_system_dir
290
-
291
- @app.instance_eval do
292
- handle_options
293
- options.silent = true
294
- options.load_system = true
295
- options.rakelib = []
296
- load_rakefile
297
- end
298
-
299
- assert_equal @system_dir, @app.system_dir
300
- assert_nil @app.rakefile
301
- rescue SystemExit
302
- flunk 'failed to load rakefile'
303
- end
304
-
305
- def test_load_from_calculated_system_rakefile
306
- rakefile_default
307
- def @app.standard_system_dir
308
- "__STD_SYS_DIR__"
309
- end
310
-
311
- ENV['RAKE_SYSTEM'] = nil
312
-
313
- @app.instance_eval do
314
- handle_options
315
- options.silent = true
316
- options.load_system = true
317
- options.rakelib = []
318
- load_rakefile
319
- end
320
-
321
- assert_equal "__STD_SYS_DIR__", @app.system_dir
322
- rescue SystemExit
323
- flunk 'failed to find system rakefile'
324
- end
325
-
326
- def test_terminal_columns
327
- old_rake_columns = ENV['RAKE_COLUMNS']
328
-
329
- ENV['RAKE_COLUMNS'] = '42'
330
-
331
- app = Rake::Application.new
332
-
333
- assert_equal 42, app.terminal_columns
334
- ensure
335
- if old_rake_columns
336
- ENV['RAKE_COLUMNS'].delete
337
- else
338
- ENV['RAKE_COLUMNS'] = old_rake_columns
339
- end
340
- end
341
-
342
- def test_windows
343
- assert ! (@app.windows? && @app.unix?)
344
- end
345
-
346
- def test_loading_imports
347
- loader = util_loader
348
-
349
- @app.instance_eval do
350
- add_loader("dummy", loader)
351
- add_import("x.dummy")
352
- load_imports
353
- end
354
-
355
- # HACK no assertions
356
- end
357
-
358
- def test_building_imported_files_on_demand
359
- loader = util_loader
360
-
361
- @app.instance_eval do
362
- intern(Rake::Task, "x.dummy").enhance do loader.make_dummy end
363
- add_loader("dummy", loader)
364
- add_import("x.dummy")
365
- load_imports
366
- end
367
-
368
- # HACK no assertions
369
- end
370
-
371
- def test_handle_options_should_strip_options_from_argv
372
- assert !@app.options.trace
373
-
374
- valid_option = '--trace'
375
- setup_command_line(valid_option)
376
-
377
- @app.handle_options
378
-
379
- assert !ARGV.include?(valid_option)
380
- assert @app.options.trace
381
- end
382
-
383
- def test_handle_options_trace_default_is_stderr
384
- setup_command_line("--trace")
385
-
386
- @app.handle_options
387
-
388
- assert_equal STDERR, @app.options.trace_output
389
- assert @app.options.trace
390
- end
391
-
392
- def test_handle_options_trace_overrides_to_stdout
393
- setup_command_line("--trace=stdout")
394
-
395
- @app.handle_options
396
-
397
- assert_equal STDOUT, @app.options.trace_output
398
- assert @app.options.trace
399
- end
400
-
401
- def test_handle_options_trace_does_not_eat_following_task_names
402
- assert !@app.options.trace
403
-
404
- setup_command_line("--trace", "sometask")
405
-
406
- @app.handle_options
407
- assert ARGV.include?("sometask")
408
- assert @app.options.trace
409
- end
410
-
411
- def test_good_run
412
- ran = false
413
-
414
- ARGV << '--rakelib=""'
415
-
416
- @app.options.silent = true
417
-
418
- @app.instance_eval do
419
- intern(Rake::Task, "default").enhance { ran = true }
420
- end
421
-
422
- rakefile_default
423
-
424
- out, err = capture_io do
425
- @app.run
426
- end
427
-
428
- assert ran
429
- assert_empty err
430
- assert_equal "DEFAULT\n", out
431
- end
432
-
433
- def test_display_task_run
434
- ran = false
435
- setup_command_line('-f', '-s', '--tasks', '--rakelib=""')
436
- @app.last_description = "COMMENT"
437
- @app.define_task(Rake::Task, "default")
438
- out, = capture_io { @app.run }
439
- assert @app.options.show_tasks
440
- assert ! ran
441
- assert_match(/rake default/, out)
442
- assert_match(/# COMMENT/, out)
443
- end
444
-
445
- def test_display_prereqs
446
- ran = false
447
- setup_command_line('-f', '-s', '--prereqs', '--rakelib=""')
448
- @app.last_description = "COMMENT"
449
- t = @app.define_task(Rake::Task, "default")
450
- t.enhance([:a, :b])
451
- @app.define_task(Rake::Task, "a")
452
- @app.define_task(Rake::Task, "b")
453
- out, = capture_io { @app.run }
454
- assert @app.options.show_prereqs
455
- assert ! ran
456
- assert_match(/rake a$/, out)
457
- assert_match(/rake b$/, out)
458
- assert_match(/rake default\n( *(a|b)\n){2}/m, out)
459
- end
460
-
461
- def test_bad_run
462
- @app.intern(Rake::Task, "default").enhance { fail }
463
- setup_command_line('-f', '-s', '--rakelib=""')
464
- _, err = capture_io {
465
- assert_raises(SystemExit){ @app.run }
466
- }
467
- assert_match(/see full trace/i, err)
468
- ensure
469
- ARGV.clear
470
- end
471
-
472
- def test_bad_run_with_trace
473
- @app.intern(Rake::Task, "default").enhance { fail }
474
- setup_command_line('-f', '-s', '-t')
475
- _, err = capture_io {
476
- assert_raises(SystemExit) { @app.run }
477
- }
478
- refute_match(/see full trace/i, err)
479
- ensure
480
- ARGV.clear
481
- end
482
-
483
- def test_bad_run_with_backtrace
484
- @app.intern(Rake::Task, "default").enhance { fail }
485
- setup_command_line('-f', '-s', '--backtrace')
486
- _, err = capture_io {
487
- assert_raises(SystemExit) {
488
- @app.run
489
- }
490
- }
491
- refute_match(/see full trace/, err)
492
- ensure
493
- ARGV.clear
494
- end
495
-
496
- CustomError = Class.new(RuntimeError)
497
-
498
- def test_bad_run_includes_exception_name
499
- @app.intern(Rake::Task, "default").enhance {
500
- raise CustomError, "intentional"
501
- }
502
- setup_command_line('-f', '-s')
503
- _, err = capture_io {
504
- assert_raises(SystemExit) {
505
- @app.run
506
- }
507
- }
508
- assert_match(/CustomError: intentional/, err)
509
- end
510
-
511
- def test_rake_error_excludes_exception_name
512
- @app.intern(Rake::Task, "default").enhance {
513
- fail "intentional"
514
- }
515
- setup_command_line('-f', '-s')
516
- _, err = capture_io {
517
- assert_raises(SystemExit) {
518
- @app.run
519
- }
520
- }
521
- refute_match(/RuntimeError/, err)
522
- assert_match(/intentional/, err)
523
- end
524
-
525
- def cause_supported?
526
- ex = StandardError.new
527
- ex.respond_to?(:cause)
528
- end
529
-
530
- def test_printing_original_exception_cause
531
- custom_error = Class.new(StandardError)
532
- @app.intern(Rake::Task, "default").enhance {
533
- begin
534
- raise custom_error, "Original Error"
535
- rescue custom_error
536
- raise custom_error, "Secondary Error"
537
- end
538
- }
539
- setup_command_line('-f', '-s')
540
- _ ,err = capture_io {
541
- assert_raises(SystemExit) {
542
- @app.run
543
- }
544
- }
545
- if cause_supported?
546
- assert_match(/Original Error/, err)
547
- end
548
- assert_match(/Secondary Error/, err)
549
- ensure
550
- ARGV.clear
551
- end
552
-
553
- def test_run_with_bad_options
554
- @app.intern(Rake::Task, "default").enhance { fail }
555
- setup_command_line('-f', '-s', '--xyzzy')
556
- assert_raises(SystemExit) {
557
- capture_io { @app.run }
558
- }
559
- ensure
560
- ARGV.clear
561
- end
562
-
563
- def test_standard_exception_handling_invalid_option
564
- out, err = capture_io do
565
- e = assert_raises SystemExit do
566
- @app.standard_exception_handling do
567
- raise OptionParser::InvalidOption, 'blah'
568
- end
569
- end
570
-
571
- assert_equal 1, e.status
572
- end
573
-
574
- assert_empty out
575
- assert_equal "invalid option: blah\n", err
576
- end
577
-
578
- def test_standard_exception_handling_other
579
- out, err = capture_io do
580
- e = assert_raises SystemExit do
581
- @app.standard_exception_handling do
582
- raise 'blah'
583
- end
584
- end
585
-
586
- assert_equal 1, e.status
587
- end
588
-
589
- assert_empty out
590
- assert_match "rake aborted!\n", err
591
- assert_match "blah\n", err
592
- end
593
-
594
- def test_standard_exception_handling_system_exit
595
- out, err = capture_io do
596
- e = assert_raises SystemExit do
597
- @app.standard_exception_handling do
598
- exit 0
599
- end
600
- end
601
-
602
- assert_equal 0, e.status
603
- end
604
-
605
- assert_empty out
606
- assert_empty err
607
- end
608
-
609
- def test_standard_exception_handling_system_exit_nonzero
610
- out, err = capture_io do
611
- e = assert_raises SystemExit do
612
- @app.standard_exception_handling do
613
- exit 5
614
- end
615
- end
616
-
617
- assert_equal 5, e.status
618
- end
619
-
620
- assert_empty out
621
- assert_empty err
622
- end
623
-
624
- def util_loader
625
- loader = Object.new
626
-
627
- loader.instance_variable_set :@load_called, false
628
- def loader.load arg
629
- raise ArgumentError, arg unless arg == 'x.dummy'
630
- @load_called = true
631
- end
632
-
633
- loader.instance_variable_set :@make_dummy_called, false
634
- def loader.make_dummy
635
- @make_dummy_called = true
636
- end
637
-
638
- loader
639
- end
640
-
641
- end