tap 0.9.1 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History +37 -30
- data/MIT-LICENSE +1 -1
- data/README +92 -44
- data/bin/tap +62 -75
- data/cmd/console.rb +42 -0
- data/cmd/destroy.rb +16 -0
- data/cmd/generate.rb +16 -0
- data/cmd/run.rb +126 -0
- data/doc/Class Reference +362 -0
- data/doc/Command Reference +153 -0
- data/doc/Tutorial +237 -0
- data/lib/tap.rb +6 -45
- data/lib/tap/app.rb +126 -500
- data/lib/tap/constants.rb +2 -29
- data/lib/tap/env.rb +555 -250
- data/lib/tap/file_task.rb +60 -103
- data/lib/tap/generator/base.rb +109 -0
- data/lib/tap/generator/destroy.rb +37 -0
- data/lib/tap/generator/generate.rb +61 -0
- data/lib/tap/generator/generators/command/command_generator.rb +16 -12
- data/lib/tap/generator/generators/command/templates/command.erb +13 -19
- data/lib/tap/generator/generators/config/config_generator.rb +18 -27
- data/lib/tap/generator/generators/config/templates/doc.erb +12 -0
- data/lib/tap/generator/generators/config/templates/nodoc.erb +8 -0
- data/lib/tap/generator/generators/file_task/file_task_generator.rb +16 -11
- data/lib/tap/generator/generators/file_task/templates/file.txt +11 -2
- data/lib/tap/generator/generators/file_task/templates/result.yml +6 -0
- data/lib/tap/generator/generators/file_task/templates/task.erb +24 -31
- data/lib/tap/generator/generators/file_task/templates/test.erb +18 -22
- data/lib/tap/generator/generators/root/root_generator.rb +45 -31
- data/lib/tap/generator/generators/root/templates/Rakefile +64 -41
- data/lib/tap/generator/generators/root/templates/gemspec +27 -0
- data/lib/tap/generator/generators/root/templates/tapfile +8 -0
- data/lib/tap/generator/generators/root/templates/test/tap_test_helper.rb +0 -0
- data/lib/tap/generator/generators/root/templates/test/tap_test_suite.rb +1 -1
- data/lib/tap/generator/generators/root/templates/test/tapfile_test.rb +15 -0
- data/lib/tap/generator/generators/task/task_generator.rb +21 -28
- data/lib/tap/generator/generators/task/templates/task.erb +13 -23
- data/lib/tap/generator/generators/task/templates/test.erb +15 -18
- data/lib/tap/generator/manifest.rb +14 -0
- data/lib/tap/patches/rake/rake_test_loader.rb +0 -0
- data/lib/tap/patches/rake/testtask.rb +0 -0
- data/lib/tap/patches/ruby19/backtrace_filter.rb +0 -0
- data/lib/tap/patches/ruby19/parsedate.rb +0 -0
- data/lib/tap/root.rb +260 -21
- data/lib/tap/support/aggregator.rb +11 -11
- data/lib/tap/support/assignments.rb +172 -0
- data/lib/tap/support/audit.rb +20 -18
- data/lib/tap/support/batchable.rb +21 -10
- data/lib/tap/support/batchable_class.rb +107 -0
- data/lib/tap/support/class_configuration.rb +154 -239
- data/lib/tap/support/command_line.rb +97 -102
- data/lib/tap/support/comment.rb +270 -0
- data/lib/tap/support/configurable.rb +86 -65
- data/lib/tap/support/configurable_class.rb +296 -0
- data/lib/tap/support/configuration.rb +122 -0
- data/lib/tap/support/constant.rb +70 -0
- data/lib/tap/support/constant_utils.rb +127 -0
- data/lib/tap/support/declarations.rb +111 -0
- data/lib/tap/support/executable.rb +30 -17
- data/lib/tap/support/executable_queue.rb +0 -0
- data/lib/tap/support/framework.rb +71 -0
- data/lib/tap/support/framework_class.rb +199 -0
- data/lib/tap/support/instance_configuration.rb +147 -0
- data/lib/tap/support/lazydoc.rb +428 -0
- data/lib/tap/support/manifest.rb +89 -0
- data/lib/tap/support/run_error.rb +0 -0
- data/lib/tap/support/shell_utils.rb +33 -9
- data/lib/tap/support/summary.rb +30 -0
- data/lib/tap/support/tdoc.rb +339 -134
- data/lib/tap/support/tdoc/tdoc_html_generator.rb +0 -0
- data/lib/tap/support/tdoc/tdoc_html_template.rb +0 -0
- data/lib/tap/support/templater.rb +180 -0
- data/lib/tap/support/validation.rb +409 -76
- data/lib/tap/support/versions.rb +5 -3
- data/lib/tap/task.rb +78 -174
- data/lib/tap/tasks/dump.rb +56 -0
- data/lib/tap/tasks/rake.rb +93 -0
- data/lib/tap/test.rb +3 -3
- data/lib/tap/test/env_vars.rb +2 -2
- data/lib/tap/test/file_methods.rb +19 -20
- data/lib/tap/test/script_methods.rb +144 -0
- data/lib/tap/test/subset_methods.rb +1 -1
- data/lib/tap/test/tap_methods.rb +28 -62
- data/lib/tap/workflow.rb +22 -39
- metadata +48 -179
- data/Basic Overview +0 -151
- data/Command Reference +0 -99
- data/Rakefile +0 -127
- data/Tutorial +0 -287
- data/lib/tap/cmd/console.rb +0 -31
- data/lib/tap/cmd/destroy.rb +0 -20
- data/lib/tap/cmd/generate.rb +0 -20
- data/lib/tap/cmd/run.rb +0 -151
- data/lib/tap/dump.rb +0 -57
- data/lib/tap/generator.rb +0 -91
- data/lib/tap/generator/generators/command/USAGE +0 -6
- data/lib/tap/generator/generators/config/USAGE +0 -21
- data/lib/tap/generator/generators/config/templates/config.erb +0 -1
- data/lib/tap/generator/generators/file_task/USAGE +0 -3
- data/lib/tap/generator/generators/file_task/templates/file.yml +0 -3
- data/lib/tap/generator/generators/generator/USAGE +0 -0
- data/lib/tap/generator/generators/generator/generator_generator.rb +0 -21
- data/lib/tap/generator/generators/generator/templates/generator.erb +0 -32
- data/lib/tap/generator/generators/generator/templates/usage.erb +0 -1
- data/lib/tap/generator/generators/root/USAGE +0 -0
- data/lib/tap/generator/generators/root/templates/ReadMe.txt +0 -0
- data/lib/tap/generator/generators/root/templates/tap.yml +0 -80
- data/lib/tap/generator/generators/task/USAGE +0 -3
- data/lib/tap/generator/generators/workflow/USAGE +0 -0
- data/lib/tap/generator/generators/workflow/templates/task.erb +0 -16
- data/lib/tap/generator/generators/workflow/templates/test.erb +0 -7
- data/lib/tap/generator/generators/workflow/workflow_generator.rb +0 -6
- data/lib/tap/generator/options.rb +0 -26
- data/lib/tap/generator/usage.rb +0 -26
- data/lib/tap/support/batchable_methods.rb +0 -34
- data/lib/tap/support/command_line_methods.rb +0 -76
- data/lib/tap/support/configurable_methods.rb +0 -224
- data/lib/tap/support/logger.rb +0 -88
- data/lib/tap/support/rake.rb +0 -43
- data/lib/tap/support/tdoc/config_attr.rb +0 -362
- data/test/app/config/another/task.yml +0 -1
- data/test/app/config/batch.yml +0 -2
- data/test/app/config/empty.yml +0 -0
- data/test/app/config/erb.yml +0 -2
- data/test/app/config/some/task.yml +0 -1
- data/test/app/config/template.yml +0 -2
- data/test/app/config/version-0.1.yml +0 -1
- data/test/app/config/version.yml +0 -1
- data/test/app/lib/app_test_task.rb +0 -3
- data/test/app_test.rb +0 -1849
- data/test/env/test_configure/recurse_a.yml +0 -2
- data/test/env/test_configure/recurse_b.yml +0 -2
- data/test/env/test_configure/tap.yml +0 -23
- data/test/env/test_load_env_config/dir/tap.yml +0 -3
- data/test/env/test_load_env_config/recurse_a.yml +0 -2
- data/test/env/test_load_env_config/recurse_b.yml +0 -2
- data/test/env/test_load_env_config/tap.yml +0 -3
- data/test/env_test.rb +0 -198
- data/test/file_task/config/batch.yml +0 -2
- data/test/file_task/config/configured.yml +0 -1
- data/test/file_task/old_file_one.txt +0 -0
- data/test/file_task/old_file_two.txt +0 -0
- data/test/file_task_test.rb +0 -1291
- data/test/root/alt_lib/alt_module.rb +0 -4
- data/test/root/file.txt +0 -0
- data/test/root/glob/one.txt +0 -0
- data/test/root/glob/two.txt +0 -0
- data/test/root/lib/absolute_alt_filepath.rb +0 -2
- data/test/root/lib/alternative_filepath.rb +0 -2
- data/test/root/lib/another_module.rb +0 -2
- data/test/root/lib/nested/some_module.rb +0 -4
- data/test/root/lib/no_module_included.rb +0 -0
- data/test/root/lib/some/module.rb +0 -4
- data/test/root/lib/some_class.rb +0 -2
- data/test/root/lib/some_module.rb +0 -3
- data/test/root/load_path/load_path_module.rb +0 -2
- data/test/root/load_path/skip_module.rb +0 -2
- data/test/root/mtime/older.txt +0 -0
- data/test/root/unload/full_path.rb +0 -2
- data/test/root/unload/loaded_by_nested.rb +0 -2
- data/test/root/unload/nested/nested_load.rb +0 -6
- data/test/root/unload/nested/nested_with_ext.rb +0 -4
- data/test/root/unload/nested/relative_path.rb +0 -4
- data/test/root/unload/older.rb +0 -2
- data/test/root/unload/unload_base.rb +0 -9
- data/test/root/versions/another.yml +0 -0
- data/test/root/versions/file-0.1.2.yml +0 -0
- data/test/root/versions/file-0.1.yml +0 -0
- data/test/root/versions/file.yml +0 -0
- data/test/root_test.rb +0 -718
- data/test/support/aggregator_test.rb +0 -99
- data/test/support/audit_test.rb +0 -445
- data/test/support/batchable_test.rb +0 -74
- data/test/support/class_configuration_test.rb +0 -331
- data/test/support/command_line_test.rb +0 -58
- data/test/support/configurable/config/configured.yml +0 -2
- data/test/support/configurable_test.rb +0 -295
- data/test/support/executable_queue_test.rb +0 -103
- data/test/support/executable_test.rb +0 -38
- data/test/support/logger_test.rb +0 -31
- data/test/support/rake_test.rb +0 -37
- data/test/support/shell_utils_test.rb +0 -24
- data/test/support/tdoc_test.rb +0 -370
- data/test/support/validation_test.rb +0 -54
- data/test/support/versions_test.rb +0 -103
- data/test/tap_test_helper.rb +0 -57
- data/test/tap_test_suite.rb +0 -7
- data/test/task/config/batch.yml +0 -2
- data/test/task/config/batched.yml +0 -2
- data/test/task/config/configured.yml +0 -1
- data/test/task/config/example.yml +0 -1
- data/test/task_base_test.rb +0 -24
- data/test/task_syntax_test.rb +0 -300
- data/test/task_test.rb +0 -320
- data/test/test/env_vars_test.rb +0 -48
- data/test/test/file_methods/test_assert_files/expected/one.txt +0 -1
- data/test/test/file_methods/test_assert_files/expected/two.txt +0 -1
- data/test/test/file_methods/test_assert_files/input/one.txt +0 -1
- data/test/test/file_methods/test_assert_files/input/two.txt +0 -1
- data/test/test/file_methods/test_assert_files_can_have_no_expected_files_if_specified/input/one.txt +0 -1
- data/test/test/file_methods/test_assert_files_can_have_no_expected_files_if_specified/input/two.txt +0 -1
- data/test/test/file_methods/test_assert_files_fails_for_different_content/expected/one.txt +0 -1
- data/test/test/file_methods/test_assert_files_fails_for_different_content/expected/two.txt +0 -1
- data/test/test/file_methods/test_assert_files_fails_for_different_content/input/one.txt +0 -1
- data/test/test/file_methods/test_assert_files_fails_for_different_content/input/two.txt +0 -1
- data/test/test/file_methods/test_assert_files_fails_for_missing_expected_file/expected/one.txt +0 -1
- data/test/test/file_methods/test_assert_files_fails_for_missing_expected_file/input/one.txt +0 -1
- data/test/test/file_methods/test_assert_files_fails_for_missing_expected_file/input/two.txt +0 -1
- data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/expected/one.txt +0 -1
- data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/expected/two.txt +0 -1
- data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/input/one.txt +0 -1
- data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/input/two.txt +0 -1
- data/test/test/file_methods/test_assert_files_fails_for_no_expected_files/input/one.txt +0 -1
- data/test/test/file_methods/test_assert_files_fails_for_no_expected_files/input/two.txt +0 -1
- data/test/test/file_methods/test_method_glob/expected/file.yml +0 -0
- data/test/test/file_methods/test_method_glob/expected/file_1.txt +0 -0
- data/test/test/file_methods/test_method_glob/expected/file_2.txt +0 -0
- data/test/test/file_methods_doc/test_sub/expected/one.txt +0 -1
- data/test/test/file_methods_doc/test_sub/expected/two.txt +0 -1
- data/test/test/file_methods_doc/test_sub/input/one.txt +0 -1
- data/test/test/file_methods_doc/test_sub/input/two.txt +0 -1
- data/test/test/file_methods_doc_test.rb +0 -29
- data/test/test/file_methods_test.rb +0 -275
- data/test/test/subset_methods_test.rb +0 -171
- data/test/test/tap_methods/test_assert_files/expected/task/name/a.txt +0 -1
- data/test/test/tap_methods/test_assert_files/expected/task/name/b.txt +0 -1
- data/test/test/tap_methods/test_assert_files/input/a.txt +0 -1
- data/test/test/tap_methods/test_assert_files/input/b.txt +0 -1
- data/test/test/tap_methods_test.rb +0 -399
- data/test/workflow_test.rb +0 -120
- data/vendor/rails_generator.rb +0 -56
- data/vendor/rails_generator/base.rb +0 -263
- data/vendor/rails_generator/commands.rb +0 -581
- data/vendor/rails_generator/generated_attribute.rb +0 -42
- data/vendor/rails_generator/lookup.rb +0 -209
- data/vendor/rails_generator/manifest.rb +0 -53
- data/vendor/rails_generator/options.rb +0 -143
- data/vendor/rails_generator/scripts.rb +0 -83
- data/vendor/rails_generator/scripts/destroy.rb +0 -7
- data/vendor/rails_generator/scripts/generate.rb +0 -7
- data/vendor/rails_generator/scripts/update.rb +0 -12
- data/vendor/rails_generator/simple_logger.rb +0 -46
- data/vendor/rails_generator/spec.rb +0 -44
data/lib/tap/cmd/console.rb
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# = Usage
|
|
2
|
-
# tap console {options}
|
|
3
|
-
#
|
|
4
|
-
# = Description
|
|
5
|
-
# Opens up an IRB session with Tap initialized with configurations
|
|
6
|
-
# in tap.yml. Access the Tap::App.instance through 'app'
|
|
7
|
-
#
|
|
8
|
-
|
|
9
|
-
#
|
|
10
|
-
# handle options
|
|
11
|
-
#
|
|
12
|
-
|
|
13
|
-
opts = [
|
|
14
|
-
['--help', '-h', GetoptLong::NO_ARGUMENT, "Print this help."]]
|
|
15
|
-
|
|
16
|
-
Tap::Support::CommandLine.handle_options(*opts) do |opt, value|
|
|
17
|
-
case opt
|
|
18
|
-
when '--help'
|
|
19
|
-
puts Tap::Support::CommandLine.command_help(__FILE__, opts)
|
|
20
|
-
exit
|
|
21
|
-
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
require "irb"
|
|
26
|
-
|
|
27
|
-
def app
|
|
28
|
-
Tap::App.instance
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
IRB.start
|
data/lib/tap/cmd/destroy.rb
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
begin
|
|
2
|
-
$:.unshift File.dirname(__FILE__) + "/../../../vendor"
|
|
3
|
-
require 'tap/generator'
|
|
4
|
-
rescue(LoadError)
|
|
5
|
-
puts "The 'rails' gem is required for destroyers -- install using:"
|
|
6
|
-
puts " % gem install rails"
|
|
7
|
-
exit
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
Rails::Generator::Base.use_tap_sources!
|
|
11
|
-
|
|
12
|
-
require 'rails_generator/scripts/destroy'
|
|
13
|
-
generator = ARGV.shift
|
|
14
|
-
|
|
15
|
-
# Ensure help is printed if help is the first argument
|
|
16
|
-
generator = nil if generator == '--help' || generator == '-h'
|
|
17
|
-
|
|
18
|
-
script = Rails::Generator::Scripts::Destroy.new
|
|
19
|
-
script.extend Tap::Generator::Usage
|
|
20
|
-
script.run(ARGV, :generator => generator)
|
data/lib/tap/cmd/generate.rb
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
begin
|
|
2
|
-
$:.unshift File.dirname(__FILE__) + "/../../../vendor"
|
|
3
|
-
require 'tap/generator'
|
|
4
|
-
rescue(LoadError)
|
|
5
|
-
puts "The 'rails' gem is required for generators -- install using:"
|
|
6
|
-
puts " % gem install rails"
|
|
7
|
-
exit
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
Rails::Generator::Base.use_tap_sources!
|
|
11
|
-
|
|
12
|
-
require 'rails_generator/scripts/generate'
|
|
13
|
-
generator = ARGV.shift
|
|
14
|
-
|
|
15
|
-
# Ensure help is printed if help is the first argument
|
|
16
|
-
generator = nil if generator == '--help' || generator == '-h'
|
|
17
|
-
|
|
18
|
-
script = Rails::Generator::Scripts::Generate.new
|
|
19
|
-
script.extend Tap::Generator::Usage
|
|
20
|
-
script.run(ARGV, :generator => generator)
|
data/lib/tap/cmd/run.rb
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
# = Usage
|
|
2
|
-
# tap run {options} -- {task options} task INPUTS...
|
|
3
|
-
#
|
|
4
|
-
# examples:
|
|
5
|
-
# tap run --help Prints this help
|
|
6
|
-
# tap run -- task --help Prints help for task
|
|
7
|
-
#
|
|
8
|
-
|
|
9
|
-
env = Tap::Env.instance
|
|
10
|
-
app = Tap::App.instance
|
|
11
|
-
|
|
12
|
-
#
|
|
13
|
-
# handle options
|
|
14
|
-
#
|
|
15
|
-
|
|
16
|
-
opts = [
|
|
17
|
-
['--help', '-h', GetoptLong::NO_ARGUMENT, "Print this help"],
|
|
18
|
-
['--debug', '-d', GetoptLong::NO_ARGUMENT, "Trace execution and debug"],
|
|
19
|
-
['--force', '-f', GetoptLong::NO_ARGUMENT, "Force execution at checkpoints"],
|
|
20
|
-
['--quiet', '-q', GetoptLong::NO_ARGUMENT, "Suppress logging"]]
|
|
21
|
-
|
|
22
|
-
Tap::Support::CommandLine.handle_options(*opts) do |opt, value|
|
|
23
|
-
case opt
|
|
24
|
-
when '--help'
|
|
25
|
-
puts Tap::Support::CommandLine.command_help(__FILE__, opts)
|
|
26
|
-
exit
|
|
27
|
-
|
|
28
|
-
when '--quiet', '--force', '--debug'
|
|
29
|
-
# simply track these have been set
|
|
30
|
-
opt =~ /^-+(\w+)/
|
|
31
|
-
app.options.send("#{$1}=", true)
|
|
32
|
-
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
#
|
|
37
|
-
# handle options for each specified task
|
|
38
|
-
#
|
|
39
|
-
rounds = Tap::Support::CommandLine.split_argv(ARGV).collect do |argv|
|
|
40
|
-
argv.each do |args|
|
|
41
|
-
ARGV.clear
|
|
42
|
-
ARGV.concat(args)
|
|
43
|
-
|
|
44
|
-
td = Tap::Support::CommandLine.next_arg(ARGV)
|
|
45
|
-
case td
|
|
46
|
-
when 'rake', nil
|
|
47
|
-
# remove --help as this will print the Rake help
|
|
48
|
-
ARGV.delete_if do |arg|
|
|
49
|
-
if arg == "--help"
|
|
50
|
-
env.log(:warn, "ignoring --help config for rake command")
|
|
51
|
-
true
|
|
52
|
-
else
|
|
53
|
-
false
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
rake = env.rake_setup
|
|
58
|
-
|
|
59
|
-
# takes the place of rake.top_level
|
|
60
|
-
if rake.options.show_tasks
|
|
61
|
-
rake.display_tasks_and_comments
|
|
62
|
-
exit
|
|
63
|
-
elsif rake.options.show_prereqs
|
|
64
|
-
rake.display_prerequisites
|
|
65
|
-
exit
|
|
66
|
-
else
|
|
67
|
-
rake.top_level_tasks.each do |task_name|
|
|
68
|
-
app.task(task_name).enq
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
else
|
|
73
|
-
begin
|
|
74
|
-
# attempt lookup the task class
|
|
75
|
-
task_class = app.task_class(td)
|
|
76
|
-
rescue(Tap::App::LookupError)
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
# unless a Tap::Task was found, treat the
|
|
80
|
-
# args as a specification for Rake.
|
|
81
|
-
if task_class == nil || !task_class.include?(Tap::Support::Configurable)
|
|
82
|
-
args.unshift('rake')
|
|
83
|
-
redo
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
# now let the class handle the argv
|
|
87
|
-
ARGV.collect! {|str| Tap::Support::CommandLine.parse_yaml(str) }
|
|
88
|
-
ARGV.unshift(td)
|
|
89
|
-
task_class.argv_enq(app)
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
app.queue.clear
|
|
94
|
-
end
|
|
95
|
-
ARGV.clear
|
|
96
|
-
|
|
97
|
-
rounds.delete_if {|round| round.empty? }
|
|
98
|
-
if rounds.empty?
|
|
99
|
-
puts "no task specified"
|
|
100
|
-
exit
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
#
|
|
104
|
-
# set signals
|
|
105
|
-
#
|
|
106
|
-
|
|
107
|
-
# info signal -- Note: some systems do
|
|
108
|
-
# not support the INFO signal
|
|
109
|
-
# (windows, fedora, at least)
|
|
110
|
-
signals = Signal.list.keys
|
|
111
|
-
if signals.include?("INFO")
|
|
112
|
-
Signal.trap("INFO") do
|
|
113
|
-
puts app.info
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
puts "ctl-i prints information"
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
# interuption signal
|
|
120
|
-
if signals.include?("INT")
|
|
121
|
-
Signal.trap("INT") do
|
|
122
|
-
puts " interrupted!"
|
|
123
|
-
# prompt for decision
|
|
124
|
-
while true
|
|
125
|
-
print "stop, terminate, or resume? (s/t/r):"
|
|
126
|
-
case gets.strip
|
|
127
|
-
when /s(top)?/i
|
|
128
|
-
app.stop
|
|
129
|
-
break
|
|
130
|
-
when /t(erminate)?/i
|
|
131
|
-
app.terminate
|
|
132
|
-
break
|
|
133
|
-
when /r(esume)?/i
|
|
134
|
-
break
|
|
135
|
-
else
|
|
136
|
-
puts "unexpected response..."
|
|
137
|
-
end
|
|
138
|
-
end
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
puts "ctl-c interupts execution"
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
#
|
|
145
|
-
# enque tasks and run!
|
|
146
|
-
#
|
|
147
|
-
puts "beginning run..."
|
|
148
|
-
rounds.each_with_index do |queue, i|
|
|
149
|
-
app.queue.concat(queue)
|
|
150
|
-
app.run
|
|
151
|
-
end
|
data/lib/tap/dump.rb
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
module Tap
|
|
2
|
-
# == Description
|
|
3
|
-
# A primitive dump task (still in development) to print
|
|
4
|
-
# application results to a file or IO. The results are
|
|
5
|
-
# printed in a tap-readable format allowing the use of
|
|
6
|
-
# dumped results as inputs to other tasks.
|
|
7
|
-
#
|
|
8
|
-
# Usually dump is used as the final task in a round of
|
|
9
|
-
# tasks executed through 'tap run'.
|
|
10
|
-
# === Usage
|
|
11
|
-
# % tap run -- [your tasks] --+ dump filepath
|
|
12
|
-
#
|
|
13
|
-
# If no filepath is specified, the results are printed
|
|
14
|
-
# to stdout.
|
|
15
|
-
#
|
|
16
|
-
class Dump < Tap::FileTask
|
|
17
|
-
|
|
18
|
-
config :datetime_format, '%Y-%m-%d %H:%M:%S'
|
|
19
|
-
config :print_audit, true
|
|
20
|
-
config :print_date, true
|
|
21
|
-
|
|
22
|
-
#config :overwrite
|
|
23
|
-
|
|
24
|
-
def process(target=$stdout)
|
|
25
|
-
case target
|
|
26
|
-
when IO then dump_to(target)
|
|
27
|
-
else
|
|
28
|
-
log_basename(:dump, target)
|
|
29
|
-
prepare(target)
|
|
30
|
-
File.open(target, "wb") {|file| dump_to(file) }
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def dump_to(io)
|
|
35
|
-
trails = []
|
|
36
|
-
results = {}
|
|
37
|
-
app.aggregator.to_hash.each_pair do |src, _results|
|
|
38
|
-
name = src.respond_to?(:name) ? src.name : ''
|
|
39
|
-
|
|
40
|
-
results["#{name} (#{src.object_id})"] = _results.collect {|_audit| _audit._current }
|
|
41
|
-
_results.each {|_audit| trails << _audit._to_s }
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
if print_audit
|
|
45
|
-
io.puts "# audit:"
|
|
46
|
-
trails.each {|trail| io.puts "# #{trail.gsub("\n", "\n# ")}"}
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
if print_date
|
|
50
|
-
io.puts "# date: #{Time.now.strftime(datetime_format)}"
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
YAML::dump(results, io)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
end
|
|
57
|
-
end
|
data/lib/tap/generator.rb
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
require 'rails_generator'
|
|
2
|
-
require 'tap/generator/options'
|
|
3
|
-
require 'tap/generator/usage'
|
|
4
|
-
|
|
5
|
-
module Tap
|
|
6
|
-
# stub module definition so generators can use 'module Tap::Generator::Generators'
|
|
7
|
-
module Generator # :nodoc:
|
|
8
|
-
module Generators # :nodoc:
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
# These modifications are to make the rails generators work for Tap
|
|
14
|
-
module Rails # :nodoc:
|
|
15
|
-
module Generator # :nodoc:
|
|
16
|
-
class Base # :nodoc:
|
|
17
|
-
include Tap::Generator::Options
|
|
18
|
-
|
|
19
|
-
# Used to discover generators within tap. Adapted from code
|
|
20
|
-
# in 'rails/rails_generator/lookup.rb'
|
|
21
|
-
def self.use_tap_sources!
|
|
22
|
-
reset_sources
|
|
23
|
-
sources << PathSource.new(:builtin, "#{File.dirname(__FILE__)}/generator/generators")
|
|
24
|
-
|
|
25
|
-
Tap::Env.instance.config['generator_paths'].each do |path|
|
|
26
|
-
sources << PathSource.new(:builtin, path)
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
class NamedBase < Base # :nodoc:
|
|
32
|
-
attr_reader :class_name_without_nesting
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
module Commands # :nodoc:
|
|
36
|
-
class Create # :nodoc:
|
|
37
|
-
|
|
38
|
-
#--
|
|
39
|
-
# Adds a template_option to nest classes, so that "Some::ClassName" can be nested
|
|
40
|
-
#
|
|
41
|
-
# module Some
|
|
42
|
-
# class ClassName
|
|
43
|
-
# end
|
|
44
|
-
# end
|
|
45
|
-
#
|
|
46
|
-
# rather than
|
|
47
|
-
#
|
|
48
|
-
# class Some::ClassName
|
|
49
|
-
# end
|
|
50
|
-
#
|
|
51
|
-
# The problem is that with the latter representation, errors can be raised if 'Some'
|
|
52
|
-
# has not already been defined as a module.
|
|
53
|
-
#++
|
|
54
|
-
def template(relative_source, relative_destination, template_options = {})
|
|
55
|
-
file(relative_source, relative_destination, template_options) do |file|
|
|
56
|
-
# Evaluate any assignments in a temporary, throwaway binding.
|
|
57
|
-
vars = template_options[:assigns] || {}
|
|
58
|
-
b = binding
|
|
59
|
-
vars.each { |k,v| eval "#{k} = vars[:#{k}] || vars['#{k}']", b }
|
|
60
|
-
|
|
61
|
-
# Render the source file with the temporary binding.
|
|
62
|
-
content = ERB.new(file.read, nil, '-').result(b)
|
|
63
|
-
|
|
64
|
-
# add nesting with two-space indentation
|
|
65
|
-
if template_options.has_key?(:class_nesting)
|
|
66
|
-
class_nesting = template_options[:class_nesting]
|
|
67
|
-
|
|
68
|
-
nestings = class_nesting.split(/::/)
|
|
69
|
-
lines = content.split(/\r?\n/)
|
|
70
|
-
|
|
71
|
-
depth = nestings.length
|
|
72
|
-
lines.collect! {|line| " " * depth + line}
|
|
73
|
-
|
|
74
|
-
nestings.reverse_each do |mod_name|
|
|
75
|
-
depth -= 1
|
|
76
|
-
lines.unshift(" " * depth + "module #{mod_name}")
|
|
77
|
-
lines << (" " * depth + "end")
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
content = lines.join("\n")
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
content
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
Description:
|
|
2
|
-
Generates a new config file for a Task. The configurations, defaults,
|
|
3
|
-
and documentation is determined from the task.rb file. Pass the task
|
|
4
|
-
name, either CamelCased or under_scored.
|
|
5
|
-
|
|
6
|
-
Versioned config files can be generated as well. Specify a version by
|
|
7
|
-
appending the version to the task name.
|
|
8
|
-
|
|
9
|
-
Examples:
|
|
10
|
-
# generates the config file 'config/sample_task'
|
|
11
|
-
# for SampleTask from 'lib/sample_task.rb'
|
|
12
|
-
% tap generate config SampleTask
|
|
13
|
-
|
|
14
|
-
# same, with alternate syntax
|
|
15
|
-
% tap generate config sample_task
|
|
16
|
-
|
|
17
|
-
# now with a version, the output config
|
|
18
|
-
# file is 'config/sample_task-0.1.yml'
|
|
19
|
-
% tap generate config sample_task-0.1
|
|
20
|
-
|
|
21
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<%= formatted_yaml %>
|
|
File without changes
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
module Tap::Generator::Generators
|
|
2
|
-
class GeneratorGenerator < Rails::Generator::NamedBase # :nodoc:
|
|
3
|
-
def initialize(*args)
|
|
4
|
-
super(*args)
|
|
5
|
-
@destination_root = Tap::App.instance[:root]
|
|
6
|
-
@app = Tap::App.instance
|
|
7
|
-
|
|
8
|
-
raise "Sorry - generator names cannot be nested. Try '#{file_name}' by itself." unless class_path.empty?
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def manifest
|
|
12
|
-
record do |m|
|
|
13
|
-
generators_root = @app.relative_filepath(:root, @app['generators'])
|
|
14
|
-
m.directory File.join(generators_root, file_name, "templates")
|
|
15
|
-
|
|
16
|
-
m.template "generator.erb", File.join(generators_root, file_name, file_name + "_generator.rb")
|
|
17
|
-
m.template "usage.erb", File.join(generators_root, file_name, "USAGE")
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|