sprout 1.0.32.pre → 1.0.35.pre

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sprout might be problematic. Click here for more details.

Files changed (208) hide show
  1. data/Gemfile +2 -1
  2. data/Gemfile.lock +4 -2
  3. data/README.textile +12 -13
  4. data/VERSION +1 -0
  5. data/doc/Dir.html +288 -0
  6. data/doc/Rake/Task.html +184 -0
  7. data/doc/Sprout.html +144 -0
  8. data/doc/Sprout/ArchiveUnpacker.html +1246 -0
  9. data/doc/Sprout/Base.html +126 -0
  10. data/doc/Sprout/Base/ClassMethods.html +434 -0
  11. data/doc/Sprout/Concern.html +353 -0
  12. data/doc/Sprout/Daemon.html +166 -0
  13. data/doc/Sprout/Daemon/ClassMethods.html +244 -0
  14. data/doc/Sprout/Daemon/InstanceMethods.html +601 -0
  15. data/doc/Sprout/Errors.html +101 -0
  16. data/doc/Sprout/Errors/ArchiveUnpackerError.html +125 -0
  17. data/doc/Sprout/Errors/DestinationExistsError.html +133 -0
  18. data/doc/Sprout/Errors/DuplicateMemberError.html +132 -0
  19. data/doc/Sprout/Errors/ExecutableError.html +125 -0
  20. data/doc/Sprout/Errors/ExecutableRegistrationError.html +132 -0
  21. data/doc/Sprout/Errors/ExecutionError.html +121 -0
  22. data/doc/Sprout/Errors/GeneratorError.html +125 -0
  23. data/doc/Sprout/Errors/InvalidArgumentError.html +132 -0
  24. data/doc/Sprout/Errors/LoadError.html +121 -0
  25. data/doc/Sprout/Errors/MissingArgumentError.html +132 -0
  26. data/doc/Sprout/Errors/MissingExecutableError.html +132 -0
  27. data/doc/Sprout/Errors/MissingGeneratorError.html +132 -0
  28. data/doc/Sprout/Errors/MissingTemplateError.html +132 -0
  29. data/doc/Sprout/Errors/ProcessRunnerError.html +121 -0
  30. data/doc/Sprout/Errors/RemoteFileLoaderError.html +110 -0
  31. data/doc/Sprout/Errors/SproutError.html +114 -0
  32. data/doc/Sprout/Errors/UnknownArchiveType.html +122 -0
  33. data/doc/Sprout/Errors/UsageError.html +121 -0
  34. data/doc/Sprout/Errors/ValidationError.html +121 -0
  35. data/doc/Sprout/Errors/VersionRequirementNotMetError.html +121 -0
  36. data/doc/Sprout/Executable.html +173 -0
  37. data/doc/Sprout/Executable/Boolean.html +483 -0
  38. data/doc/Sprout/Executable/ClassMethods.html +417 -0
  39. data/doc/Sprout/Executable/CollectionParam.html +483 -0
  40. data/doc/Sprout/Executable/FileParam.html +484 -0
  41. data/doc/Sprout/Executable/Files.html +292 -0
  42. data/doc/Sprout/Executable/InstanceMethods.html +2006 -0
  43. data/doc/Sprout/Executable/Number.html +141 -0
  44. data/doc/Sprout/Executable/Param.html +2818 -0
  45. data/doc/Sprout/Executable/ParameterFactory.html +232 -0
  46. data/doc/Sprout/Executable/Path.html +223 -0
  47. data/doc/Sprout/Executable/Paths.html +253 -0
  48. data/doc/Sprout/Executable/StringParam.html +213 -0
  49. data/doc/Sprout/Executable/Strings.html +167 -0
  50. data/doc/Sprout/Executable/Url.html +160 -0
  51. data/doc/Sprout/Executable/Urls.html +170 -0
  52. data/doc/Sprout/FileTarget.html +1109 -0
  53. data/doc/Sprout/Generator.html +689 -0
  54. data/doc/Sprout/Generator/Base.html +1626 -0
  55. data/doc/Sprout/Generator/Command.html +690 -0
  56. data/doc/Sprout/Generator/DirectoryManifest.html +476 -0
  57. data/doc/Sprout/Generator/FileManifest.html +572 -0
  58. data/doc/Sprout/Generator/Manifest.html +377 -0
  59. data/doc/Sprout/Generator/TemplateManifest.html +196 -0
  60. data/doc/Sprout/GeneratorGenerator.html +1018 -0
  61. data/doc/Sprout/Library.html +1141 -0
  62. data/doc/Sprout/LibraryGenerator.html +309 -0
  63. data/doc/Sprout/Log.html +496 -0
  64. data/doc/Sprout/MXMLC.html +6373 -0
  65. data/doc/Sprout/Platform.html +714 -0
  66. data/doc/Sprout/ProcessRunner.html +1352 -0
  67. data/doc/Sprout/ProgressBar.html +376 -0
  68. data/doc/Sprout/ProgressBarImpl.html +2119 -0
  69. data/doc/Sprout/ProgressBarManager.html +434 -0
  70. data/doc/Sprout/ProgressBarOutputStream.html +416 -0
  71. data/doc/Sprout/RDocParser.html +211 -0
  72. data/doc/Sprout/RemoteFileLoader.html +172 -0
  73. data/doc/Sprout/RemoteFileTarget.html +679 -0
  74. data/doc/Sprout/ReversedProgressBar.html +194 -0
  75. data/doc/Sprout/RubyFeature.html +155 -0
  76. data/doc/Sprout/RubyFeature/ClassMethods.html +1065 -0
  77. data/doc/Sprout/RubyGenerator.html +764 -0
  78. data/doc/Sprout/Specification.html +767 -0
  79. data/doc/Sprout/System.html +191 -0
  80. data/doc/Sprout/System/BaseSystem.html +1455 -0
  81. data/doc/Sprout/System/JavaSystem.html +122 -0
  82. data/doc/Sprout/System/OSXSystem.html +335 -0
  83. data/doc/Sprout/System/ThreadMock.html +193 -0
  84. data/doc/Sprout/System/UnixSystem.html +584 -0
  85. data/doc/Sprout/System/VistaSystem.html +251 -0
  86. data/doc/Sprout/System/WinNixSystem.html +325 -0
  87. data/doc/Sprout/System/WinSystem.html +571 -0
  88. data/doc/Sprout/ToolGenerator.html +931 -0
  89. data/doc/Sprout/VERSION.html +128 -0
  90. data/doc/SproutTestCase.html +1412 -0
  91. data/doc/String.html +286 -0
  92. data/doc/_index.html +1035 -0
  93. data/doc/class_list.html +36 -0
  94. data/doc/css/common.css +1 -0
  95. data/doc/css/full_list.css +53 -0
  96. data/doc/css/style.css +310 -0
  97. data/doc/file.README.html +96 -0
  98. data/doc/file.archive_unpacker.html +288 -0
  99. data/doc/file.base.html +208 -0
  100. data/doc/file.base_system.html +278 -0
  101. data/doc/file.boolean.html +135 -0
  102. data/doc/file.collection_param.html +139 -0
  103. data/doc/file.command.html +126 -0
  104. data/doc/file.concern.html +136 -0
  105. data/doc/file.daemon.html +309 -0
  106. data/doc/file.dir.html +76 -0
  107. data/doc/file.directory_manifest.html +122 -0
  108. data/doc/file.errors.html +147 -0
  109. data/doc/file.executable.html +638 -0
  110. data/doc/file.file_manifest.html +109 -0
  111. data/doc/file.file_param.html +120 -0
  112. data/doc/file.file_target.html +140 -0
  113. data/doc/file.files.html +85 -0
  114. data/doc/file.generator.html +296 -0
  115. data/doc/file.generator_class.html +72 -0
  116. data/doc/file.generator_generator.html +137 -0
  117. data/doc/file.generator_test.html +92 -0
  118. data/doc/file.generator_test_helper.html +67 -0
  119. data/doc/file.java_system.html +62 -0
  120. data/doc/file.library.html +291 -0
  121. data/doc/file.library_generator.html +74 -0
  122. data/doc/file.log.html +100 -0
  123. data/doc/file.manifest.html +67 -0
  124. data/doc/file.mxmlc.html +740 -0
  125. data/doc/file.number.html +67 -0
  126. data/doc/file.osx_system.html +79 -0
  127. data/doc/file.param.html +491 -0
  128. data/doc/file.parameter_factory.html +119 -0
  129. data/doc/file.path.html +81 -0
  130. data/doc/file.paths.html +80 -0
  131. data/doc/file.platform.html +124 -0
  132. data/doc/file.process_runner.html +224 -0
  133. data/doc/file.progress_bar.html +390 -0
  134. data/doc/file.rdoc_parser.html +145 -0
  135. data/doc/file.remote_file_loader.html +117 -0
  136. data/doc/file.remote_file_target.html +176 -0
  137. data/doc/file.ruby_base.html +64 -0
  138. data/doc/file.ruby_feature.html +244 -0
  139. data/doc/file.ruby_generator.html +118 -0
  140. data/doc/file.ruby_input.html +62 -0
  141. data/doc/file.ruby_test_case.html +78 -0
  142. data/doc/file.ruby_test_helper.html +61 -0
  143. data/doc/file.specification.html +248 -0
  144. data/doc/file.sprout.html +64 -0
  145. data/doc/file.sprout_test_case.html +280 -0
  146. data/doc/file.string.html +72 -0
  147. data/doc/file.string_param.html +76 -0
  148. data/doc/file.strings.html +71 -0
  149. data/doc/file.system.html +86 -0
  150. data/doc/file.template_manifest.html +67 -0
  151. data/doc/file.tool.html +92 -0
  152. data/doc/file.tool_generator.html +90 -0
  153. data/doc/file.unix_system.html +128 -0
  154. data/doc/file.url.html +71 -0
  155. data/doc/file.urls.html +70 -0
  156. data/doc/file.version.html +71 -0
  157. data/doc/file.vista_system.html +69 -0
  158. data/doc/file.win_nix_system.html +88 -0
  159. data/doc/file.win_system.html +129 -0
  160. data/doc/file_list.html +230 -0
  161. data/doc/frames.html +13 -0
  162. data/doc/index.html +96 -0
  163. data/doc/js/app.js +202 -0
  164. data/doc/js/full_list.js +149 -0
  165. data/doc/js/jquery.js +154 -0
  166. data/doc/method_list.html +3355 -0
  167. data/doc/top-level-namespace.html +192 -0
  168. data/lib/sprout/archive_unpacker.rb +203 -137
  169. data/lib/sprout/base.rb +38 -11
  170. data/lib/sprout/concern.rb +51 -0
  171. data/lib/sprout/daemon.rb +256 -0
  172. data/lib/sprout/executable.rb +40 -11
  173. data/lib/sprout/executable/boolean.rb +47 -1
  174. data/lib/sprout/executable/collection_param.rb +33 -1
  175. data/lib/sprout/executable/file_param.rb +16 -3
  176. data/lib/sprout/executable/files.rb +5 -0
  177. data/lib/sprout/executable/number.rb +5 -1
  178. data/lib/sprout/executable/param.rb +232 -16
  179. data/lib/sprout/executable/parameter_factory.rb +39 -1
  180. data/lib/sprout/executable/path.rb +7 -1
  181. data/lib/sprout/executable/paths.rb +6 -1
  182. data/lib/sprout/executable/string_param.rb +8 -1
  183. data/lib/sprout/executable/strings.rb +7 -1
  184. data/lib/sprout/executable/url.rb +8 -1
  185. data/lib/sprout/executable/urls.rb +7 -1
  186. data/lib/sprout/file_target.rb +11 -11
  187. data/lib/sprout/generator.rb +244 -0
  188. data/lib/sprout/generator/base.rb +0 -94
  189. data/lib/sprout/generators/generator/generator_generator.rb +35 -1
  190. data/lib/sprout/generators/generator/templates/generator_class.rb +3 -3
  191. data/lib/sprout/library.rb +75 -0
  192. data/lib/sprout/log.rb +11 -12
  193. data/lib/sprout/process_runner.rb +29 -9
  194. data/lib/sprout/remote_file_target.rb +20 -9
  195. data/lib/sprout/system/base_system.rb +11 -3
  196. data/lib/sprout/test/sprout_test_case.rb +1 -0
  197. data/lib/sprout/version.rb +7 -11
  198. data/rakefile.rb +7 -12
  199. data/script/add_param_handler.rb +43 -0
  200. data/sprout.gemspec +2 -3
  201. data/test/fixtures/executable/fdb.rb +764 -0
  202. data/test/fixtures/executable/flex3sdk_gem/fdb +60 -0
  203. data/test/fixtures/executable/mxmlc.rb +9 -11
  204. data/test/unit/daemon_test.rb +61 -0
  205. data/test/unit/process_runner_test.rb +21 -0
  206. data/test/unit/remote_file_target_test.rb +45 -11
  207. data/test/unit/sprout_test_helper.rb +1 -1
  208. metadata +210 -29
