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.
Files changed (244) hide show
  1. data/History +37 -30
  2. data/MIT-LICENSE +1 -1
  3. data/README +92 -44
  4. data/bin/tap +62 -75
  5. data/cmd/console.rb +42 -0
  6. data/cmd/destroy.rb +16 -0
  7. data/cmd/generate.rb +16 -0
  8. data/cmd/run.rb +126 -0
  9. data/doc/Class Reference +362 -0
  10. data/doc/Command Reference +153 -0
  11. data/doc/Tutorial +237 -0
  12. data/lib/tap.rb +6 -45
  13. data/lib/tap/app.rb +126 -500
  14. data/lib/tap/constants.rb +2 -29
  15. data/lib/tap/env.rb +555 -250
  16. data/lib/tap/file_task.rb +60 -103
  17. data/lib/tap/generator/base.rb +109 -0
  18. data/lib/tap/generator/destroy.rb +37 -0
  19. data/lib/tap/generator/generate.rb +61 -0
  20. data/lib/tap/generator/generators/command/command_generator.rb +16 -12
  21. data/lib/tap/generator/generators/command/templates/command.erb +13 -19
  22. data/lib/tap/generator/generators/config/config_generator.rb +18 -27
  23. data/lib/tap/generator/generators/config/templates/doc.erb +12 -0
  24. data/lib/tap/generator/generators/config/templates/nodoc.erb +8 -0
  25. data/lib/tap/generator/generators/file_task/file_task_generator.rb +16 -11
  26. data/lib/tap/generator/generators/file_task/templates/file.txt +11 -2
  27. data/lib/tap/generator/generators/file_task/templates/result.yml +6 -0
  28. data/lib/tap/generator/generators/file_task/templates/task.erb +24 -31
  29. data/lib/tap/generator/generators/file_task/templates/test.erb +18 -22
  30. data/lib/tap/generator/generators/root/root_generator.rb +45 -31
  31. data/lib/tap/generator/generators/root/templates/Rakefile +64 -41
  32. data/lib/tap/generator/generators/root/templates/gemspec +27 -0
  33. data/lib/tap/generator/generators/root/templates/tapfile +8 -0
  34. data/lib/tap/generator/generators/root/templates/test/tap_test_helper.rb +0 -0
  35. data/lib/tap/generator/generators/root/templates/test/tap_test_suite.rb +1 -1
  36. data/lib/tap/generator/generators/root/templates/test/tapfile_test.rb +15 -0
  37. data/lib/tap/generator/generators/task/task_generator.rb +21 -28
  38. data/lib/tap/generator/generators/task/templates/task.erb +13 -23
  39. data/lib/tap/generator/generators/task/templates/test.erb +15 -18
  40. data/lib/tap/generator/manifest.rb +14 -0
  41. data/lib/tap/patches/rake/rake_test_loader.rb +0 -0
  42. data/lib/tap/patches/rake/testtask.rb +0 -0
  43. data/lib/tap/patches/ruby19/backtrace_filter.rb +0 -0
  44. data/lib/tap/patches/ruby19/parsedate.rb +0 -0
  45. data/lib/tap/root.rb +260 -21
  46. data/lib/tap/support/aggregator.rb +11 -11
  47. data/lib/tap/support/assignments.rb +172 -0
  48. data/lib/tap/support/audit.rb +20 -18
  49. data/lib/tap/support/batchable.rb +21 -10
  50. data/lib/tap/support/batchable_class.rb +107 -0
  51. data/lib/tap/support/class_configuration.rb +154 -239
  52. data/lib/tap/support/command_line.rb +97 -102
  53. data/lib/tap/support/comment.rb +270 -0
  54. data/lib/tap/support/configurable.rb +86 -65
  55. data/lib/tap/support/configurable_class.rb +296 -0
  56. data/lib/tap/support/configuration.rb +122 -0
  57. data/lib/tap/support/constant.rb +70 -0
  58. data/lib/tap/support/constant_utils.rb +127 -0
  59. data/lib/tap/support/declarations.rb +111 -0
  60. data/lib/tap/support/executable.rb +30 -17
  61. data/lib/tap/support/executable_queue.rb +0 -0
  62. data/lib/tap/support/framework.rb +71 -0
  63. data/lib/tap/support/framework_class.rb +199 -0
  64. data/lib/tap/support/instance_configuration.rb +147 -0
  65. data/lib/tap/support/lazydoc.rb +428 -0
  66. data/lib/tap/support/manifest.rb +89 -0
  67. data/lib/tap/support/run_error.rb +0 -0
  68. data/lib/tap/support/shell_utils.rb +33 -9
  69. data/lib/tap/support/summary.rb +30 -0
  70. data/lib/tap/support/tdoc.rb +339 -134
  71. data/lib/tap/support/tdoc/tdoc_html_generator.rb +0 -0
  72. data/lib/tap/support/tdoc/tdoc_html_template.rb +0 -0
  73. data/lib/tap/support/templater.rb +180 -0
  74. data/lib/tap/support/validation.rb +409 -76
  75. data/lib/tap/support/versions.rb +5 -3
  76. data/lib/tap/task.rb +78 -174
  77. data/lib/tap/tasks/dump.rb +56 -0
  78. data/lib/tap/tasks/rake.rb +93 -0
  79. data/lib/tap/test.rb +3 -3
  80. data/lib/tap/test/env_vars.rb +2 -2
  81. data/lib/tap/test/file_methods.rb +19 -20
  82. data/lib/tap/test/script_methods.rb +144 -0
  83. data/lib/tap/test/subset_methods.rb +1 -1
  84. data/lib/tap/test/tap_methods.rb +28 -62
  85. data/lib/tap/workflow.rb +22 -39
  86. metadata +48 -179
  87. data/Basic Overview +0 -151
  88. data/Command Reference +0 -99
  89. data/Rakefile +0 -127
  90. data/Tutorial +0 -287
  91. data/lib/tap/cmd/console.rb +0 -31
  92. data/lib/tap/cmd/destroy.rb +0 -20
  93. data/lib/tap/cmd/generate.rb +0 -20
  94. data/lib/tap/cmd/run.rb +0 -151
  95. data/lib/tap/dump.rb +0 -57
  96. data/lib/tap/generator.rb +0 -91
  97. data/lib/tap/generator/generators/command/USAGE +0 -6
  98. data/lib/tap/generator/generators/config/USAGE +0 -21
  99. data/lib/tap/generator/generators/config/templates/config.erb +0 -1
  100. data/lib/tap/generator/generators/file_task/USAGE +0 -3
  101. data/lib/tap/generator/generators/file_task/templates/file.yml +0 -3
  102. data/lib/tap/generator/generators/generator/USAGE +0 -0
  103. data/lib/tap/generator/generators/generator/generator_generator.rb +0 -21
  104. data/lib/tap/generator/generators/generator/templates/generator.erb +0 -32
  105. data/lib/tap/generator/generators/generator/templates/usage.erb +0 -1
  106. data/lib/tap/generator/generators/root/USAGE +0 -0
  107. data/lib/tap/generator/generators/root/templates/ReadMe.txt +0 -0
  108. data/lib/tap/generator/generators/root/templates/tap.yml +0 -80
  109. data/lib/tap/generator/generators/task/USAGE +0 -3
  110. data/lib/tap/generator/generators/workflow/USAGE +0 -0
  111. data/lib/tap/generator/generators/workflow/templates/task.erb +0 -16
  112. data/lib/tap/generator/generators/workflow/templates/test.erb +0 -7
  113. data/lib/tap/generator/generators/workflow/workflow_generator.rb +0 -6
  114. data/lib/tap/generator/options.rb +0 -26
  115. data/lib/tap/generator/usage.rb +0 -26
  116. data/lib/tap/support/batchable_methods.rb +0 -34
  117. data/lib/tap/support/command_line_methods.rb +0 -76
  118. data/lib/tap/support/configurable_methods.rb +0 -224
  119. data/lib/tap/support/logger.rb +0 -88
  120. data/lib/tap/support/rake.rb +0 -43
  121. data/lib/tap/support/tdoc/config_attr.rb +0 -362
  122. data/test/app/config/another/task.yml +0 -1
  123. data/test/app/config/batch.yml +0 -2
  124. data/test/app/config/empty.yml +0 -0
  125. data/test/app/config/erb.yml +0 -2
  126. data/test/app/config/some/task.yml +0 -1
  127. data/test/app/config/template.yml +0 -2
  128. data/test/app/config/version-0.1.yml +0 -1
  129. data/test/app/config/version.yml +0 -1
  130. data/test/app/lib/app_test_task.rb +0 -3
  131. data/test/app_test.rb +0 -1849
  132. data/test/env/test_configure/recurse_a.yml +0 -2
  133. data/test/env/test_configure/recurse_b.yml +0 -2
  134. data/test/env/test_configure/tap.yml +0 -23
  135. data/test/env/test_load_env_config/dir/tap.yml +0 -3
  136. data/test/env/test_load_env_config/recurse_a.yml +0 -2
  137. data/test/env/test_load_env_config/recurse_b.yml +0 -2
  138. data/test/env/test_load_env_config/tap.yml +0 -3
  139. data/test/env_test.rb +0 -198
  140. data/test/file_task/config/batch.yml +0 -2
  141. data/test/file_task/config/configured.yml +0 -1
  142. data/test/file_task/old_file_one.txt +0 -0
  143. data/test/file_task/old_file_two.txt +0 -0
  144. data/test/file_task_test.rb +0 -1291
  145. data/test/root/alt_lib/alt_module.rb +0 -4
  146. data/test/root/file.txt +0 -0
  147. data/test/root/glob/one.txt +0 -0
  148. data/test/root/glob/two.txt +0 -0
  149. data/test/root/lib/absolute_alt_filepath.rb +0 -2
  150. data/test/root/lib/alternative_filepath.rb +0 -2
  151. data/test/root/lib/another_module.rb +0 -2
  152. data/test/root/lib/nested/some_module.rb +0 -4
  153. data/test/root/lib/no_module_included.rb +0 -0
  154. data/test/root/lib/some/module.rb +0 -4
  155. data/test/root/lib/some_class.rb +0 -2
  156. data/test/root/lib/some_module.rb +0 -3
  157. data/test/root/load_path/load_path_module.rb +0 -2
  158. data/test/root/load_path/skip_module.rb +0 -2
  159. data/test/root/mtime/older.txt +0 -0
  160. data/test/root/unload/full_path.rb +0 -2
  161. data/test/root/unload/loaded_by_nested.rb +0 -2
  162. data/test/root/unload/nested/nested_load.rb +0 -6
  163. data/test/root/unload/nested/nested_with_ext.rb +0 -4
  164. data/test/root/unload/nested/relative_path.rb +0 -4
  165. data/test/root/unload/older.rb +0 -2
  166. data/test/root/unload/unload_base.rb +0 -9
  167. data/test/root/versions/another.yml +0 -0
  168. data/test/root/versions/file-0.1.2.yml +0 -0
  169. data/test/root/versions/file-0.1.yml +0 -0
  170. data/test/root/versions/file.yml +0 -0
  171. data/test/root_test.rb +0 -718
  172. data/test/support/aggregator_test.rb +0 -99
  173. data/test/support/audit_test.rb +0 -445
  174. data/test/support/batchable_test.rb +0 -74
  175. data/test/support/class_configuration_test.rb +0 -331
  176. data/test/support/command_line_test.rb +0 -58
  177. data/test/support/configurable/config/configured.yml +0 -2
  178. data/test/support/configurable_test.rb +0 -295
  179. data/test/support/executable_queue_test.rb +0 -103
  180. data/test/support/executable_test.rb +0 -38
  181. data/test/support/logger_test.rb +0 -31
  182. data/test/support/rake_test.rb +0 -37
  183. data/test/support/shell_utils_test.rb +0 -24
  184. data/test/support/tdoc_test.rb +0 -370
  185. data/test/support/validation_test.rb +0 -54
  186. data/test/support/versions_test.rb +0 -103
  187. data/test/tap_test_helper.rb +0 -57
  188. data/test/tap_test_suite.rb +0 -7
  189. data/test/task/config/batch.yml +0 -2
  190. data/test/task/config/batched.yml +0 -2
  191. data/test/task/config/configured.yml +0 -1
  192. data/test/task/config/example.yml +0 -1
  193. data/test/task_base_test.rb +0 -24
  194. data/test/task_syntax_test.rb +0 -300
  195. data/test/task_test.rb +0 -320
  196. data/test/test/env_vars_test.rb +0 -48
  197. data/test/test/file_methods/test_assert_files/expected/one.txt +0 -1
  198. data/test/test/file_methods/test_assert_files/expected/two.txt +0 -1
  199. data/test/test/file_methods/test_assert_files/input/one.txt +0 -1
  200. data/test/test/file_methods/test_assert_files/input/two.txt +0 -1
  201. data/test/test/file_methods/test_assert_files_can_have_no_expected_files_if_specified/input/one.txt +0 -1
  202. data/test/test/file_methods/test_assert_files_can_have_no_expected_files_if_specified/input/two.txt +0 -1
  203. data/test/test/file_methods/test_assert_files_fails_for_different_content/expected/one.txt +0 -1
  204. data/test/test/file_methods/test_assert_files_fails_for_different_content/expected/two.txt +0 -1
  205. data/test/test/file_methods/test_assert_files_fails_for_different_content/input/one.txt +0 -1
  206. data/test/test/file_methods/test_assert_files_fails_for_different_content/input/two.txt +0 -1
  207. data/test/test/file_methods/test_assert_files_fails_for_missing_expected_file/expected/one.txt +0 -1
  208. data/test/test/file_methods/test_assert_files_fails_for_missing_expected_file/input/one.txt +0 -1
  209. data/test/test/file_methods/test_assert_files_fails_for_missing_expected_file/input/two.txt +0 -1
  210. data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/expected/one.txt +0 -1
  211. data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/expected/two.txt +0 -1
  212. data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/input/one.txt +0 -1
  213. data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/input/two.txt +0 -1
  214. data/test/test/file_methods/test_assert_files_fails_for_no_expected_files/input/one.txt +0 -1
  215. data/test/test/file_methods/test_assert_files_fails_for_no_expected_files/input/two.txt +0 -1
  216. data/test/test/file_methods/test_method_glob/expected/file.yml +0 -0
  217. data/test/test/file_methods/test_method_glob/expected/file_1.txt +0 -0
  218. data/test/test/file_methods/test_method_glob/expected/file_2.txt +0 -0
  219. data/test/test/file_methods_doc/test_sub/expected/one.txt +0 -1
  220. data/test/test/file_methods_doc/test_sub/expected/two.txt +0 -1
  221. data/test/test/file_methods_doc/test_sub/input/one.txt +0 -1
  222. data/test/test/file_methods_doc/test_sub/input/two.txt +0 -1
  223. data/test/test/file_methods_doc_test.rb +0 -29
  224. data/test/test/file_methods_test.rb +0 -275
  225. data/test/test/subset_methods_test.rb +0 -171
  226. data/test/test/tap_methods/test_assert_files/expected/task/name/a.txt +0 -1
  227. data/test/test/tap_methods/test_assert_files/expected/task/name/b.txt +0 -1
  228. data/test/test/tap_methods/test_assert_files/input/a.txt +0 -1
  229. data/test/test/tap_methods/test_assert_files/input/b.txt +0 -1
  230. data/test/test/tap_methods_test.rb +0 -399
  231. data/test/workflow_test.rb +0 -120
  232. data/vendor/rails_generator.rb +0 -56
  233. data/vendor/rails_generator/base.rb +0 -263
  234. data/vendor/rails_generator/commands.rb +0 -581
  235. data/vendor/rails_generator/generated_attribute.rb +0 -42
  236. data/vendor/rails_generator/lookup.rb +0 -209
  237. data/vendor/rails_generator/manifest.rb +0 -53
  238. data/vendor/rails_generator/options.rb +0 -143
  239. data/vendor/rails_generator/scripts.rb +0 -83
  240. data/vendor/rails_generator/scripts/destroy.rb +0 -7
  241. data/vendor/rails_generator/scripts/generate.rb +0 -7
  242. data/vendor/rails_generator/scripts/update.rb +0 -12
  243. data/vendor/rails_generator/simple_logger.rb +0 -46
  244. data/vendor/rails_generator/spec.rb +0 -44
@@ -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
@@ -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)
@@ -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,6 +0,0 @@
1
- Description:
2
- Generates a new Tap command under the cmd directory. Pass
3
- the command name, either CamelCased or under_scored. The
4
- new command can be run from the command line using:
5
-
6
- % tap run <command name>
@@ -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 %>
@@ -1,3 +0,0 @@
1
- Description:
2
- Generates a new FileTask and test files. Pass the task name,
3
- either CamelCased or under_scored.
@@ -1,3 +0,0 @@
1
- ---
2
- - Line One
3
- - Line Two
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