@@ -0,0 +1,296 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta name="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>File: generator</title>
7
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
8
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
9
+
10
+ <script type="text/javascript" charset="utf-8">
11
+ relpath = '';
12
+ if (relpath != '') relpath += '/';
13
+ </script>
14
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
15
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
16
+
17
+ </head>
18
+ <body>
19
+ <script type="text/javascript" charset="utf-8">
20
+ if (window.top.frames.main) document.body.className = 'frames';
21
+ </script>
22
+
23
+ <div id="header">
24
+ <div id="menu">
25
+
26
+ <a href="_index.html" title="Index">Index</a> &raquo;
27
+ <span class="title">File: generator</span>
28
+
29
+
30
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
31
+ </div>
32
+
33
+ <div id="search">
34
+ <a id="class_list_link" href="#">Class List</a>
35
+ <a id="method_list_link" href="#">Method List</a>
36
+ <a id ="file_list_link" href="#">File List</a>
37
+ </div>
38
+
39
+ <div class="clear"></div>
40
+ </div>
41
+
42
+ <iframe id="search_frame"></iframe>
43
+
44
+ <div id="content"><div id='filecontents'>
45
+ <p>require ‘sprout/generator/base’ require ‘sprout/generator/command’ require
46
+ ‘sprout/generator/manifest’ require ‘sprout/generator/file_manifest’
47
+ require ‘sprout/generator/template_manifest’ require
48
+ ‘sprout/generator/directory_manifest’</p>
49
+
50
+ <p>module Sprout</p>
51
+
52
+ <pre class="code"><span class='comment'>##
53
+ </span><span class='comment'>#
54
+ </span><span class='comment'># = Introduction
55
+ </span><span class='comment'>#
56
+ </span><span class='comment'># Sprout Generators are command line applications that are
57
+ </span><span class='comment'># installed by RubyGems and should universally provide the
58
+ </span><span class='comment'># following features:
59
+ </span><span class='comment'>#
60
+ </span><span class='comment'># * Terminal tab completion to discover generators
61
+ </span><span class='comment'># * Call with no arguments to see help output
62
+ </span><span class='comment'># * Call with an +--input+ (or trailing) argument to create
63
+ </span><span class='comment'># * Call with a collection of arguments given on a previous run
64
+ </span><span class='comment'># plus +--delete+ to undo a previous +create+
65
+ </span><span class='comment'>#
66
+ </span><span class='comment'># = Usage
67
+ </span><span class='comment'>#
68
+ </span><span class='comment'># == Discovery
69
+ </span><span class='comment'>#
70
+ </span><span class='comment'># Sprout generators should be installed by RubyGems as command line
71
+ </span><span class='comment'># applications on your system. After installing the flashsdk gem, you
72
+ </span><span class='comment'># should have access to a variety of generators. You can find out what
73
+ </span><span class='comment'># generators are available by typing: sprout- followed by pressing the
74
+ </span><span class='comment'># &lt;TAB&gt; key.
75
+ </span><span class='comment'>#
76
+ </span><span class='comment'># Your terminal should list out all available applications that match
77
+ </span><span class='comment'># this name.
78
+ </span><span class='comment'>#
79
+ </span><span class='comment'># Some generators are expected to create new projects, others expect to
80
+ </span><span class='comment'># run within existing projects. You should be able to infer the kind of
81
+ </span><span class='comment'># generator you're looking at by the name, but if you can't just run the
82
+ </span><span class='comment'># generator with no arguments to see it's usage guidelines.
83
+ </span><span class='comment'>#
84
+ </span><span class='comment'># Generators that expect to be run from within a project will usually
85
+ </span><span class='comment'># expect a file named +Gemfile+ to exist in the project root. If you're
86
+ </span><span class='comment'># trying to run Sprout generators in a project that wasn't created using
87
+ </span><span class='comment'># Sprouts, create this file and add the Rubygems that include the
88
+ </span><span class='comment'># generators that you want to use.
89
+ </span><span class='comment'>#
90
+ </span><span class='comment'># == Execution
91
+ </span><span class='comment'>#
92
+ </span><span class='comment'># Generators are created by human beings and sometimes they have
93
+ </span><span class='comment'># different assumptions than you do. If you're running a generator
94
+ </span><span class='comment'># within a project (especially for the first time - or since updating a
95
+ </span><span class='comment'># gem), be sure to get your project checked into version control before
96
+ </span><span class='comment'># running anything.
97
+ </span><span class='comment'>#
98
+ </span><span class='comment'># Non-application generators should always be executed at the project
99
+ </span><span class='comment'># root (where you store your Rakefile, Gemfile or build.xml).
100
+ </span><span class='comment'>#
101
+ </span><span class='comment'># == Deletion
102
+ </span><span class='comment'>#
103
+ </span><span class='comment'># Any generator that inherits from the provided Sprout::Generators::Base
104
+ </span><span class='comment'># includes support for deletion. If you run a generator and realize that
105
+ </span><span class='comment'># you don't want the files that it created, you can always run the same
106
+ </span><span class='comment'># generator again with the same arguments, but add the --delete (or -d)
107
+ </span><span class='comment'># argument.
108
+ </span><span class='comment'>#
109
+ </span><span class='comment'># == Templates
110
+ </span><span class='comment'>#
111
+ </span><span class='comment'># Each time a generator is asked to locate a template, it begins a lookup
112
+ </span><span class='comment'># process. This process is designed to make it easy for you to modify any
113
+ </span><span class='comment'># template at the scope you desire.
114
+ </span><span class='comment'>#
115
+ </span><span class='comment'># The lookup process will end at the first location where the expected
116
+ </span><span class='comment'># file is found.
117
+ </span><span class='comment'>#
118
+ </span><span class='comment'># The search will begin with the location specified by the +-templates+
119
+ </span><span class='comment'># option (if provided) and will continue by adding '/templates' to the
120
+ </span><span class='comment'># end of each location specified by the listing for
121
+ </span><span class='comment'># Sprout::Generator#search_paths .
122
+ </span><span class='comment'>#
123
+ </span><span class='comment'># = Creation
124
+ </span><span class='comment'>#
125
+ </span><span class='comment'># The core Sprout gem comes with a Sprout::GeneratorGenerator. This command line
126
+ </span><span class='comment'># application is intended to be executed within a project and given the name
127
+ </span><span class='comment'># of a generator that you'd like to create.
128
+ </span><span class='comment'>#
129
+ </span><span class='comment'># Try experimenting with this, and please
130
+ </span><span class='comment'># suggest[http://groups.google.com/group/projectsprouts/] any improvements to
131
+ </span><span class='comment'># the Google Group.
132
+ </span><span class='comment'>#
133
+ </span><span class='comment'># ---
134
+ </span><span class='comment'>#
135
+ </span><span class='comment'># Back to Home: {file:README.textile}
136
+ </span><span class='comment'>#
137
+ </span><span class='comment'># Next Topic: {Sprout::Library}
138
+ </span><span class='comment'>#
139
+ </span><span class='comment'># ---
140
+ </span><span class='comment'>#
141
+ </span><span class='comment'># @see Sprout::GeneratorGenerator
142
+ </span><span class='comment'># @see Sprout::Library
143
+ </span><span class='comment'># @see Sprout::Executable
144
+ </span><span class='comment'># @see Sprout::Specification
145
+ </span><span class='comment'># @see Sprout::RubyFeature
146
+ </span><span class='comment'># @see Sprout::System
147
+ </span><span class='comment'>#
148
+ </span><span class='kw'>module</span> <span class='const'>Generator</span>
149
+ <span class='id include'>include</span> <span class='const'>RubyFeature</span>
150
+
151
+ <span class='kw'>class</span> <span class='op'>&lt;&lt;</span> <span class='kw'>self</span>
152
+
153
+ <span class='comment'>##
154
+ </span> <span class='comment'># Register a generator class and template path for future use.
155
+ </span> <span class='comment'># Generator class names must end with &quot;Generator&quot;, and everything
156
+ </span> <span class='comment'># to the left will be used for future lookups.
157
+ </span> <span class='comment'>#
158
+ </span> <span class='comment'># The following example will register a TestGenerator that can be
159
+ </span> <span class='comment'># retrieved as +:test+.
160
+ </span> <span class='comment'>#
161
+ </span> <span class='comment'># Sprout::Generator.register TestGenerator
162
+ </span> <span class='comment'>#
163
+ </span> <span class='comment'># @param generator_class [Class] A reference to the concrete Generator class.
164
+ </span> <span class='comment'># Usually these classes extend Sprout::Generator::Base.
165
+ </span> <span class='comment'># @param templates_path [Directory] The path to the default templates that should
166
+ </span> <span class='comment'># be used for this generator. By default, a folder named +templates+ relative to
167
+ </span> <span class='comment'># the class definition will be used. Templates will also be searched for in a variety
168
+ </span> <span class='comment'># of locations depending on the user system. This path is simply the final searching
169
+ </span> <span class='comment'># point.
170
+ </span> <span class='comment'># @return [Hash] the entity that was stored to represent the provided Generator.
171
+ </span> <span class='comment'># The entity will generally have the keys, :class and :templates.
172
+ </span> <span class='kw'>def</span> <span class='id register'>register</span> <span class='id generator_class'>generator_class</span><span class='comma'>,</span> <span class='id templates_path'>templates_path</span><span class='op'>=</span><span class='kw'>nil</span>
173
+ <span class='id generator_paths'>generator_paths</span> <span class='op'>&lt;&lt;</span> <span class='lbrace'>{</span> <span class='symbol'>:class</span> <span class='op'>=&gt;</span> <span class='id generator_class'>generator_class</span><span class='comma'>,</span> <span class='symbol'>:templates</span> <span class='op'>=&gt;</span> <span class='id templates_path'>templates_path</span> <span class='rbrace'>}</span> <span class='kw'>unless</span> <span class='id templates_path'>templates_path</span><span class='period'>.</span><span class='id nil?'>nil?</span>
174
+ <span class='kw'>super</span><span class='lparen'>(</span><span class='id generator_class'>generator_class</span><span class='rparen'>)</span>
175
+ <span class='kw'>end</span>
176
+
177
+ <span class='comment'>##
178
+ </span> <span class='comment'># Create an instance of a concrete Generator using a +type+ argument.
179
+ </span> <span class='comment'>#
180
+ </span> <span class='comment'># The idea is that libraries may register a generator class named,
181
+ </span> <span class='comment'># +TestGenerator+, and other generators can instantiate it without
182
+ </span> <span class='comment'># including it's Class by reference with:
183
+ </span> <span class='comment'>#
184
+ </span> <span class='comment'># Sprout::Generator.create_instance :test
185
+ </span> <span class='comment'>#
186
+ </span> <span class='comment'># @param type [Symbol] A snake-cased name of the class without the Generator suffix.
187
+ </span> <span class='comment'># for example, to instantiate a generator named, +TestSuiteGenerator+, this argument
188
+ </span> <span class='comment'># would be +:test_suite+
189
+ </span> <span class='comment'># @param options [Hash] deprecated - please remove this argument wherever it's found.
190
+ </span> <span class='kw'>def</span> <span class='id create_instance'>create_instance</span> <span class='id type'>type</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='kw'>nil</span>
191
+ <span class='id class_name'>class_name</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id type'>type</span><span class='period'>.</span><span class='id to_s'>to_s</span><span class='period'>.</span><span class='id camel_case'>camel_case</span><span class='rbrace'>}</span><span class='tstring_content'>Generator</span><span class='tstring_end'>&quot;</span></span>
192
+ <span class='id registered_entities'>registered_entities</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id entity'>entity</span><span class='op'>|</span>
193
+ <span class='kw'>if</span><span class='lparen'>(</span><span class='id entity'>entity</span><span class='period'>.</span><span class='id to_s'>to_s</span><span class='period'>.</span><span class='id match'>match</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>::</span><span class='embexpr_beg'>#{</span><span class='id class_name'>class_name</span><span class='rbrace'>}</span><span class='tstring_content'>$</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id entity'>entity</span><span class='period'>.</span><span class='id to_s'>to_s</span><span class='period'>.</span><span class='id match'>match</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^</span><span class='embexpr_beg'>#{</span><span class='id class_name'>class_name</span><span class='rbrace'>}</span><span class='tstring_content'>$</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
194
+ <span class='kw'>return</span> <span class='id entity'>entity</span><span class='period'>.</span><span class='id new'>new</span>
195
+ <span class='kw'>end</span>
196
+ <span class='kw'>end</span>
197
+ <span class='id raise'>raise</span> <span class='const'>Sprout</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>MissingGeneratorError</span><span class='period'>.</span><span class='id new'>new</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Could not find any generator named: (</span><span class='embexpr_beg'>#{</span><span class='id class_name'>class_name</span><span class='rbrace'>}</span><span class='tstring_content'>). Perhaps you need to add a RubyGem to your Gemfile?</span><span class='tstring_end'>&quot;</span></span>
198
+ <span class='kw'>end</span>
199
+
200
+ <span class='comment'>##
201
+ </span> <span class='comment'># Retrieve the root template folder for the provided Class.
202
+ </span> <span class='comment'>#
203
+ </span> <span class='comment'># This method will look for a templates folder next to
204
+ </span> <span class='comment'># each superclass in the inheritance chain.
205
+ </span> <span class='comment'>#
206
+ </span> <span class='kw'>def</span> <span class='id template_folder_for'>template_folder_for</span> <span class='id clazz'>clazz</span>
207
+ <span class='comment'># Search the potential matches in reverse order
208
+ </span> <span class='comment'># because subclasses have registered AFTER their
209
+ </span> <span class='comment'># superclasses and superclasses match the ===
210
+ </span> <span class='comment'># check...
211
+ </span> <span class='id generator_paths'>generator_paths</span><span class='period'>.</span><span class='id reverse'>reverse</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id options'>options</span><span class='op'>|</span>
212
+ <span class='kw'>if</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:class</span><span class='rbracket'>]</span> <span class='op'>===</span> <span class='id clazz'>clazz</span>
213
+ <span class='kw'>return</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:templates</span><span class='rbracket'>]</span>
214
+ <span class='kw'>end</span>
215
+ <span class='kw'>end</span>
216
+ <span class='kw'>nil</span>
217
+ <span class='kw'>end</span>
218
+
219
+ <span class='comment'>##
220
+ </span> <span class='comment'># Returns a new collection of paths to search within for generator
221
+ </span> <span class='comment'># declarations and more importantly, folders named, 'templates'.
222
+ </span> <span class='comment'>#
223
+ </span> <span class='comment'># The collection of search_paths will be a subset of the following
224
+ </span> <span class='comment'># that will include only those directories that exist:
225
+ </span> <span class='comment'>#
226
+ </span> <span class='comment'># ./config/generators
227
+ </span> <span class='comment'># ./vendor/generators
228
+ </span> <span class='comment'># ~/Library/Sprouts/1.0/generators # OS X only
229
+ </span> <span class='comment'># ~/.sprouts/1.0/generators # Unix only
230
+ </span> <span class='comment'># [USER_HOME]/Application Data/Sprouts/cache/1.0/generators # Windows only
231
+ </span> <span class='comment'># ENV['SPROUT_GENERATORS'] # Only if defined
232
+ </span> <span class='comment'># [Generator Declaration __FILE__]
233
+ </span> <span class='comment'># [Generator SUPER-class declaration __FILE__]
234
+ </span> <span class='comment'># [Repeat step above until there is no super-class]
235
+ </span> <span class='comment'>#
236
+ </span> <span class='comment'># When the generators attempt to resolve templates, each of the preceding
237
+ </span> <span class='comment'># folders will be scanned for a child directory named 'templates'. Within
238
+ </span> <span class='comment'># that directory, the requested template name will be scanned and the first
239
+ </span> <span class='comment'># found template file will be used. This process will be repeated for each
240
+ </span> <span class='comment'># template file that is requested.
241
+ </span> <span class='comment'>#
242
+ </span> <span class='comment'># The results of this search are not cached, so you can override a single
243
+ </span> <span class='comment'># template and leave the rest wherever the generator has defined them.
244
+ </span> <span class='comment'>#
245
+ </span> <span class='comment'># @return [Array] of paths
246
+ </span> <span class='comment'>#
247
+ </span> <span class='kw'>def</span> <span class='id search_paths'>search_paths</span>
248
+ <span class='comment'># NOTE: Do not cache this list, specific generators
249
+ </span> <span class='comment'># will modify it with their own lookups
250
+ </span> <span class='id create_search_paths'>create_search_paths</span><span class='period'>.</span><span class='id select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id path'>path</span><span class='op'>|</span> <span class='const'>File</span><span class='period'>.</span><span class='id directory?'>directory?</span><span class='lparen'>(</span><span class='id path'>path</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
251
+ <span class='kw'>end</span>
252
+
253
+ <span class='id private'>private</span>
254
+
255
+ <span class='kw'>def</span> <span class='id create_search_paths'>create_search_paths</span>
256
+ <span class='id paths'>paths</span> <span class='op'>=</span> <span class='lbracket'>[</span>
257
+ <span class='const'>File</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>config</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>generators</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='comma'>,</span>
258
+ <span class='const'>File</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>vendor</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>generators</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='comma'>,</span>
259
+ <span class='const'>Sprout</span><span class='period'>.</span><span class='id generator_cache'>generator_cache</span>
260
+ <span class='rbracket'>]</span>
261
+ <span class='id paths'>paths</span> <span class='op'>&lt;&lt;</span> <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SPROUT_GENERATORS</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='kw'>unless</span> <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SPROUT_GENERATORS</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id nil?'>nil?</span>
262
+ <span class='id paths'>paths</span>
263
+ <span class='kw'>end</span>
264
+
265
+ <span class='comment'>##
266
+ </span> <span class='comment'># I know this seems weird - but we can't instantiate the classes
267
+ </span> <span class='comment'># during registration because they register before they've been fully
268
+ </span> <span class='comment'># interpreted...
269
+ </span> <span class='kw'>def</span> <span class='id update_registered_entities'>update_registered_entities</span>
270
+ <span class='id registered_entities'>registered_entities</span><span class='period'>.</span><span class='id collect!'>collect!</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id gen'>gen</span><span class='op'>|</span>
271
+ <span class='lparen'>(</span><span class='id gen'>gen</span><span class='period'>.</span><span class='id is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Class</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id gen'>gen</span><span class='period'>.</span><span class='id new'>new</span> <span class='op'>:</span> <span class='id gen'>gen</span>
272
+ <span class='kw'>end</span>
273
+ <span class='kw'>end</span>
274
+
275
+ <span class='kw'>def</span> <span class='id configure_instance'>configure_instance</span> <span class='id generator'>generator</span>
276
+ <span class='id generator'>generator</span>
277
+ <span class='kw'>end</span>
278
+
279
+ <span class='kw'>def</span> <span class='id generator_paths'>generator_paths</span>
280
+ <span class='ivar'>@generator_paths</span> <span class='op'>||=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
281
+ <span class='kw'>end</span>
282
+
283
+ <span class='kw'>end</span>
284
+ <span class='kw'>end</span></pre>
285
+
286
+ <p>end</p>
287
+ </div></div>
288
+
289
+ <div id="footer">
290
+ Generated on Wed Dec 22 11:58:32 2010 by
291
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
292
+ 0.6.3 (ruby-1.9.2).
293
+ </div>
294
+
295
+ </body>
296
+ </html>
@@ -0,0 +1,72 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta name="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>File: generator_class</title>
7
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
8
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
9
+
10
+ <script type="text/javascript" charset="utf-8">
11
+ relpath = '';
12
+ if (relpath != '') relpath += '/';
13
+ </script>
14
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
15
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
16
+
17
+ </head>
18
+ <body>
19
+ <script type="text/javascript" charset="utf-8">
20
+ if (window.top.frames.main) document.body.className = 'frames';
21
+ </script>
22
+
23
+ <div id="header">
24
+ <div id="menu">
25
+
26
+ <a href="_index.html" title="Index">Index</a> &raquo;
27
+ <span class="title">File: generator_class</span>
28
+
29
+
30
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
31
+ </div>
32
+
33
+ <div id="search">
34
+ <a id="class_list_link" href="#">Class List</a>
35
+ <a id="method_list_link" href="#">Method List</a>
36
+ <a id ="file_list_link" href="#">File List</a>
37
+ </div>
38
+
39
+ <div class="clear"></div>
40
+ </div>
41
+
42
+ <iframe id="search_frame"></iframe>
43
+
44
+ <div id="content"><div id='filecontents'>
45
+ <p>module Sprout</p>
46
+
47
+ <pre class="code">class &lt;%= input.camel_case %&gt;Generator &lt; Generator::Base
48
+
49
+ ##
50
+ # This is how you add a parameter to your generator
51
+ #
52
+ # add_param :fwee, String, :default =&gt; &quot;fwee&quot;
53
+ #
54
+ def manifest
55
+ directory input.snake_case do
56
+ template &quot;#{input.camel_case}&lt;%= extension %&gt;&quot;
57
+ end
58
+ end
59
+
60
+ end</pre>
61
+
62
+ <p>end</p>
63
+ </div></div>
64
+
65
+ <div id="footer">
66
+ Generated on Wed Dec 22 11:58:32 2010 by
67
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
68
+ 0.6.3 (ruby-1.9.2).
69
+ </div>
70
+
71
+ </body>
72
+ </html>
@@ -0,0 +1,137 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta name="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>File: generator_generator</title>
7
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
8
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
9
+
10
+ <script type="text/javascript" charset="utf-8">
11
+ relpath = '';
12
+ if (relpath != '') relpath += '/';
13
+ </script>
14
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
15
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
16
+
17
+ </head>
18
+ <body>
19
+ <script type="text/javascript" charset="utf-8">
20
+ if (window.top.frames.main) document.body.className = 'frames';
21
+ </script>
22
+
23
+ <div id="header">
24
+ <div id="menu">
25
+
26
+ <a href="_index.html" title="Index">Index</a> &raquo;
27
+ <span class="title">File: generator_generator</span>
28
+
29
+
30
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
31
+ </div>
32
+
33
+ <div id="search">
34
+ <a id="class_list_link" href="#">Class List</a>
35
+ <a id="method_list_link" href="#">Method List</a>
36
+ <a id ="file_list_link" href="#">File List</a>
37
+ </div>
38
+
39
+ <div class="clear"></div>
40
+ </div>
41
+
42
+ <iframe id="search_frame"></iframe>
43
+
44
+ <div id="content"><div id='filecontents'>
45
+ <p>module Sprout</p>
46
+
47
+ <pre class="code"><span class='kw'>class</span> <span class='const'>GeneratorGenerator</span> <span class='op'>&lt;</span> <span class='const'>Generator</span><span class='op'>::</span><span class='const'>Base</span>
48
+
49
+ <span class='comment'>##
50
+ </span> <span class='comment'># The default module that classes will be added
51
+ </span> <span class='comment'># to.
52
+ </span> <span class='id add_param'>add_param</span> <span class='symbol'>:namespace</span><span class='comma'>,</span> <span class='const'>String</span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='symbol'>:default</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rbrace'>}</span>
53
+
54
+ <span class='comment'>##
55
+ </span> <span class='comment'># The name of the folder where external libraries
56
+ </span> <span class='comment'># will be installed.
57
+ </span> <span class='id add_param'>add_param</span> <span class='symbol'>:lib</span><span class='comma'>,</span> <span class='const'>String</span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='symbol'>:default</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>lib</span><span class='tstring_end'>'</span></span> <span class='rbrace'>}</span>
58
+
59
+ <span class='comment'>##
60
+ </span> <span class='comment'># The name of the folder where custom generators and templates
61
+ </span> <span class='comment'># will be found.
62
+ </span> <span class='id add_param'>add_param</span> <span class='symbol'>:generators</span><span class='comma'>,</span> <span class='const'>String</span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='symbol'>:default</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>generators</span><span class='tstring_end'>'</span></span> <span class='rbrace'>}</span>
63
+
64
+ <span class='comment'>##
65
+ </span> <span class='comment'># The name of the folder where tests should be generated.
66
+ </span> <span class='id add_param'>add_param</span> <span class='symbol'>:test</span><span class='comma'>,</span> <span class='const'>String</span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='symbol'>:default</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>test</span><span class='tstring_end'>'</span></span> <span class='rbrace'>}</span>
67
+
68
+ <span class='comment'>##
69
+ </span> <span class='comment'># The name of the child folder of the test folder where
70
+ </span> <span class='comment'># unit tests should be generated.
71
+ </span> <span class='id add_param'>add_param</span> <span class='symbol'>:unit</span><span class='comma'>,</span> <span class='const'>String</span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='symbol'>:default</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>unit</span><span class='tstring_end'>'</span></span> <span class='rbrace'>}</span>
72
+
73
+ <span class='comment'>##
74
+ </span> <span class='comment'># The name of the child folder of the test folder where
75
+ </span> <span class='comment'># fixtures should be generated.
76
+ </span> <span class='id add_param'>add_param</span> <span class='symbol'>:fixtures</span><span class='comma'>,</span> <span class='const'>String</span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='symbol'>:default</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>fixtures</span><span class='tstring_end'>'</span></span> <span class='rbrace'>}</span>
77
+
78
+ <span class='comment'>##
79
+ </span> <span class='comment'># The name of the folder where external source code
80
+ </span> <span class='comment'># should be placed.
81
+ </span> <span class='id add_param'>add_param</span> <span class='symbol'>:vendor</span><span class='comma'>,</span> <span class='const'>String</span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='symbol'>:default</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>vendor</span><span class='tstring_end'>'</span></span> <span class='rbrace'>}</span>
82
+
83
+ <span class='comment'>##
84
+ </span> <span class='comment'># The name of the folder where binary or executable
85
+ </span> <span class='comment'># artifacts should be created by compiler tasks.
86
+ </span> <span class='id add_param'>add_param</span> <span class='symbol'>:bin</span><span class='comma'>,</span> <span class='const'>String</span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='symbol'>:default</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bin</span><span class='tstring_end'>'</span></span> <span class='rbrace'>}</span>
87
+
88
+ <span class='comment'>##
89
+ </span> <span class='comment'># The default (primary) file extension for generated source
90
+ </span> <span class='comment'># files. This should hint at the project type.
91
+ </span> <span class='id add_param'>add_param</span> <span class='symbol'>:extension</span><span class='comma'>,</span> <span class='const'>String</span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='symbol'>:default</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>.as</span><span class='tstring_end'>'</span></span> <span class='rbrace'>}</span>
92
+
93
+ <span class='kw'>def</span> <span class='id manifest'>manifest</span>
94
+ <span class='id directory'>directory</span> <span class='id bin'>bin</span> <span class='kw'>do</span>
95
+ <span class='id template'>template</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id input'>input</span><span class='period'>.</span><span class='id snake_case'>snake_case</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>generator_executable</span><span class='tstring_end'>&quot;</span></span>
96
+ <span class='kw'>end</span>
97
+
98
+ <span class='id directory'>directory</span> <span class='id lib'>lib</span> <span class='kw'>do</span>
99
+ <span class='comment'>#We need to add a folder with the same name as the module to be used in order to faux namespace our generators to avoid collisions from super classes
100
+ </span> <span class='id directory'>directory</span> <span class='id namespace'>namespace</span> <span class='kw'>do</span>
101
+ <span class='id directory'>directory</span> <span class='id generators'>generators</span> <span class='kw'>do</span>
102
+ <span class='id template'>template</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id input'>input</span><span class='period'>.</span><span class='id snake_case'>snake_case</span><span class='rbrace'>}</span><span class='tstring_content'>_generator.rb</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>generator_class.rb</span><span class='tstring_end'>&quot;</span></span>
103
+ <span class='id directory'>directory</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>templates</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>do</span>
104
+ <span class='id template'>template</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id input'>input</span><span class='period'>.</span><span class='id camel_case'>camel_case</span><span class='rbrace'>}</span><span class='embexpr_beg'>#{</span><span class='id extension'>extension</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>generator_template</span><span class='tstring_end'>&quot;</span></span>
105
+ <span class='kw'>end</span>
106
+ <span class='kw'>end</span>
107
+ <span class='kw'>end</span>
108
+ <span class='kw'>end</span>
109
+
110
+ <span class='id directory'>directory</span> <span class='id test'>test</span> <span class='kw'>do</span>
111
+ <span class='id directory'>directory</span> <span class='id unit'>unit</span> <span class='kw'>do</span>
112
+ <span class='id template'>template</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id input'>input</span><span class='period'>.</span><span class='id snake_case'>snake_case</span><span class='rbrace'>}</span><span class='tstring_content'>_generator_test.rb</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>generator_test.rb</span><span class='tstring_end'>&quot;</span></span>
113
+ <span class='id template'>template</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>test_helper.rb</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>generator_test_helper.rb</span><span class='tstring_end'>&quot;</span></span>
114
+ <span class='kw'>end</span>
115
+ <span class='id directory'>directory</span> <span class='id fixtures'>fixtures</span> <span class='kw'>do</span>
116
+ <span class='id directory'>directory</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>generators</span><span class='tstring_end'>&quot;</span></span>
117
+ <span class='kw'>end</span>
118
+ <span class='kw'>end</span>
119
+
120
+ <span class='comment'>#This should actually be moved to the library generator
121
+ </span> <span class='comment'>#directory vendor
122
+ </span>
123
+ <span class='kw'>end</span>
124
+
125
+ <span class='kw'>end</span></pre>
126
+
127
+ <p>end</p>
128
+ </div></div>
129
+
130
+ <div id="footer">
131
+ Generated on Wed Dec 22 11:58:32 2010 by
132
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
133
+ 0.6.3 (ruby-1.9.2).
134
+ </div>
135
+
136
+ </body>
137
+ </html>