simple-templater 0.0.1

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 (874) hide show
  1. data/CHANGELOG +10 -0
  2. data/LICENSE +20 -0
  3. data/README.textile +136 -0
  4. data/Rakefile +79 -0
  5. data/TODO.txt +15 -0
  6. data/bin/simple-templater +66 -0
  7. data/deps.rip +7 -0
  8. data/lib/simple-templater/argv_parsing.rb +27 -0
  9. data/lib/simple-templater/builder.rb +134 -0
  10. data/lib/simple-templater/discoverer.rb +20 -0
  11. data/lib/simple-templater/discoverers/gems.rb +79 -0
  12. data/lib/simple-templater/discoverers/plain.rb +1 -0
  13. data/lib/simple-templater/discoverers/rip.rb +1 -0
  14. data/lib/simple-templater/dsl.rb +27 -0
  15. data/lib/simple-templater/generator.rb +129 -0
  16. data/lib/simple-templater/generator_set.rb +45 -0
  17. data/lib/simple-templater/helpers.rb +34 -0
  18. data/lib/simple-templater/hooks/hook.rb +76 -0
  19. data/lib/simple-templater/hooks/postprocess/git_repository.rb +25 -0
  20. data/lib/simple-templater/hooks/postprocess/github.rb +20 -0
  21. data/lib/simple-templater/hooks/preprocess/full_name.rb +17 -0
  22. data/lib/simple-templater/hooks/preprocess/github.rb +25 -0
  23. data/lib/simple-templater.rb +97 -0
  24. data/script/spec +14 -0
  25. data/simple-templater.gemspec +45 -0
  26. data/simple-templater.scope +6 -0
  27. data/spec/simple-templater/argv_parsing_spec.rb +41 -0
  28. data/spec/simple-templater/builder_spec.rb +1 -0
  29. data/spec/simple-templater/discoverers/gems_spec.rb +0 -0
  30. data/spec/simple-templater/discoverers/plain_spec.rb +0 -0
  31. data/spec/simple-templater/discoverers/rip_spec.rb +0 -0
  32. data/spec/simple-templater/generator_set_spec.rb +55 -0
  33. data/spec/simple-templater/generator_spec.rb +30 -0
  34. data/spec/simple-templater/helpers_spec.rb +81 -0
  35. data/spec/simple-templater/hooks/hook_spec.rb +100 -0
  36. data/spec/simple-templater/hooks/postprocess/git_repository_spec.rb +25 -0
  37. data/spec/simple-templater/hooks/postprocess/github_spec.rb +8 -0
  38. data/spec/simple-templater_spec.rb +112 -0
  39. data/spec/spec.opts +5 -0
  40. data/spec/spec_helper.rb +19 -0
  41. data/spec/stubs/gems/cache/test_generator-0.0.1.gem +0 -0
  42. data/spec/stubs/gems/gems/test_generator-0.0.1/simple-generator.scope +8 -0
  43. data/spec/stubs/gems/gems/test_generator-0.0.1/simple-templater.scope +8 -0
  44. data/spec/stubs/gems/gems/test_generator-0.0.1/stubs/content/%name%1_test.rb.rbt +1 -0
  45. data/spec/stubs/gems/gems/test_generator-0.0.1/stubs/content/%name%_test.rb +0 -0
  46. data/spec/stubs/gems/gems/test_generator-0.0.1/stubs/content/README.textile +3 -0
  47. data/spec/stubs/gems/gems/test_generator-0.0.1/stubs/content/script.rb.rbt +1 -0
  48. data/spec/stubs/gems/gems/test_generator-0.0.1/stubs/test/content/%name%1_test.rb.rbt +1 -0
  49. data/spec/stubs/gems/gems/test_generator-0.0.1/stubs/test/content/%name%_test.rb +0 -0
  50. data/spec/stubs/gems/gems/test_generator-0.0.1/stubs/test/content/README.textile +3 -0
  51. data/spec/stubs/gems/gems/test_generator-0.0.1/stubs/test/content/script.rb.rbt +1 -0
  52. data/spec/stubs/gems/gems/test_generator-0.0.1/test_generator.gemspec +19 -0
  53. data/spec/stubs/gems/specifications/test_generator-0.0.1.gemspec +28 -0
  54. data/spec/stubs/simple-templater.scope +8 -0
  55. data/spec/stubs/test_generator/simple-templater.scope +8 -0
  56. data/spec/stubs/test_generator/stubs/test/content/%name%1_test.rb.rbt +1 -0
  57. data/spec/stubs/test_generator/stubs/test/content/%name%_test.rb +0 -0
  58. data/spec/stubs/test_generator/stubs/test/content/README.textile +3 -0
  59. data/spec/stubs/test_generator/stubs/test/content/script.rb.rbt +1 -0
  60. data/spec/stubs/test_generator/test_generator-0.0.1.gem +0 -0
  61. data/spec/stubs/test_generator/test_generator.gemspec +19 -0
  62. data/stubs/project/content/%name%.gemspec.rbt +37 -0
  63. data/stubs/project/content/CHANGELOG +2 -0
  64. data/stubs/project/content/LICENSE.rbt +20 -0
  65. data/stubs/project/content/README.textile.rbt +19 -0
  66. data/stubs/project/content/Rakefile +39 -0
  67. data/stubs/project/content/TODO.txt +0 -0
  68. data/stubs/project/content/bin/%name%.rbt +14 -0
  69. data/stubs/project/content/deps.rip +5 -0
  70. data/stubs/project/content/lib/%name%.rb.rbt +5 -0
  71. data/stubs/project/content/spec/%name%_spec.rb.rbt +10 -0
  72. data/stubs/project/content/spec/spec.opts +5 -0
  73. data/stubs/project/content/spec/spec_helper.rb.rbt +11 -0
  74. data/stubs/project/metadata.yml +3 -0
  75. data/stubs/project/postprocess.rb +13 -0
  76. data/stubs/project/setup.rb +13 -0
  77. data/stubs/stub/content/metadata.yml.rbt +3 -0
  78. data/stubs/stub/content/postprocess.rb +11 -0
  79. data/stubs/stub/content/setup.rb +10 -0
  80. data/stubs/stub/metadata.yml +3 -0
  81. data/stubs/stub/postprocess.rb +9 -0
  82. data/stubs/stub/setup.rb +15 -0
  83. data/vendor/abstract/ChangeLog +3 -0
  84. data/vendor/abstract/README.txt +57 -0
  85. data/vendor/abstract/abstract.gemspec +48 -0
  86. data/vendor/abstract/doc/classes/Kernel.html +134 -0
  87. data/vendor/abstract/doc/classes/Kernel.src/M000002.html +24 -0
  88. data/vendor/abstract/doc/classes/Module.html +140 -0
  89. data/vendor/abstract/doc/classes/Module.src/M000001.html +20 -0
  90. data/vendor/abstract/doc/created.rid +1 -0
  91. data/vendor/abstract/doc/files/README_txt.html +173 -0
  92. data/vendor/abstract/doc/files/lib/abstract_rb.html +137 -0
  93. data/vendor/abstract/doc/fr_class_index.html +28 -0
  94. data/vendor/abstract/doc/fr_file_index.html +28 -0
  95. data/vendor/abstract/doc/fr_method_index.html +28 -0
  96. data/vendor/abstract/doc/index.html +24 -0
  97. data/vendor/abstract/doc/rdoc-style.css +208 -0
  98. data/vendor/abstract/lib/abstract.rb +75 -0
  99. data/vendor/abstract/setup.rb +1331 -0
  100. data/vendor/abstract/test/test.rb +91 -0
  101. data/vendor/cli/CHANGELOG +2 -0
  102. data/vendor/cli/LICENSE +20 -0
  103. data/vendor/cli/README.textile +0 -0
  104. data/vendor/cli/Rakefile +62 -0
  105. data/vendor/cli/TODO.txt +0 -0
  106. data/vendor/cli/cli.gemspec +42 -0
  107. data/vendor/cli/deps.rip +5 -0
  108. data/vendor/cli/lib/cli.rb +33 -0
  109. data/vendor/cli/script/spec +12 -0
  110. data/vendor/cli/spec/cli_spec.rb +56 -0
  111. data/vendor/cli/spec/spec.opts +5 -0
  112. data/vendor/cli/spec/spec_helper.rb +18 -0
  113. data/vendor/erubis/CHANGES.txt +717 -0
  114. data/vendor/erubis/MIT-LICENSE +20 -0
  115. data/vendor/erubis/README.txt +102 -0
  116. data/vendor/erubis/benchmark/Makefile +6 -0
  117. data/vendor/erubis/benchmark/bench.rb +314 -0
  118. data/vendor/erubis/benchmark/bench_context.yaml +141 -0
  119. data/vendor/erubis/benchmark/templates/_footer.html +4 -0
  120. data/vendor/erubis/benchmark/templates/_header.html +52 -0
  121. data/vendor/erubis/benchmark/templates/bench_erb.rhtml +29 -0
  122. data/vendor/erubis/benchmark/templates/bench_erubis.rhtml +29 -0
  123. data/vendor/erubis/benchmark/templates/bench_eruby.rhtml +29 -0
  124. data/vendor/erubis/bin/erubis +11 -0
  125. data/vendor/erubis/contrib/erubis +11 -0
  126. data/vendor/erubis/contrib/erubis-run.rb +132 -0
  127. data/vendor/erubis/contrib/inline-require +153 -0
  128. data/vendor/erubis/doc/docstyle.css +188 -0
  129. data/vendor/erubis/doc/users-guide.html +3285 -0
  130. data/vendor/erubis/doc-api/classes/ActionView/TemplateHandlers/ErubisHandler.html +181 -0
  131. data/vendor/erubis/doc-api/classes/ActionView.html +105 -0
  132. data/vendor/erubis/doc-api/classes/ERB.html +101 -0
  133. data/vendor/erubis/doc-api/classes/Erubis/ArrayBufferEnhancer.html +175 -0
  134. data/vendor/erubis/doc-api/classes/Erubis/ArrayBufferEruby.html +120 -0
  135. data/vendor/erubis/doc-api/classes/Erubis/ArrayEnhancer.html +174 -0
  136. data/vendor/erubis/doc-api/classes/Erubis/ArrayEruby.html +120 -0
  137. data/vendor/erubis/doc-api/classes/Erubis/Basic/Converter.html +327 -0
  138. data/vendor/erubis/doc-api/classes/Erubis/Basic/Engine.html +130 -0
  139. data/vendor/erubis/doc-api/classes/Erubis/Basic.html +112 -0
  140. data/vendor/erubis/doc-api/classes/Erubis/BiPatternEnhancer.html +215 -0
  141. data/vendor/erubis/doc-api/classes/Erubis/BiPatternEruby.html +120 -0
  142. data/vendor/erubis/doc-api/classes/Erubis/CGenerator.html +386 -0
  143. data/vendor/erubis/doc-api/classes/Erubis/CommandOptionError.html +113 -0
  144. data/vendor/erubis/doc-api/classes/Erubis/Context.html +344 -0
  145. data/vendor/erubis/doc-api/classes/Erubis/Converter.html +283 -0
  146. data/vendor/erubis/doc-api/classes/Erubis/DeleteIndentEnhancer.html +150 -0
  147. data/vendor/erubis/doc-api/classes/Erubis/DeleteIndentEruby.html +120 -0
  148. data/vendor/erubis/doc-api/classes/Erubis/Ec.html +126 -0
  149. data/vendor/erubis/doc-api/classes/Erubis/Ejava.html +126 -0
  150. data/vendor/erubis/doc-api/classes/Erubis/Ejavascript.html +126 -0
  151. data/vendor/erubis/doc-api/classes/Erubis/Engine.html +305 -0
  152. data/vendor/erubis/doc-api/classes/Erubis/Eperl.html +126 -0
  153. data/vendor/erubis/doc-api/classes/Erubis/Ephp.html +126 -0
  154. data/vendor/erubis/doc-api/classes/Erubis/ErboutEnhancer.html +175 -0
  155. data/vendor/erubis/doc-api/classes/Erubis/ErboutEruby.html +120 -0
  156. data/vendor/erubis/doc-api/classes/Erubis/ErubisError.html +117 -0
  157. data/vendor/erubis/doc-api/classes/Erubis/Eruby.html +132 -0
  158. data/vendor/erubis/doc-api/classes/Erubis/EscapeEnhancer.html +165 -0
  159. data/vendor/erubis/doc-api/classes/Erubis/EscapedEc.html +120 -0
  160. data/vendor/erubis/doc-api/classes/Erubis/EscapedEjava.html +120 -0
  161. data/vendor/erubis/doc-api/classes/Erubis/EscapedEjavascript.html +120 -0
  162. data/vendor/erubis/doc-api/classes/Erubis/EscapedEperl.html +120 -0
  163. data/vendor/erubis/doc-api/classes/Erubis/EscapedEphp.html +120 -0
  164. data/vendor/erubis/doc-api/classes/Erubis/EscapedEruby.html +127 -0
  165. data/vendor/erubis/doc-api/classes/Erubis/EscapedEscheme.html +120 -0
  166. data/vendor/erubis/doc-api/classes/Erubis/Escheme.html +126 -0
  167. data/vendor/erubis/doc-api/classes/Erubis/Evaluator.html +212 -0
  168. data/vendor/erubis/doc-api/classes/Erubis/FastEruby.html +131 -0
  169. data/vendor/erubis/doc-api/classes/Erubis/Generator.html +416 -0
  170. data/vendor/erubis/doc-api/classes/Erubis/HeaderFooterEnhancer.html +267 -0
  171. data/vendor/erubis/doc-api/classes/Erubis/HeaderFooterEruby.html +120 -0
  172. data/vendor/erubis/doc-api/classes/Erubis/Helpers/RailsFormHelper.html +787 -0
  173. data/vendor/erubis/doc-api/classes/Erubis/Helpers/RailsHelper/TemplateConverter.html +164 -0
  174. data/vendor/erubis/doc-api/classes/Erubis/Helpers/RailsHelper.html +349 -0
  175. data/vendor/erubis/doc-api/classes/Erubis/Helpers.html +116 -0
  176. data/vendor/erubis/doc-api/classes/Erubis/InterpolationEnhancer.html +306 -0
  177. data/vendor/erubis/doc-api/classes/Erubis/InterpolationEruby.html +120 -0
  178. data/vendor/erubis/doc-api/classes/Erubis/JavaGenerator.html +359 -0
  179. data/vendor/erubis/doc-api/classes/Erubis/JavascriptGenerator.html +386 -0
  180. data/vendor/erubis/doc-api/classes/Erubis/Main.html +340 -0
  181. data/vendor/erubis/doc-api/classes/Erubis/NoCodeEnhancer.html +249 -0
  182. data/vendor/erubis/doc-api/classes/Erubis/NoCodeEruby.html +120 -0
  183. data/vendor/erubis/doc-api/classes/Erubis/NoTextEnhancer.html +159 -0
  184. data/vendor/erubis/doc-api/classes/Erubis/NoTextEruby.html +120 -0
  185. data/vendor/erubis/doc-api/classes/Erubis/NotSupportedError.html +119 -0
  186. data/vendor/erubis/doc-api/classes/Erubis/OptimizedEruby.html +163 -0
  187. data/vendor/erubis/doc-api/classes/Erubis/OptimizedGenerator.html +439 -0
  188. data/vendor/erubis/doc-api/classes/Erubis/OptimizedXmlEruby.html +163 -0
  189. data/vendor/erubis/doc-api/classes/Erubis/PI/Converter.html +266 -0
  190. data/vendor/erubis/doc-api/classes/Erubis/PI/Ec.html +166 -0
  191. data/vendor/erubis/doc-api/classes/Erubis/PI/Ejava.html +166 -0
  192. data/vendor/erubis/doc-api/classes/Erubis/PI/Ejavascript.html +166 -0
  193. data/vendor/erubis/doc-api/classes/Erubis/PI/Engine.html +122 -0
  194. data/vendor/erubis/doc-api/classes/Erubis/PI/Eperl.html +166 -0
  195. data/vendor/erubis/doc-api/classes/Erubis/PI/Ephp.html +166 -0
  196. data/vendor/erubis/doc-api/classes/Erubis/PI/Eruby.html +155 -0
  197. data/vendor/erubis/doc-api/classes/Erubis/PI/Escheme.html +166 -0
  198. data/vendor/erubis/doc-api/classes/Erubis/PI/TinyEruby.html +293 -0
  199. data/vendor/erubis/doc-api/classes/Erubis/PI.html +124 -0
  200. data/vendor/erubis/doc-api/classes/Erubis/PercentLineEnhancer.html +179 -0
  201. data/vendor/erubis/doc-api/classes/Erubis/PercentLineEruby.html +120 -0
  202. data/vendor/erubis/doc-api/classes/Erubis/PerlGenerator.html +344 -0
  203. data/vendor/erubis/doc-api/classes/Erubis/PhpGenerator.html +350 -0
  204. data/vendor/erubis/doc-api/classes/Erubis/PreprocessingEruby.html +183 -0
  205. data/vendor/erubis/doc-api/classes/Erubis/PreprocessingHelper.html +212 -0
  206. data/vendor/erubis/doc-api/classes/Erubis/PrintEnabledEnhancer.html +212 -0
  207. data/vendor/erubis/doc-api/classes/Erubis/PrintEnabledEruby.html +120 -0
  208. data/vendor/erubis/doc-api/classes/Erubis/PrintOutEnhancer.html +244 -0
  209. data/vendor/erubis/doc-api/classes/Erubis/PrintOutEruby.html +120 -0
  210. data/vendor/erubis/doc-api/classes/Erubis/PrintOutSimplifiedEruby.html +121 -0
  211. data/vendor/erubis/doc-api/classes/Erubis/RubyEvaluator.html +227 -0
  212. data/vendor/erubis/doc-api/classes/Erubis/RubyGenerator.html +327 -0
  213. data/vendor/erubis/doc-api/classes/Erubis/SchemeGenerator.html +382 -0
  214. data/vendor/erubis/doc-api/classes/Erubis/SimplifiedEruby.html +120 -0
  215. data/vendor/erubis/doc-api/classes/Erubis/SimplifyEnhancer.html +191 -0
  216. data/vendor/erubis/doc-api/classes/Erubis/StdoutEnhancer.html +173 -0
  217. data/vendor/erubis/doc-api/classes/Erubis/StdoutEruby.html +120 -0
  218. data/vendor/erubis/doc-api/classes/Erubis/StdoutSimplifiedEruby.html +121 -0
  219. data/vendor/erubis/doc-api/classes/Erubis/StringBufferEnhancer.html +174 -0
  220. data/vendor/erubis/doc-api/classes/Erubis/StringBufferEruby.html +120 -0
  221. data/vendor/erubis/doc-api/classes/Erubis/StringIOEruby.html +120 -0
  222. data/vendor/erubis/doc-api/classes/Erubis/TinyEruby.html +299 -0
  223. data/vendor/erubis/doc-api/classes/Erubis/XmlEruby.html +130 -0
  224. data/vendor/erubis/doc-api/classes/Erubis/XmlHelper.html +255 -0
  225. data/vendor/erubis/doc-api/classes/Erubis.html +353 -0
  226. data/vendor/erubis/doc-api/created.rid +1 -0
  227. data/vendor/erubis/doc-api/files/README_txt.html +247 -0
  228. data/vendor/erubis/doc-api/files/erubis/context_rb.html +107 -0
  229. data/vendor/erubis/doc-api/files/erubis/converter_rb.html +114 -0
  230. data/vendor/erubis/doc-api/files/erubis/engine/ec_rb.html +115 -0
  231. data/vendor/erubis/doc-api/files/erubis/engine/ejava_rb.html +115 -0
  232. data/vendor/erubis/doc-api/files/erubis/engine/ejavascript_rb.html +115 -0
  233. data/vendor/erubis/doc-api/files/erubis/engine/enhanced_rb.html +115 -0
  234. data/vendor/erubis/doc-api/files/erubis/engine/eperl_rb.html +115 -0
  235. data/vendor/erubis/doc-api/files/erubis/engine/ephp_rb.html +115 -0
  236. data/vendor/erubis/doc-api/files/erubis/engine/eruby_rb.html +115 -0
  237. data/vendor/erubis/doc-api/files/erubis/engine/escheme_rb.html +115 -0
  238. data/vendor/erubis/doc-api/files/erubis/engine/optimized_rb.html +114 -0
  239. data/vendor/erubis/doc-api/files/erubis/engine_rb.html +117 -0
  240. data/vendor/erubis/doc-api/files/erubis/enhancer_rb.html +107 -0
  241. data/vendor/erubis/doc-api/files/erubis/error_rb.html +107 -0
  242. data/vendor/erubis/doc-api/files/erubis/evaluator_rb.html +115 -0
  243. data/vendor/erubis/doc-api/files/erubis/generator_rb.html +114 -0
  244. data/vendor/erubis/doc-api/files/erubis/helper_rb.html +107 -0
  245. data/vendor/erubis/doc-api/files/erubis/helpers/rails_form_helper_rb.html +107 -0
  246. data/vendor/erubis/doc-api/files/erubis/helpers/rails_helper_rb.html +116 -0
  247. data/vendor/erubis/doc-api/files/erubis/local-setting_rb.html +107 -0
  248. data/vendor/erubis/doc-api/files/erubis/main_rb.html +127 -0
  249. data/vendor/erubis/doc-api/files/erubis/preprocessing_rb.html +114 -0
  250. data/vendor/erubis/doc-api/files/erubis/tiny_rb.html +107 -0
  251. data/vendor/erubis/doc-api/files/erubis_rb.html +118 -0
  252. data/vendor/erubis/doc-api/fr_class_index.html +122 -0
  253. data/vendor/erubis/doc-api/fr_file_index.html +51 -0
  254. data/vendor/erubis/doc-api/fr_method_index.html +248 -0
  255. data/vendor/erubis/doc-api/index.html +24 -0
  256. data/vendor/erubis/doc-api/rdoc-style.css +208 -0
  257. data/vendor/erubis/erubis.gemspec +66 -0
  258. data/vendor/erubis/examples/basic/Makefile +53 -0
  259. data/vendor/erubis/examples/basic/example.ec +42 -0
  260. data/vendor/erubis/examples/basic/example.ejava +45 -0
  261. data/vendor/erubis/examples/basic/example.ejs +16 -0
  262. data/vendor/erubis/examples/basic/example.eperl +16 -0
  263. data/vendor/erubis/examples/basic/example.ephp +17 -0
  264. data/vendor/erubis/examples/basic/example.eruby +15 -0
  265. data/vendor/erubis/examples/basic/example.escheme +26 -0
  266. data/vendor/erubis/examples/pi/Makefile +54 -0
  267. data/vendor/erubis/examples/pi/example.ec +42 -0
  268. data/vendor/erubis/examples/pi/example.ejava +45 -0
  269. data/vendor/erubis/examples/pi/example.ejs +16 -0
  270. data/vendor/erubis/examples/pi/example.eperl +16 -0
  271. data/vendor/erubis/examples/pi/example.ephp +17 -0
  272. data/vendor/erubis/examples/pi/example.eruby +15 -0
  273. data/vendor/erubis/examples/pi/example.escheme +26 -0
  274. data/vendor/erubis/lib/erubis/context.rb +84 -0
  275. data/vendor/erubis/lib/erubis/converter.rb +358 -0
  276. data/vendor/erubis/lib/erubis/engine/ec.rb +118 -0
  277. data/vendor/erubis/lib/erubis/engine/ejava.rb +111 -0
  278. data/vendor/erubis/lib/erubis/engine/ejavascript.rb +120 -0
  279. data/vendor/erubis/lib/erubis/engine/enhanced.rb +122 -0
  280. data/vendor/erubis/lib/erubis/engine/eperl.rb +96 -0
  281. data/vendor/erubis/lib/erubis/engine/ephp.rb +100 -0
  282. data/vendor/erubis/lib/erubis/engine/eruby.rb +125 -0
  283. data/vendor/erubis/lib/erubis/engine/escheme.rb +115 -0
  284. data/vendor/erubis/lib/erubis/engine/optimized.rb +128 -0
  285. data/vendor/erubis/lib/erubis/engine.rb +121 -0
  286. data/vendor/erubis/lib/erubis/enhancer.rb +681 -0
  287. data/vendor/erubis/lib/erubis/error.rb +24 -0
  288. data/vendor/erubis/lib/erubis/evaluator.rb +89 -0
  289. data/vendor/erubis/lib/erubis/generator.rb +86 -0
  290. data/vendor/erubis/lib/erubis/helper.rb +48 -0
  291. data/vendor/erubis/lib/erubis/helpers/rails_form_helper.rb +198 -0
  292. data/vendor/erubis/lib/erubis/helpers/rails_helper.rb +325 -0
  293. data/vendor/erubis/lib/erubis/local-setting.rb +10 -0
  294. data/vendor/erubis/lib/erubis/main.rb +491 -0
  295. data/vendor/erubis/lib/erubis/preprocessing.rb +59 -0
  296. data/vendor/erubis/lib/erubis/tiny.rb +146 -0
  297. data/vendor/erubis/lib/erubis.rb +73 -0
  298. data/vendor/erubis/setup.rb +1331 -0
  299. data/vendor/erubis/test/assert-text-equal.rb +45 -0
  300. data/vendor/erubis/test/assert-text-equal.rbc +0 -0
  301. data/vendor/erubis/test/data/users-guide/Example.ejava +55 -0
  302. data/vendor/erubis/test/data/users-guide/array_example.result +9 -0
  303. data/vendor/erubis/test/data/users-guide/arraybuffer_example.result +9 -0
  304. data/vendor/erubis/test/data/users-guide/bipattern-example.rhtml +4 -0
  305. data/vendor/erubis/test/data/users-guide/bipattern_example.result +6 -0
  306. data/vendor/erubis/test/data/users-guide/context.rb +6 -0
  307. data/vendor/erubis/test/data/users-guide/context.yaml +8 -0
  308. data/vendor/erubis/test/data/users-guide/def_method.rb +14 -0
  309. data/vendor/erubis/test/data/users-guide/def_method.result +3 -0
  310. data/vendor/erubis/test/data/users-guide/escape_example.result +9 -0
  311. data/vendor/erubis/test/data/users-guide/example.ec +27 -0
  312. data/vendor/erubis/test/data/users-guide/example.ejs +20 -0
  313. data/vendor/erubis/test/data/users-guide/example.eperl +18 -0
  314. data/vendor/erubis/test/data/users-guide/example.ephp +18 -0
  315. data/vendor/erubis/test/data/users-guide/example.eruby +6 -0
  316. data/vendor/erubis/test/data/users-guide/example.escheme +28 -0
  317. data/vendor/erubis/test/data/users-guide/example1.eruby +6 -0
  318. data/vendor/erubis/test/data/users-guide/example1.rb +17 -0
  319. data/vendor/erubis/test/data/users-guide/example1.result +16 -0
  320. data/vendor/erubis/test/data/users-guide/example10.rb +4 -0
  321. data/vendor/erubis/test/data/users-guide/example10.result +17 -0
  322. data/vendor/erubis/test/data/users-guide/example10.xhtml +14 -0
  323. data/vendor/erubis/test/data/users-guide/example10_x.result +17 -0
  324. data/vendor/erubis/test/data/users-guide/example11.php +20 -0
  325. data/vendor/erubis/test/data/users-guide/example11.result +23 -0
  326. data/vendor/erubis/test/data/users-guide/example11.rhtml +21 -0
  327. data/vendor/erubis/test/data/users-guide/example11_C.result +10 -0
  328. data/vendor/erubis/test/data/users-guide/example11_N.result +16 -0
  329. data/vendor/erubis/test/data/users-guide/example11_U.result +16 -0
  330. data/vendor/erubis/test/data/users-guide/example11_php.result +15 -0
  331. data/vendor/erubis/test/data/users-guide/example1_x.result +9 -0
  332. data/vendor/erubis/test/data/users-guide/example2.eruby +7 -0
  333. data/vendor/erubis/test/data/users-guide/example2.rb +10 -0
  334. data/vendor/erubis/test/data/users-guide/example2.result +27 -0
  335. data/vendor/erubis/test/data/users-guide/example2_trim.result +10 -0
  336. data/vendor/erubis/test/data/users-guide/example2_x.result +10 -0
  337. data/vendor/erubis/test/data/users-guide/example3.eruby +6 -0
  338. data/vendor/erubis/test/data/users-guide/example3.rb +10 -0
  339. data/vendor/erubis/test/data/users-guide/example31.result +22 -0
  340. data/vendor/erubis/test/data/users-guide/example32.result +4 -0
  341. data/vendor/erubis/test/data/users-guide/example3_e.result +8 -0
  342. data/vendor/erubis/test/data/users-guide/example4.eruby +3 -0
  343. data/vendor/erubis/test/data/users-guide/example4.rb +11 -0
  344. data/vendor/erubis/test/data/users-guide/example4.result +10 -0
  345. data/vendor/erubis/test/data/users-guide/example4_x.result +5 -0
  346. data/vendor/erubis/test/data/users-guide/example5.eruby +6 -0
  347. data/vendor/erubis/test/data/users-guide/example5.rb +16 -0
  348. data/vendor/erubis/test/data/users-guide/example5.result +7 -0
  349. data/vendor/erubis/test/data/users-guide/example6.rb +12 -0
  350. data/vendor/erubis/test/data/users-guide/example6.result +7 -0
  351. data/vendor/erubis/test/data/users-guide/example7.eruby +8 -0
  352. data/vendor/erubis/test/data/users-guide/example71.result +13 -0
  353. data/vendor/erubis/test/data/users-guide/example72.result +13 -0
  354. data/vendor/erubis/test/data/users-guide/example8.eruby +6 -0
  355. data/vendor/erubis/test/data/users-guide/example8_ruby.result +7 -0
  356. data/vendor/erubis/test/data/users-guide/example8_yaml.result +7 -0
  357. data/vendor/erubis/test/data/users-guide/example9.eruby +3 -0
  358. data/vendor/erubis/test/data/users-guide/example9.rb +8 -0
  359. data/vendor/erubis/test/data/users-guide/example9.result +9 -0
  360. data/vendor/erubis/test/data/users-guide/example91.result +5 -0
  361. data/vendor/erubis/test/data/users-guide/example92.result +4 -0
  362. data/vendor/erubis/test/data/users-guide/example_c.result +29 -0
  363. data/vendor/erubis/test/data/users-guide/example_java.result +56 -0
  364. data/vendor/erubis/test/data/users-guide/example_js.result +22 -0
  365. data/vendor/erubis/test/data/users-guide/example_perl.result +20 -0
  366. data/vendor/erubis/test/data/users-guide/example_php.result +19 -0
  367. data/vendor/erubis/test/data/users-guide/example_scheme.result +30 -0
  368. data/vendor/erubis/test/data/users-guide/example_scheme_display.result +29 -0
  369. data/vendor/erubis/test/data/users-guide/fasteruby.rb +11 -0
  370. data/vendor/erubis/test/data/users-guide/fasteruby.result +38 -0
  371. data/vendor/erubis/test/data/users-guide/fasteruby.rhtml +15 -0
  372. data/vendor/erubis/test/data/users-guide/headerfooter-example.eruby +9 -0
  373. data/vendor/erubis/test/data/users-guide/headerfooter-example2.rb +8 -0
  374. data/vendor/erubis/test/data/users-guide/headerfooter-example2.rhtml +10 -0
  375. data/vendor/erubis/test/data/users-guide/headerfooter_example.result +11 -0
  376. data/vendor/erubis/test/data/users-guide/headerfooter_example2.result +13 -0
  377. data/vendor/erubis/test/data/users-guide/interpolation_example.result +9 -0
  378. data/vendor/erubis/test/data/users-guide/main_program1.rb +8 -0
  379. data/vendor/erubis/test/data/users-guide/main_program1.result +6 -0
  380. data/vendor/erubis/test/data/users-guide/main_program2.rb +8 -0
  381. data/vendor/erubis/test/data/users-guide/main_program2.result +6 -0
  382. data/vendor/erubis/test/data/users-guide/nocode-example.eruby +14 -0
  383. data/vendor/erubis/test/data/users-guide/nocode-php.result +20 -0
  384. data/vendor/erubis/test/data/users-guide/nocode_example.result +15 -0
  385. data/vendor/erubis/test/data/users-guide/normal-eruby-test.eruby +9 -0
  386. data/vendor/erubis/test/data/users-guide/normal_eruby_test.result +11 -0
  387. data/vendor/erubis/test/data/users-guide/notext-example.eruby +14 -0
  388. data/vendor/erubis/test/data/users-guide/notext-example.php +19 -0
  389. data/vendor/erubis/test/data/users-guide/notext-php.result +20 -0
  390. data/vendor/erubis/test/data/users-guide/notext_example.result +16 -0
  391. data/vendor/erubis/test/data/users-guide/percentline-example.rhtml +4 -0
  392. data/vendor/erubis/test/data/users-guide/percentline_example.result +7 -0
  393. data/vendor/erubis/test/data/users-guide/printenable_example.result +4 -0
  394. data/vendor/erubis/test/data/users-guide/printenabled-example.eruby +3 -0
  395. data/vendor/erubis/test/data/users-guide/printenabled-example.rb +8 -0
  396. data/vendor/erubis/test/data/users-guide/printstatement_example.result +8 -0
  397. data/vendor/erubis/test/data/users-guide/simplify_example.result +9 -0
  398. data/vendor/erubis/test/data/users-guide/stdout_exmple.result +9 -0
  399. data/vendor/erubis/test/data/users-guide/stringbuffer_example.result +9 -0
  400. data/vendor/erubis/test/data/users-guide/tail_260.result +4 -0
  401. data/vendor/erubis/test/data/users-guide/tailnewline.rhtml +3 -0
  402. data/vendor/erubis/test/data/users-guide/template1.rhtml +4 -0
  403. data/vendor/erubis/test/data/users-guide/template2.rhtml +4 -0
  404. data/vendor/erubis/test/hoge.rb +5 -0
  405. data/vendor/erubis/test/test-engines.rb +370 -0
  406. data/vendor/erubis/test/test-engines.rbc +0 -0
  407. data/vendor/erubis/test/test-enhancers.rb +571 -0
  408. data/vendor/erubis/test/test-erubis.rb +884 -0
  409. data/vendor/erubis/test/test-erubis.rbc +0 -0
  410. data/vendor/erubis/test/test-main.rb +674 -0
  411. data/vendor/erubis/test/test-users-guide.rb +58 -0
  412. data/vendor/erubis/test/test-users-guide.rbc +0 -0
  413. data/vendor/erubis/test/test.rb +30 -0
  414. data/vendor/erubis/test/test.rbc +0 -0
  415. data/vendor/erubis/test/testutil.rb +101 -0
  416. data/vendor/erubis/test/testutil.rbc +0 -0
  417. data/vendor/fakefs/CONTRIBUTORS +17 -0
  418. data/vendor/fakefs/LICENSE +20 -0
  419. data/vendor/fakefs/README.markdown +101 -0
  420. data/vendor/fakefs/Rakefile +47 -0
  421. data/vendor/fakefs/lib/fakefs/base.rb +38 -0
  422. data/vendor/fakefs/lib/fakefs/dir.rb +114 -0
  423. data/vendor/fakefs/lib/fakefs/fake/dir.rb +45 -0
  424. data/vendor/fakefs/lib/fakefs/fake/file.rb +79 -0
  425. data/vendor/fakefs/lib/fakefs/fake/symlink.rb +32 -0
  426. data/vendor/fakefs/lib/fakefs/file.rb +330 -0
  427. data/vendor/fakefs/lib/fakefs/file_system.rb +136 -0
  428. data/vendor/fakefs/lib/fakefs/fileutils.rb +129 -0
  429. data/vendor/fakefs/lib/fakefs/safe.rb +11 -0
  430. data/vendor/fakefs/lib/fakefs/spec_helpers.rb +46 -0
  431. data/vendor/fakefs/lib/fakefs/version.rb +9 -0
  432. data/vendor/fakefs/lib/fakefs.rb +3 -0
  433. data/vendor/fakefs/spec/fakefs/spec_helpers_spec.rb +57 -0
  434. data/vendor/fakefs/spec/spec.opts +1 -0
  435. data/vendor/fakefs/spec/spec_helper.rb +3 -0
  436. data/vendor/fakefs/test/fake/file_test.rb +88 -0
  437. data/vendor/fakefs/test/fake/symlink_test.rb +12 -0
  438. data/vendor/fakefs/test/fakefs_test.rb +1334 -0
  439. data/vendor/fakefs/test/file/stat_test.rb +70 -0
  440. data/vendor/fakefs/test/safe_test.rb +42 -0
  441. data/vendor/fakefs/test/verify.rb +27 -0
  442. data/vendor/rspec/History.rdoc +1510 -0
  443. data/vendor/rspec/License.txt +22 -0
  444. data/vendor/rspec/Manifest.txt +383 -0
  445. data/vendor/rspec/README.rdoc +55 -0
  446. data/vendor/rspec/Rakefile +145 -0
  447. data/vendor/rspec/Ruby1.9.rdoc +31 -0
  448. data/vendor/rspec/TODO.txt +17 -0
  449. data/vendor/rspec/Upgrade.rdoc +199 -0
  450. data/vendor/rspec/bin/autospec +4 -0
  451. data/vendor/rspec/bin/spec +5 -0
  452. data/vendor/rspec/cucumber.yml +5 -0
  453. data/vendor/rspec/examples/failing/README.txt +11 -0
  454. data/vendor/rspec/examples/failing/diffing_spec.rb +36 -0
  455. data/vendor/rspec/examples/failing/failing_implicit_docstrings_example.rb +17 -0
  456. data/vendor/rspec/examples/failing/failure_in_after.rb +10 -0
  457. data/vendor/rspec/examples/failing/failure_in_before.rb +10 -0
  458. data/vendor/rspec/examples/failing/mocking_example.rb +38 -0
  459. data/vendor/rspec/examples/failing/mocking_with_flexmock.rb +26 -0
  460. data/vendor/rspec/examples/failing/mocking_with_mocha.rb +25 -0
  461. data/vendor/rspec/examples/failing/mocking_with_rr.rb +27 -0
  462. data/vendor/rspec/examples/failing/partial_mock_example.rb +18 -0
  463. data/vendor/rspec/examples/failing/pending_example.rb +7 -0
  464. data/vendor/rspec/examples/failing/predicate_example.rb +32 -0
  465. data/vendor/rspec/examples/failing/raising_example.rb +47 -0
  466. data/vendor/rspec/examples/failing/syntax_error_example.rb +7 -0
  467. data/vendor/rspec/examples/failing/team_spec.rb +41 -0
  468. data/vendor/rspec/examples/failing/timeout_behaviour.rb +5 -0
  469. data/vendor/rspec/examples/passing/custom_formatter.rb +11 -0
  470. data/vendor/rspec/examples/passing/custom_matchers.rb +54 -0
  471. data/vendor/rspec/examples/passing/dynamic_spec.rb +7 -0
  472. data/vendor/rspec/examples/passing/file_accessor.rb +18 -0
  473. data/vendor/rspec/examples/passing/file_accessor_spec.rb +37 -0
  474. data/vendor/rspec/examples/passing/filtered_formatter.rb +17 -0
  475. data/vendor/rspec/examples/passing/filtered_formatter_example.rb +31 -0
  476. data/vendor/rspec/examples/passing/greeter_spec.rb +30 -0
  477. data/vendor/rspec/examples/passing/helper_method_example.rb +12 -0
  478. data/vendor/rspec/examples/passing/implicit_docstrings_example.rb +16 -0
  479. data/vendor/rspec/examples/passing/io_processor.rb +8 -0
  480. data/vendor/rspec/examples/passing/io_processor_spec.rb +20 -0
  481. data/vendor/rspec/examples/passing/mocking_example.rb +25 -0
  482. data/vendor/rspec/examples/passing/multi_threaded_example_group_runner.rb +26 -0
  483. data/vendor/rspec/examples/passing/nested_classes_example.rb +35 -0
  484. data/vendor/rspec/examples/passing/options_example.rb +29 -0
  485. data/vendor/rspec/examples/passing/options_formatter.rb +20 -0
  486. data/vendor/rspec/examples/passing/partial_mock_example.rb +27 -0
  487. data/vendor/rspec/examples/passing/pending_example.rb +18 -0
  488. data/vendor/rspec/examples/passing/predicate_example.rb +25 -0
  489. data/vendor/rspec/examples/passing/shared_example_group_example.rb +79 -0
  490. data/vendor/rspec/examples/passing/shared_stack_examples.rb +36 -0
  491. data/vendor/rspec/examples/passing/simple_matcher_example.rb +29 -0
  492. data/vendor/rspec/examples/passing/stack.rb +36 -0
  493. data/vendor/rspec/examples/passing/stack_spec.rb +63 -0
  494. data/vendor/rspec/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
  495. data/vendor/rspec/examples/passing/stubbing_example.rb +67 -0
  496. data/vendor/rspec/examples/passing/yielding_example.rb +31 -0
  497. data/vendor/rspec/examples/ruby1.9.compatibility/access_to_constants_spec.rb +85 -0
  498. data/vendor/rspec/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
  499. data/vendor/rspec/features/command_line/line_number_option.feature +56 -0
  500. data/vendor/rspec/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
  501. data/vendor/rspec/features/example_groups/define_example_attribute.feature +41 -0
  502. data/vendor/rspec/features/example_groups/example_group_with_should_methods.feature +29 -0
  503. data/vendor/rspec/features/example_groups/implicit_docstrings.feature +59 -0
  504. data/vendor/rspec/features/example_groups/nested_groups.feature +32 -0
  505. data/vendor/rspec/features/expectations/customized_message.feature +54 -0
  506. data/vendor/rspec/features/expectations/expect_change.feature +65 -0
  507. data/vendor/rspec/features/expectations/expect_error.feature +44 -0
  508. data/vendor/rspec/features/extensions/custom_example_group.feature +19 -0
  509. data/vendor/rspec/features/formatters/custom_formatter.feature +30 -0
  510. data/vendor/rspec/features/interop/examples_and_tests_together.feature +84 -0
  511. data/vendor/rspec/features/interop/rspec_output.feature +25 -0
  512. data/vendor/rspec/features/interop/test_but_not_test_unit.feature +26 -0
  513. data/vendor/rspec/features/interop/test_case_with_should_methods.feature +46 -0
  514. data/vendor/rspec/features/load_paths/add_lib_to_load_path.feature +20 -0
  515. data/vendor/rspec/features/load_paths/add_spec_to_load_path.feature +20 -0
  516. data/vendor/rspec/features/matchers/define_diffable_matcher.feature +26 -0
  517. data/vendor/rspec/features/matchers/define_matcher.feature +179 -0
  518. data/vendor/rspec/features/matchers/define_matcher_outside_rspec.feature +38 -0
  519. data/vendor/rspec/features/matchers/define_matcher_with_fluent_interface.feature +27 -0
  520. data/vendor/rspec/features/matchers/define_wrapped_matcher.feature +29 -0
  521. data/vendor/rspec/features/matchers/match_unless_raises.feature +60 -0
  522. data/vendor/rspec/features/matchers/match_unless_raises_unexpected_error.feature +39 -0
  523. data/vendor/rspec/features/mock_framework_integration/use_flexmock.feature +27 -0
  524. data/vendor/rspec/features/mock_framework_integration/use_mocha.feature +27 -0
  525. data/vendor/rspec/features/mock_framework_integration/use_rr.feature +27 -0
  526. data/vendor/rspec/features/mocks/block_local_expectations.feature +62 -0
  527. data/vendor/rspec/features/mocks/mix_stubs_and_mocks.feature +22 -0
  528. data/vendor/rspec/features/mocks/stub_implementation.feature +26 -0
  529. data/vendor/rspec/features/pending/pending_examples.feature +81 -0
  530. data/vendor/rspec/features/runner/specify_line_number.feature +32 -0
  531. data/vendor/rspec/features/spec_helper/spec_helper.feature +25 -0
  532. data/vendor/rspec/features/step_definitions/running_rspec_steps.rb +43 -0
  533. data/vendor/rspec/features/subject/explicit_subject.feature +31 -0
  534. data/vendor/rspec/features/subject/implicit_subject.feature +43 -0
  535. data/vendor/rspec/features/support/env.rb +82 -0
  536. data/vendor/rspec/features/support/matchers/smart_match.rb +12 -0
  537. data/vendor/rspec/features-pending/cli/conditional_exclusion.feature +39 -0
  538. data/vendor/rspec/features-pending/heckle/heckle.feature +56 -0
  539. data/vendor/rspec/geminstaller.yml +28 -0
  540. data/vendor/rspec/init.rb +9 -0
  541. data/vendor/rspec/lib/autotest/discover.rb +3 -0
  542. data/vendor/rspec/lib/autotest/rspec.rb +54 -0
  543. data/vendor/rspec/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
  544. data/vendor/rspec/lib/spec/adapters/mock_frameworks/mocha.rb +25 -0
  545. data/vendor/rspec/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
  546. data/vendor/rspec/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
  547. data/vendor/rspec/lib/spec/autorun.rb +3 -0
  548. data/vendor/rspec/lib/spec/deprecation.rb +40 -0
  549. data/vendor/rspec/lib/spec/dsl/main.rb +92 -0
  550. data/vendor/rspec/lib/spec/dsl.rb +1 -0
  551. data/vendor/rspec/lib/spec/example/args_and_options.rb +27 -0
  552. data/vendor/rspec/lib/spec/example/before_and_after_hooks.rb +93 -0
  553. data/vendor/rspec/lib/spec/example/errors.rb +25 -0
  554. data/vendor/rspec/lib/spec/example/example_group.rb +10 -0
  555. data/vendor/rspec/lib/spec/example/example_group_factory.rb +82 -0
  556. data/vendor/rspec/lib/spec/example/example_group_hierarchy.rb +53 -0
  557. data/vendor/rspec/lib/spec/example/example_group_methods.rb +282 -0
  558. data/vendor/rspec/lib/spec/example/example_group_proxy.rb +61 -0
  559. data/vendor/rspec/lib/spec/example/example_matcher.rb +43 -0
  560. data/vendor/rspec/lib/spec/example/example_methods.rb +148 -0
  561. data/vendor/rspec/lib/spec/example/example_proxy.rb +41 -0
  562. data/vendor/rspec/lib/spec/example/module_reopening_fix.rb +43 -0
  563. data/vendor/rspec/lib/spec/example/pending.rb +18 -0
  564. data/vendor/rspec/lib/spec/example/predicate_matchers.rb +46 -0
  565. data/vendor/rspec/lib/spec/example/shared_example_group.rb +59 -0
  566. data/vendor/rspec/lib/spec/example/subject.rb +108 -0
  567. data/vendor/rspec/lib/spec/example.rb +164 -0
  568. data/vendor/rspec/lib/spec/expectations/errors.rb +12 -0
  569. data/vendor/rspec/lib/spec/expectations/extensions/kernel.rb +52 -0
  570. data/vendor/rspec/lib/spec/expectations/extensions.rb +1 -0
  571. data/vendor/rspec/lib/spec/expectations/fail_with.rb +45 -0
  572. data/vendor/rspec/lib/spec/expectations/handler.rb +50 -0
  573. data/vendor/rspec/lib/spec/expectations.rb +35 -0
  574. data/vendor/rspec/lib/spec/extensions/instance_exec.rb +31 -0
  575. data/vendor/rspec/lib/spec/interop/test/unit/autorunner.rb +6 -0
  576. data/vendor/rspec/lib/spec/interop/test/unit/testcase.rb +56 -0
  577. data/vendor/rspec/lib/spec/interop/test/unit/testresult.rb +6 -0
  578. data/vendor/rspec/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
  579. data/vendor/rspec/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
  580. data/vendor/rspec/lib/spec/interop/test.rb +44 -0
  581. data/vendor/rspec/lib/spec/matchers/be.rb +211 -0
  582. data/vendor/rspec/lib/spec/matchers/be_close.rb +32 -0
  583. data/vendor/rspec/lib/spec/matchers/be_instance_of.rb +26 -0
  584. data/vendor/rspec/lib/spec/matchers/be_kind_of.rb +26 -0
  585. data/vendor/rspec/lib/spec/matchers/change.rb +151 -0
  586. data/vendor/rspec/lib/spec/matchers/compatibility.rb +14 -0
  587. data/vendor/rspec/lib/spec/matchers/dsl.rb +20 -0
  588. data/vendor/rspec/lib/spec/matchers/eql.rb +42 -0
  589. data/vendor/rspec/lib/spec/matchers/equal.rb +53 -0
  590. data/vendor/rspec/lib/spec/matchers/errors.rb +5 -0
  591. data/vendor/rspec/lib/spec/matchers/exist.rb +16 -0
  592. data/vendor/rspec/lib/spec/matchers/generated_descriptions.rb +36 -0
  593. data/vendor/rspec/lib/spec/matchers/has.rb +35 -0
  594. data/vendor/rspec/lib/spec/matchers/have.rb +152 -0
  595. data/vendor/rspec/lib/spec/matchers/include.rb +44 -0
  596. data/vendor/rspec/lib/spec/matchers/match.rb +21 -0
  597. data/vendor/rspec/lib/spec/matchers/match_array.rb +71 -0
  598. data/vendor/rspec/lib/spec/matchers/matcher.rb +102 -0
  599. data/vendor/rspec/lib/spec/matchers/method_missing.rb +9 -0
  600. data/vendor/rspec/lib/spec/matchers/operator_matcher.rb +78 -0
  601. data/vendor/rspec/lib/spec/matchers/pretty.rb +37 -0
  602. data/vendor/rspec/lib/spec/matchers/raise_error.rb +129 -0
  603. data/vendor/rspec/lib/spec/matchers/respond_to.rb +71 -0
  604. data/vendor/rspec/lib/spec/matchers/satisfy.rb +47 -0
  605. data/vendor/rspec/lib/spec/matchers/simple_matcher.rb +133 -0
  606. data/vendor/rspec/lib/spec/matchers/throw_symbol.rb +104 -0
  607. data/vendor/rspec/lib/spec/matchers/wrap_expectation.rb +55 -0
  608. data/vendor/rspec/lib/spec/matchers.rb +195 -0
  609. data/vendor/rspec/lib/spec/mocks/argument_expectation.rb +51 -0
  610. data/vendor/rspec/lib/spec/mocks/argument_matchers.rb +237 -0
  611. data/vendor/rspec/lib/spec/mocks/error_generator.rb +92 -0
  612. data/vendor/rspec/lib/spec/mocks/errors.rb +10 -0
  613. data/vendor/rspec/lib/spec/mocks/example_methods.rb +69 -0
  614. data/vendor/rspec/lib/spec/mocks/extensions/object.rb +3 -0
  615. data/vendor/rspec/lib/spec/mocks/extensions.rb +1 -0
  616. data/vendor/rspec/lib/spec/mocks/framework.rb +15 -0
  617. data/vendor/rspec/lib/spec/mocks/message_expectation.rb +343 -0
  618. data/vendor/rspec/lib/spec/mocks/methods.rb +89 -0
  619. data/vendor/rspec/lib/spec/mocks/mock.rb +71 -0
  620. data/vendor/rspec/lib/spec/mocks/order_group.rb +29 -0
  621. data/vendor/rspec/lib/spec/mocks/proxy.rb +245 -0
  622. data/vendor/rspec/lib/spec/mocks/space.rb +28 -0
  623. data/vendor/rspec/lib/spec/mocks.rb +200 -0
  624. data/vendor/rspec/lib/spec/rake/spectask.rb +230 -0
  625. data/vendor/rspec/lib/spec/rake/verify_rcov.rb +52 -0
  626. data/vendor/rspec/lib/spec/ruby.rb +9 -0
  627. data/vendor/rspec/lib/spec/runner/backtrace_tweaker.rb +77 -0
  628. data/vendor/rspec/lib/spec/runner/class_and_arguments_parser.rb +14 -0
  629. data/vendor/rspec/lib/spec/runner/command_line.rb +15 -0
  630. data/vendor/rspec/lib/spec/runner/configuration.rb +194 -0
  631. data/vendor/rspec/lib/spec/runner/differs/default.rb +93 -0
  632. data/vendor/rspec/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
  633. data/vendor/rspec/lib/spec/runner/drb_command_line.rb +26 -0
  634. data/vendor/rspec/lib/spec/runner/example_group_runner.rb +59 -0
  635. data/vendor/rspec/lib/spec/runner/extensions/kernel.rb +9 -0
  636. data/vendor/rspec/lib/spec/runner/formatter/base_formatter.rb +139 -0
  637. data/vendor/rspec/lib/spec/runner/formatter/base_text_formatter.rb +142 -0
  638. data/vendor/rspec/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
  639. data/vendor/rspec/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
  640. data/vendor/rspec/lib/spec/runner/formatter/html_formatter.rb +338 -0
  641. data/vendor/rspec/lib/spec/runner/formatter/nested_text_formatter.rb +47 -0
  642. data/vendor/rspec/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
  643. data/vendor/rspec/lib/spec/runner/formatter/profile_formatter.rb +47 -0
  644. data/vendor/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb +33 -0
  645. data/vendor/rspec/lib/spec/runner/formatter/silent_formatter.rb +10 -0
  646. data/vendor/rspec/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  647. data/vendor/rspec/lib/spec/runner/formatter/specdoc_formatter.rb +33 -0
  648. data/vendor/rspec/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  649. data/vendor/rspec/lib/spec/runner/heckle_runner.rb +72 -0
  650. data/vendor/rspec/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  651. data/vendor/rspec/lib/spec/runner/line_number_query.rb +78 -0
  652. data/vendor/rspec/lib/spec/runner/option_parser.rb +223 -0
  653. data/vendor/rspec/lib/spec/runner/options.rb +400 -0
  654. data/vendor/rspec/lib/spec/runner/reporter.rb +171 -0
  655. data/vendor/rspec/lib/spec/runner.rb +66 -0
  656. data/vendor/rspec/lib/spec/stubs/cucumber.rb +5 -0
  657. data/vendor/rspec/lib/spec/test/unit.rb +10 -0
  658. data/vendor/rspec/lib/spec/version.rb +14 -0
  659. data/vendor/rspec/lib/spec.rb +8 -0
  660. data/vendor/rspec/resources/helpers/cmdline.rb +8 -0
  661. data/vendor/rspec/resources/rake/examples.rake +7 -0
  662. data/vendor/rspec/resources/rake/examples_with_rcov.rake +9 -0
  663. data/vendor/rspec/resources/rake/failing_examples_with_html.rake +9 -0
  664. data/vendor/rspec/resources/rake/verify_rcov.rake +7 -0
  665. data/vendor/rspec/spec/README.jruby +15 -0
  666. data/vendor/rspec/spec/autotest/autotest_helper.rb +8 -0
  667. data/vendor/rspec/spec/autotest/autotest_matchers.rb +38 -0
  668. data/vendor/rspec/spec/autotest/discover_spec.rb +8 -0
  669. data/vendor/rspec/spec/autotest/failed_results_re_spec.rb +31 -0
  670. data/vendor/rspec/spec/autotest/rspec_spec.rb +126 -0
  671. data/vendor/rspec/spec/ruby_forker.rb +13 -0
  672. data/vendor/rspec/spec/spec/dsl/main_spec.rb +95 -0
  673. data/vendor/rspec/spec/spec/example/example_group_class_definition_spec.rb +51 -0
  674. data/vendor/rspec/spec/spec/example/example_group_factory_spec.rb +180 -0
  675. data/vendor/rspec/spec/spec/example/example_group_methods_spec.rb +759 -0
  676. data/vendor/rspec/spec/spec/example/example_group_proxy_spec.rb +107 -0
  677. data/vendor/rspec/spec/spec/example/example_group_spec.rb +643 -0
  678. data/vendor/rspec/spec/spec/example/example_matcher_spec.rb +86 -0
  679. data/vendor/rspec/spec/spec/example/example_methods_spec.rb +162 -0
  680. data/vendor/rspec/spec/spec/example/example_proxy_spec.rb +57 -0
  681. data/vendor/rspec/spec/spec/example/helper_method_spec.rb +24 -0
  682. data/vendor/rspec/spec/spec/example/nested_example_group_spec.rb +71 -0
  683. data/vendor/rspec/spec/spec/example/pending_module_spec.rb +58 -0
  684. data/vendor/rspec/spec/spec/example/predicate_matcher_spec.rb +41 -0
  685. data/vendor/rspec/spec/spec/example/shared_example_group_spec.rb +257 -0
  686. data/vendor/rspec/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  687. data/vendor/rspec/spec/spec/example/subject_spec.rb +103 -0
  688. data/vendor/rspec/spec/spec/expectations/differs/default_spec.rb +194 -0
  689. data/vendor/rspec/spec/spec/expectations/extensions/kernel_spec.rb +45 -0
  690. data/vendor/rspec/spec/spec/expectations/fail_with_spec.rb +96 -0
  691. data/vendor/rspec/spec/spec/expectations/handler_spec.rb +206 -0
  692. data/vendor/rspec/spec/spec/expectations/wrap_expectation_spec.rb +30 -0
  693. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  694. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  695. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  696. data/vendor/rspec/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  697. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  698. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  699. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  700. data/vendor/rspec/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
  701. data/vendor/rspec/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  702. data/vendor/rspec/spec/spec/interop/test/unit/spec_spec.rb +48 -0
  703. data/vendor/rspec/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
  704. data/vendor/rspec/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
  705. data/vendor/rspec/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  706. data/vendor/rspec/spec/spec/matchers/be_close_spec.rb +50 -0
  707. data/vendor/rspec/spec/spec/matchers/be_instance_of_spec.rb +36 -0
  708. data/vendor/rspec/spec/spec/matchers/be_kind_of_spec.rb +33 -0
  709. data/vendor/rspec/spec/spec/matchers/be_spec.rb +419 -0
  710. data/vendor/rspec/spec/spec/matchers/change_spec.rb +349 -0
  711. data/vendor/rspec/spec/spec/matchers/compatibility_spec.rb +28 -0
  712. data/vendor/rspec/spec/spec/matchers/description_generation_spec.rb +160 -0
  713. data/vendor/rspec/spec/spec/matchers/dsl_spec.rb +34 -0
  714. data/vendor/rspec/spec/spec/matchers/eql_spec.rb +33 -0
  715. data/vendor/rspec/spec/spec/matchers/equal_spec.rb +57 -0
  716. data/vendor/rspec/spec/spec/matchers/exist_spec.rb +65 -0
  717. data/vendor/rspec/spec/spec/matchers/has_spec.rb +190 -0
  718. data/vendor/rspec/spec/spec/matchers/have_spec.rb +396 -0
  719. data/vendor/rspec/spec/spec/matchers/include_spec.rb +88 -0
  720. data/vendor/rspec/spec/spec/matchers/match_array_spec.rb +108 -0
  721. data/vendor/rspec/spec/spec/matchers/match_spec.rb +57 -0
  722. data/vendor/rspec/spec/spec/matchers/matcher_methods_spec.rb +63 -0
  723. data/vendor/rspec/spec/spec/matchers/matcher_spec.rb +273 -0
  724. data/vendor/rspec/spec/spec/matchers/matchers_spec.rb +2 -0
  725. data/vendor/rspec/spec/spec/matchers/operator_matcher_spec.rb +191 -0
  726. data/vendor/rspec/spec/spec/matchers/raise_error_spec.rb +333 -0
  727. data/vendor/rspec/spec/spec/matchers/respond_to_spec.rb +116 -0
  728. data/vendor/rspec/spec/spec/matchers/satisfy_spec.rb +36 -0
  729. data/vendor/rspec/spec/spec/matchers/simple_matcher_spec.rb +93 -0
  730. data/vendor/rspec/spec/spec/matchers/throw_symbol_spec.rb +96 -0
  731. data/vendor/rspec/spec/spec/mocks/and_yield_spec.rb +117 -0
  732. data/vendor/rspec/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
  733. data/vendor/rspec/spec/spec/mocks/argument_expectation_spec.rb +23 -0
  734. data/vendor/rspec/spec/spec/mocks/argument_matchers_spec.rb +19 -0
  735. data/vendor/rspec/spec/spec/mocks/at_least_spec.rb +97 -0
  736. data/vendor/rspec/spec/spec/mocks/at_most_spec.rb +93 -0
  737. data/vendor/rspec/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  738. data/vendor/rspec/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
  739. data/vendor/rspec/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
  740. data/vendor/rspec/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  741. data/vendor/rspec/spec/spec/mocks/bug_report_496_spec.rb +19 -0
  742. data/vendor/rspec/spec/spec/mocks/bug_report_600_spec.rb +22 -0
  743. data/vendor/rspec/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  744. data/vendor/rspec/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  745. data/vendor/rspec/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  746. data/vendor/rspec/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  747. data/vendor/rspec/spec/spec/mocks/bug_report_830_spec.rb +21 -0
  748. data/vendor/rspec/spec/spec/mocks/double_spec.rb +12 -0
  749. data/vendor/rspec/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
  750. data/vendor/rspec/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
  751. data/vendor/rspec/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
  752. data/vendor/rspec/spec/spec/mocks/mock_ordering_spec.rb +94 -0
  753. data/vendor/rspec/spec/spec/mocks/mock_space_spec.rb +54 -0
  754. data/vendor/rspec/spec/spec/mocks/mock_spec.rb +594 -0
  755. data/vendor/rspec/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  756. data/vendor/rspec/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  757. data/vendor/rspec/spec/spec/mocks/null_object_mock_spec.rb +54 -0
  758. data/vendor/rspec/spec/spec/mocks/once_counts_spec.rb +53 -0
  759. data/vendor/rspec/spec/spec/mocks/options_hash_spec.rb +35 -0
  760. data/vendor/rspec/spec/spec/mocks/partial_mock_spec.rb +164 -0
  761. data/vendor/rspec/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  762. data/vendor/rspec/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
  763. data/vendor/rspec/spec/spec/mocks/precise_counts_spec.rb +52 -0
  764. data/vendor/rspec/spec/spec/mocks/record_messages_spec.rb +26 -0
  765. data/vendor/rspec/spec/spec/mocks/stub_chain_spec.rb +42 -0
  766. data/vendor/rspec/spec/spec/mocks/stub_implementation_spec.rb +31 -0
  767. data/vendor/rspec/spec/spec/mocks/stub_spec.rb +203 -0
  768. data/vendor/rspec/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
  769. data/vendor/rspec/spec/spec/mocks/twice_counts_spec.rb +67 -0
  770. data/vendor/rspec/spec/spec/mocks/unstub_spec.rb +127 -0
  771. data/vendor/rspec/spec/spec/package/bin_spec_spec.rb +16 -0
  772. data/vendor/rspec/spec/spec/rake/spectask_spec.rb +150 -0
  773. data/vendor/rspec/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  774. data/vendor/rspec/spec/spec/runner/command_line_spec.rb +141 -0
  775. data/vendor/rspec/spec/spec/runner/configuration_spec.rb +320 -0
  776. data/vendor/rspec/spec/spec/runner/drb_command_line_spec.rb +107 -0
  777. data/vendor/rspec/spec/spec/runner/empty_file.txt +0 -0
  778. data/vendor/rspec/spec/spec/runner/example_group_runner_spec.rb +26 -0
  779. data/vendor/rspec/spec/spec/runner/examples.txt +2 -0
  780. data/vendor/rspec/spec/spec/runner/failed.txt +3 -0
  781. data/vendor/rspec/spec/spec/runner/formatter/base_formatter_spec.rb +30 -0
  782. data/vendor/rspec/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
  783. data/vendor/rspec/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
  784. data/vendor/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
  785. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
  786. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
  787. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
  788. data/vendor/rspec/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
  789. data/vendor/rspec/spec/spec/runner/formatter/html_formatter_spec.rb +118 -0
  790. data/vendor/rspec/spec/spec/runner/formatter/nested_text_formatter_spec.rb +305 -0
  791. data/vendor/rspec/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
  792. data/vendor/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +149 -0
  793. data/vendor/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
  794. data/vendor/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
  795. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
  796. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
  797. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
  798. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
  799. data/vendor/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
  800. data/vendor/rspec/spec/spec/runner/heckle_runner_spec.rb +78 -0
  801. data/vendor/rspec/spec/spec/runner/heckler_spec.rb +20 -0
  802. data/vendor/rspec/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
  803. data/vendor/rspec/spec/spec/runner/line_number_query_spec.rb +129 -0
  804. data/vendor/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +51 -0
  805. data/vendor/rspec/spec/spec/runner/option_parser_spec.rb +545 -0
  806. data/vendor/rspec/spec/spec/runner/options_spec.rb +547 -0
  807. data/vendor/rspec/spec/spec/runner/output_one_time_fixture.rb +7 -0
  808. data/vendor/rspec/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
  809. data/vendor/rspec/spec/spec/runner/output_one_time_spec.rb +15 -0
  810. data/vendor/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +123 -0
  811. data/vendor/rspec/spec/spec/runner/reporter_spec.rb +244 -0
  812. data/vendor/rspec/spec/spec/runner/resources/a_bar.rb +0 -0
  813. data/vendor/rspec/spec/spec/runner/resources/a_foo.rb +0 -0
  814. data/vendor/rspec/spec/spec/runner/resources/a_spec.rb +1 -0
  815. data/vendor/rspec/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
  816. data/vendor/rspec/spec/spec/runner/resources/utf8_encoded.rb +8 -0
  817. data/vendor/rspec/spec/spec/runner/spec.opts +2 -0
  818. data/vendor/rspec/spec/spec/runner/spec_drb.opts +2 -0
  819. data/vendor/rspec/spec/spec/runner/spec_spaced.opts +2 -0
  820. data/vendor/rspec/spec/spec/runner_spec.rb +13 -0
  821. data/vendor/rspec/spec/spec.opts +6 -0
  822. data/vendor/rspec/spec/spec_helper.rb +112 -0
  823. data/vendor/rspec/spec/support/macros.rb +29 -0
  824. data/vendor/rspec/spec/support/spec_classes.rb +133 -0
  825. data/vendor/rubyexts/CHANGELOG +2 -0
  826. data/vendor/rubyexts/LICENSE +20 -0
  827. data/vendor/rubyexts/README.textile +0 -0
  828. data/vendor/rubyexts/Rakefile +62 -0
  829. data/vendor/rubyexts/TODO.txt +6 -0
  830. data/vendor/rubyexts/lib/rubyexts/array.rb +20 -0
  831. data/vendor/rubyexts/lib/rubyexts/attribute.rb +150 -0
  832. data/vendor/rubyexts/lib/rubyexts/capture_io.rb +32 -0
  833. data/vendor/rubyexts/lib/rubyexts/class.rb +177 -0
  834. data/vendor/rubyexts/lib/rubyexts/colored_string.rb +103 -0
  835. data/vendor/rubyexts/lib/rubyexts/enumerable.rb +30 -0
  836. data/vendor/rubyexts/lib/rubyexts/file.rb +84 -0
  837. data/vendor/rubyexts/lib/rubyexts/hash.rb +147 -0
  838. data/vendor/rubyexts/lib/rubyexts/kernel.rb +91 -0
  839. data/vendor/rubyexts/lib/rubyexts/module.rb +53 -0
  840. data/vendor/rubyexts/lib/rubyexts/object.rb +56 -0
  841. data/vendor/rubyexts/lib/rubyexts/object_space.rb +16 -0
  842. data/vendor/rubyexts/lib/rubyexts/os.rb +89 -0
  843. data/vendor/rubyexts/lib/rubyexts/platform.rb +27 -0
  844. data/vendor/rubyexts/lib/rubyexts/random.rb +25 -0
  845. data/vendor/rubyexts/lib/rubyexts/string.rb +92 -0
  846. data/vendor/rubyexts/lib/rubyexts/time.rb +15 -0
  847. data/vendor/rubyexts/lib/rubyexts/time_dsl.rb +62 -0
  848. data/vendor/rubyexts/lib/rubyexts/unique_array.rb +16 -0
  849. data/vendor/rubyexts/lib/rubyexts.rb +102 -0
  850. data/vendor/rubyexts/rubyexts.gemspec +36 -0
  851. data/vendor/rubyexts/script/spec +12 -0
  852. data/vendor/rubyexts/spec/rubyexts/array_spec.rb +19 -0
  853. data/vendor/rubyexts/spec/rubyexts/attribute_spec.rb +37 -0
  854. data/vendor/rubyexts/spec/rubyexts/class_spec.rb +1 -0
  855. data/vendor/rubyexts/spec/rubyexts/cli_spec.rb +0 -0
  856. data/vendor/rubyexts/spec/rubyexts/colored_string_spec.rb +9 -0
  857. data/vendor/rubyexts/spec/rubyexts/enumerable_spec.rb +52 -0
  858. data/vendor/rubyexts/spec/rubyexts/file_spec.rb +78 -0
  859. data/vendor/rubyexts/spec/rubyexts/hash_spec.rb +91 -0
  860. data/vendor/rubyexts/spec/rubyexts/kernel_spec.rb +9 -0
  861. data/vendor/rubyexts/spec/rubyexts/module_spec.rb +0 -0
  862. data/vendor/rubyexts/spec/rubyexts/object_space_spec.rb +17 -0
  863. data/vendor/rubyexts/spec/rubyexts/object_spec.rb +57 -0
  864. data/vendor/rubyexts/spec/rubyexts/os_spec.rb +121 -0
  865. data/vendor/rubyexts/spec/rubyexts/platform_spec.rb +0 -0
  866. data/vendor/rubyexts/spec/rubyexts/random_spec.rb +31 -0
  867. data/vendor/rubyexts/spec/rubyexts/string_spec.rb +23 -0
  868. data/vendor/rubyexts/spec/rubyexts/time_dsl_spec.rb +88 -0
  869. data/vendor/rubyexts/spec/rubyexts/time_spec.rb +11 -0
  870. data/vendor/rubyexts/spec/rubyexts/unique_array_spec.rb +0 -0
  871. data/vendor/rubyexts/spec/rubyexts_spec.rb +182 -0
  872. data/vendor/rubyexts/spec/spec.opts +5 -0
  873. data/vendor/rubyexts/spec/spec_helper.rb +16 -0
  874. metadata +955 -0
@@ -0,0 +1,20 @@
1
+ # encoding: utf-8
2
+
3
+ class Array
4
+ # Returns the _only_ element in the array or raise
5
+ # +IndexError+ if array hasn't exactly one element.
6
+ #
7
+ # @author Botanicus
8
+ # @from Extensions
9
+ # @since 0.0.3
10
+ # @raise [IndexError] If array hasn't exactly one element
11
+ # @return [Object] First (and only) item of the array
12
+ # @example
13
+ # [5].only # => 5
14
+ # [1, 2, 3].only # => IndexError
15
+ # [].only # => IndexError
16
+ def only
17
+ raise IndexError, "Array#only called on non-single-element array" unless self.size == 1
18
+ self.first
19
+ end
20
+ end
@@ -0,0 +1,150 @@
1
+ # encoding: utf-8
2
+
3
+ # TODO: refactor similar as attr_accessor_with_default from active support
4
+ # see http://noobkit.com/show/ruby/rails/rails-stable/activesupport/module/attr_accessor_with_default.html
5
+
6
+ # default value for attr
7
+ module AttributeMixin
8
+ # class Array
9
+ # private_alias :join
10
+ # def join(char)
11
+ # puts "New join!"
12
+ # __join__(char)
13
+ # end
14
+ # end
15
+ def private_alias(method)
16
+ alias_method "__#{method}__", method
17
+ private "__#{method}__"
18
+ end
19
+
20
+ # @since 0.0.1
21
+ # @example
22
+ # class Post
23
+ # attribute :title, "Rango rulez!"
24
+ # end
25
+ # Post.new.title
26
+ # # => "Rango rulez!"
27
+ # @param [Symbol] name Name of object variable which will be set. If you have <tt>attribute :title</tt>, then the +@title+ variable will be defined. It also create +#title+ and +#title=+ accessors.
28
+ # @param [Object, @optional] default_value Default value of the variable.
29
+ # @return [name] Returns given default value or if default value.
30
+ # @see #hattribute
31
+ def attribute(name, default_value = nil)
32
+ # define reader method
33
+ define_method(name) do
34
+ if instance_variable_get("@#{name}").nil?
35
+ # lazy loading
36
+ # TODO: why is it lazy loaded?
37
+ default_value = default_value.call if default_value.is_a?(Proc)
38
+ instance_variable_set("@#{name}", default_value.try_dup) # dup is terribly important, otherwise all the objects will points to one object. If it is for example array, all of the objects will push into one array.
39
+ end
40
+ instance_variable_get("@#{name}")
41
+ end
42
+
43
+ # define writer method
44
+ define_method("#{name}=") do |value|
45
+ instance_variable_set("@#{name}", value)
46
+ # TODO: here should be rewritten the reader for cases when user want to do foo.bar = nil because now it will still returns the default value
47
+ end
48
+
49
+ return default_value
50
+ end
51
+
52
+ # This will also define title and title= methods, but it doesn't define @title variable,
53
+ # but @__hattributes__ hash with all the attributes
54
+
55
+ # @since 0.0.1
56
+ # @example
57
+ # class Post
58
+ # hattribute :title, "Rango rulez!"
59
+ # end
60
+ # Post.new.title
61
+ # # => "Rango rulez!"
62
+ # @param [Symbol] name Name of attribute his accessor methods will be defined. It's similar as +#attribute+, but it doesn't define +@name+ variable, but it will be key in +@__hattributes__+ hash. It's useful when you don't like to mess the object namespace with many variables or if you like to separate the attributes from the instance variables.
63
+ # @param [Object, @optional] default_value Default value of the variable.
64
+ # @return [name] Returns given default value or if default value.
65
+ # @see #attribute
66
+ def default_hattribute_names
67
+ # this can't be hash because in case the value will be lambda, we can't call it,
68
+ # because lambda is evaluated in scope of instance
69
+ @default_hattribute_names ||= Array.new
70
+ end
71
+
72
+ def hattribute(name, default_value = nil)
73
+ self.default_hattribute_names.push(name)
74
+
75
+ define_method(:hattributes) do
76
+ @__hattributes__ ||= Hash.new
77
+ # this is importat for initialization @__hattributes__
78
+ self.class.default_hattribute_names.each do |hattribute|
79
+ self.send(hattribute)
80
+ end
81
+ return @__hattributes__
82
+ end
83
+
84
+ # define reader method
85
+ if default_value.is_a?(Proc)
86
+ define_method(name) do
87
+ properties = instance_variable_get("@__hattributes__") || Hash.new
88
+ if properties[name].nil?
89
+ # instance_variable_set("@#{name}", default_value)
90
+ # lazy loading
91
+ properties[name] = self.instance_eval(&default_value)
92
+ end
93
+ # instance_variable_get("@#{name}")
94
+ properties[name]
95
+ end
96
+ else
97
+ define_method(name) do
98
+ properties = instance_variable_get("@__hattributes__") || Hash.new
99
+ # properties = @__hattributes__
100
+ if properties[name].nil?
101
+ # instance_variable_set("@#{name}", default_value)
102
+ # lazy loading
103
+ properties[name] = default_value.try_dup
104
+ end
105
+ # instance_variable_get("@#{name}")
106
+ properties[name]
107
+ end
108
+ end
109
+
110
+ # define writer method
111
+ define_method("#{name}=") do |value|
112
+ instance_variable_set("@__hattributes__", Hash.new) unless instance_variable_get("@__hattributes__")
113
+ instance_variable_get("@__hattributes__")[name] = value
114
+ end
115
+
116
+ return default_value
117
+ end
118
+
119
+ # class << self.class
120
+ # def hattributes
121
+ # raise "Y"
122
+ # end
123
+ # end
124
+
125
+ # class Post
126
+ # questionable :updated, true
127
+ # end
128
+ # Post.new.updated?
129
+ # # => true
130
+ # @since 0.0.2
131
+ def questionable(name, default_value)
132
+ define_method("#{name}?") do
133
+ unless self.instance_variables.include?(name.to_sym)
134
+ self.instance_variable_set("@#{name}", default_value)
135
+ end
136
+ self.instance_variable_get("@#{name}")
137
+ end
138
+ end
139
+ end
140
+
141
+ Class.send(:include, AttributeMixin)
142
+ Module.send(:include, AttributeMixin)
143
+
144
+ # class Test
145
+ # hattribute :bar, -> { "value" }
146
+ # end
147
+ #
148
+ # t = Test.new
149
+ # p t.bar
150
+ # p t.hattributes
@@ -0,0 +1,32 @@
1
+ require "stringio"
2
+
3
+ def STDOUT.capture(&block)
4
+ before = self
5
+ $stdout = StringIO.new
6
+ block.call
7
+ $stdout.rewind
8
+ output = $stdout.read
9
+ $stdout = before
10
+ output
11
+ end
12
+
13
+ # @example STDOUT.capture { puts "hi" }
14
+ # # => "hi"
15
+ def STDERR.capture(&block)
16
+ before = self
17
+ $stderr = StringIO.new
18
+ block.call
19
+ $stderr.rewind
20
+ output = $stderr.read
21
+ $stderr = before
22
+ output
23
+ end
24
+
25
+ # @example STDIN.capture("yes") { ask("Do you hear me?") }
26
+ # # => "yes"
27
+ def STDIN.capture(default, &block)
28
+ STDIN.reopen "/dev/null" # so we don't get the fucking prompt
29
+ STDIN.ungetbyte(default) # so the default value can be get by STDIN.getc & similar methods
30
+ block.call
31
+ # TODO: how I can get back the original STDIN?
32
+ end
@@ -0,0 +1,177 @@
1
+ # Copyright (c) 2004-2008 David Heinemeier Hansson
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining
4
+ # a copy of this software and associated documentation files (the
5
+ # "Software"), to deal in the Software without restriction, including
6
+ # without limitation the rights to use, copy, modify, merge, publish,
7
+ # distribute, sublicense, and/or sell copies of the Software, and to
8
+ # permit persons to whom the Software is furnished to do so, subject to
9
+ # the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be
12
+ # included in all copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
22
+ # Allows attributes to be shared within an inheritance hierarchy, but where
23
+ # each descendant gets a copy of their parents' attributes, instead of just a
24
+ # pointer to the same. This means that the child can add elements to, for
25
+ # example, an array without those additions being shared with either their
26
+ # parent, siblings, or children, which is unlike the regular class-level
27
+ # attributes that are shared across the entire hierarchy.
28
+ class Class
29
+ # Defines class-level and instance-level attribute reader.
30
+ #
31
+ # @param *syms<Array> Array of attributes to define reader for.
32
+ # @return <Array[#to_s]> List of attributes that were made into cattr_readers
33
+ #
34
+ # @api public
35
+ #
36
+ # @todo Is this inconsistent in that it does not allow you to prevent
37
+ # an instance_reader via :instance_reader => false
38
+ def cattr_reader(*syms)
39
+ syms.flatten.each do |sym|
40
+ next if sym.is_a?(Hash)
41
+ class_eval(<<-RUBY, __FILE__, __LINE__ + 1)
42
+ unless defined? @@#{sym}
43
+ @@#{sym} = nil
44
+ end
45
+
46
+ def self.#{sym}
47
+ @@#{sym}
48
+ end
49
+
50
+ def #{sym}
51
+ @@#{sym}
52
+ end
53
+ RUBY
54
+ end
55
+ end
56
+
57
+ # Defines class-level (and optionally instance-level) attribute writer.
58
+ #
59
+ # @param <Array[*#to_s, Hash{:instance_writer => Boolean}]> Array of attributes to define writer for.
60
+ # @option syms :instance_writer<Boolean> if true, instance-level attribute writer is defined.
61
+ # @return <Array[#to_s]> List of attributes that were made into cattr_writers
62
+ #
63
+ # @api public
64
+ def cattr_writer(*syms)
65
+ options = syms.last.is_a?(Hash) ? syms.pop : {}
66
+ syms.flatten.each do |sym|
67
+ class_eval(<<-RUBY, __FILE__, __LINE__ + 1)
68
+ unless defined? @@#{sym}
69
+ @@#{sym} = nil
70
+ end
71
+
72
+ def self.#{sym}=(obj)
73
+ @@#{sym} = obj
74
+ end
75
+ RUBY
76
+
77
+ unless options[:instance_writer] == false
78
+ class_eval(<<-RUBY, __FILE__, __LINE__ + 1)
79
+ def #{sym}=(obj)
80
+ @@#{sym} = obj
81
+ end
82
+ RUBY
83
+ end
84
+ end
85
+ end
86
+
87
+ # Defines class-level (and optionally instance-level) attribute accessor.
88
+ #
89
+ # @param *syms<Array[*#to_s, Hash{:instance_writer => Boolean}]> Array of attributes to define accessor for.
90
+ # @option syms :instance_writer<Boolean> if true, instance-level attribute writer is defined.
91
+ # @return <Array[#to_s]> List of attributes that were made into accessors
92
+ #
93
+ # @api public
94
+ def cattr_accessor(*syms)
95
+ cattr_reader(*syms)
96
+ cattr_writer(*syms)
97
+ end
98
+
99
+ # Defines class-level inheritable attribute reader. Attributes are available to subclasses,
100
+ # each subclass has a copy of parent's attribute.
101
+ #
102
+ # @param *syms<Array[#to_s]> Array of attributes to define inheritable reader for.
103
+ # @return <Array[#to_s]> Array of attributes converted into inheritable_readers.
104
+ #
105
+ # @api public
106
+ #
107
+ # @todo Do we want to block instance_reader via :instance_reader => false
108
+ # @todo It would be preferable that we do something with a Hash passed in
109
+ # (error out or do the same as other methods above) instead of silently
110
+ # moving on). In particular, this makes the return value of this function
111
+ # less useful.
112
+ def class_inheritable_reader(*ivars)
113
+ instance_reader = ivars.pop[:reader] if ivars.last.is_a?(Hash)
114
+
115
+ ivars.each do |ivar|
116
+ self.class_eval <<-RUBY, __FILE__, __LINE__ + 1
117
+ def self.#{ivar}
118
+ return @#{ivar} if defined?(@#{ivar})
119
+ return nil if self.object_id == #{self.object_id}
120
+ ivar = superclass.#{ivar}
121
+ return nil if ivar.nil?
122
+ @#{ivar} = ivar.try_dup
123
+ end
124
+ RUBY
125
+
126
+ unless instance_reader == false
127
+ self.class_eval <<-RUBY, __FILE__, __LINE__ + 1
128
+ def #{ivar}
129
+ self.class.#{ivar}
130
+ end
131
+ RUBY
132
+ end
133
+ end
134
+ end
135
+
136
+ # Defines class-level inheritable attribute writer. Attributes are available to subclasses,
137
+ # each subclass has a copy of parent's attribute.
138
+ #
139
+ # @param *syms<Array[*#to_s, Hash{:instance_writer => Boolean}]> Array of attributes to
140
+ # define inheritable writer for.
141
+ # @option syms :instance_writer<Boolean> if true, instance-level inheritable attribute writer is defined.
142
+ # @return <Array[#to_s]> An Array of the attributes that were made into inheritable writers.
143
+ #
144
+ # @api public
145
+ #
146
+ # @todo We need a style for class_eval <<-HEREDOC. I'd like to make it
147
+ # class_eval(<<-RUBY, __FILE__, __LINE__), but we should codify it somewhere.
148
+ def class_inheritable_writer(*ivars)
149
+ instance_writer = ivars.pop[:instance_writer] if ivars.last.is_a?(Hash)
150
+ ivars.each do |ivar|
151
+ self.class_eval <<-RUBY, __FILE__, __LINE__ + 1
152
+ def self.#{ivar}=(obj)
153
+ @#{ivar} = obj
154
+ end
155
+ RUBY
156
+ unless instance_writer == false
157
+ self.class_eval <<-RUBY, __FILE__, __LINE__ + 1
158
+ def #{ivar}=(obj) self.class.#{ivar} = obj end
159
+ RUBY
160
+ end
161
+ end
162
+ end
163
+
164
+ # Defines class-level inheritable attribute accessor. Attributes are available to subclasses,
165
+ # each subclass has a copy of parent's attribute.
166
+ #
167
+ # @param *syms<Array[*#to_s, Hash{:instance_writer => Boolean}]> Array of attributes to
168
+ # define inheritable accessor for.
169
+ # @option syms :instance_writer<Boolean> if true, instance-level inheritable attribute writer is defined.
170
+ # @return <Array[#to_s]> An Array of attributes turned into inheritable accessors.
171
+ #
172
+ # @api public
173
+ def class_inheritable_accessor(*syms)
174
+ class_inheritable_reader(*syms)
175
+ class_inheritable_writer(*syms)
176
+ end
177
+ end
@@ -0,0 +1,103 @@
1
+ # encoding: utf-8
2
+
3
+ require_relative "string"
4
+ require_relative "attribute"
5
+
6
+ class ColoredString
7
+ ATTRIBUTES = {
8
+ clear: 0,
9
+ reset: 0, # synonym for :clear
10
+ bold: 1,
11
+ dark: 2,
12
+ italic: 3, # not widely implemented
13
+ underline: 4,
14
+ underscore: 4, # synonym for :underline
15
+ blink: 5,
16
+ rapid_blink: 6, # not widely implemented
17
+ negative: 7, # no reverse because of String#reverse
18
+ concealed: 8,
19
+ strikethrough: 9, # not widely implemented
20
+ black: 30,
21
+ red: 31,
22
+ green: 32,
23
+ yellow: 33,
24
+ blue: 34,
25
+ magenta: 35,
26
+ cyan: 36,
27
+ white: 37,
28
+ on_black: 40,
29
+ on_red: 41,
30
+ on_green: 42,
31
+ on_yellow: 43,
32
+ on_blue: 44,
33
+ on_magenta: 45,
34
+ on_cyan: 46,
35
+ on_white: 47,
36
+ }
37
+
38
+ class << self
39
+ # ColoredString.coloring?
40
+ # Returns true, if the coloring function of this module
41
+ # is switched on, false otherwise.
42
+ #
43
+ # ColoredString.coloring = boolean
44
+ # Turns the coloring on or off globally, so you can easily do
45
+ # this for example:
46
+ # Term::ANSIColor::coloring = STDOUT.isatty
47
+ questionable :coloring, true
48
+
49
+ # <red.bold>Title</red.bold>
50
+ # - u, i/em, b/strong
51
+ def template(string)
52
+ return string # TODO
53
+ end
54
+ end
55
+
56
+ attr_accessor :colors
57
+ def initialize(string = "")
58
+ @string = string
59
+ @colors = Array.new
60
+ end
61
+
62
+ ATTRIBUTES.each do |color, code|
63
+ define_method(color) do
64
+ @colors.push(color)
65
+ self
66
+ end
67
+ end
68
+
69
+ def to_s
70
+ if ! @colors.empty? && self.class.coloring?
71
+ sequences = ""
72
+ @colors.each do |name|
73
+ code = ATTRIBUTES[name]
74
+ sequences << "\e[#{code}m"
75
+ end
76
+ return "#{sequences}#{@string}\e[0m"
77
+ else
78
+ @string
79
+ end
80
+ end
81
+
82
+ def inspect
83
+ "#<ColoredString:#@string>"
84
+ end
85
+
86
+ def raw
87
+ @string
88
+ end
89
+
90
+ def method_missing(method, *args, &block)
91
+ returned = @string.send(method, *args, &block)
92
+ # Bang methods like upcase!
93
+ if returned.is_a?(String) and @string.equal?(returned) # same object
94
+ @string.replace(returned)
95
+ return self
96
+ # upcase
97
+ elsif returned.is_a?(String) and not @string.equal?(returned) # different object
98
+ return self.class.new(returned)
99
+ else # not string, String#split etc
100
+ return returned
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,30 @@
1
+ # encoding: utf-8
2
+
3
+ module Enumerable
4
+ # Enumerable#none? is the logical opposite of the builtin method Enumerable#any?. It
5
+ # returns +true+ if and only if _none_ of the elements in the collection satisfy the
6
+ # predicate.
7
+ #
8
+ # If no predicate is provided, Enumerable#none? returns +true+ if and only if _none_ of the
9
+ # elements have a true value (i.e. not +nil+ or +false+).
10
+ #
11
+ # @author Botanicus
12
+ # @from Extensions
13
+ # @since 0.0.3
14
+ # @yield [block] Block which will be evaluated in Project.setttings object.
15
+ # @yieldparam [item] Each item of array-like collection
16
+ # @yieldparam [key, value] Each item of hash-like collection
17
+ # @option params [String, Array<String>] :exclude File or list of files or globs relative to base directory
18
+ # @raise [LoadError] If base directory doesn't exist
19
+ # @raise [ArgumentError] If first argument isn't a glob
20
+ # @return [Array<String>] List of successfully loaded files
21
+ # @example
22
+ # [].none? # => true
23
+ # [nil].none? # => true
24
+ # [5,8,9].none? # => false
25
+ # (1...10).none? { |n| n < 0 } # => true
26
+ # (1...10).none? { |n| n > 0 } # => false
27
+ def none?(&block)
28
+ not self.any?(&block)
29
+ end
30
+ end
@@ -0,0 +1,84 @@
1
+ # encoding: utf-8
2
+
3
+ class File
4
+ # Append given chunks to the existing file or create new one.
5
+ # It use <tt>IO#puts</tt> for write to given file.
6
+ #
7
+ # @author Botanicus
8
+ # @since 0.0.3
9
+ # @param [String] file Path to file. You can use <tt>~</tt>, <tt>~user</tt> or similar expressions.
10
+ # @param [String, Object] *chunks Chunks which will be written to the file
11
+ # @raise [Errno::ENOENT] If parent directory of given file doesn't exist
12
+ # @raise [Errno::EACCES] If you don't have permissions to write to given file
13
+ # @return [String] Expanded path to given file
14
+ # @example
15
+ # File.append "~/.bashrc", source # => "/Users/botanicus/.bashrc"
16
+ def self.append(file, *chunks)
17
+ self.write(:puts, "a", file, *chunks)
18
+ end
19
+
20
+ # Append given chunks to the existing file or create new one.
21
+ # It use <tt>IO#print</tt> for write to given file.
22
+ #
23
+ # @author Botanicus
24
+ # @since 0.0.3
25
+ # @param [String] file Path to file. You can use <tt>~</tt>, <tt>~user</tt> or similar expressions.
26
+ # @param [String, Object] *chunks Chunks which will be written to the file
27
+ # @raise [Errno::ENOENT] If parent directory of given file doesn't exist
28
+ # @raise [Errno::EACCES] If you don't have permissions to write to given file
29
+ # @return [String] Expanded path to given file
30
+ # @example
31
+ # File.append "~/.bashrc", source # => "/Users/botanicus/.bashrc"
32
+ def self.add(file, *chunks)
33
+ self.write(:print, "a", file, *chunks)
34
+ end
35
+
36
+ # Create new file and write there given chunks.
37
+ # It use <tt>IO#puts</tt> for write to given file.
38
+ #
39
+ # @author Botanicus
40
+ # @since 0.0.3
41
+ # @param [String] file Path to file. You can use <tt>~</tt>, <tt>~user</tt> or similar expressions.
42
+ # @param [String, Object] *chunks Chunks which will be written to the file
43
+ # @raise [Errno::ENOENT] If parent directory of given file doesn't exist
44
+ # @raise [Errno::EACCES] If you don't have permissions to write to given file
45
+ # @return [String] Expanded path to given file
46
+ # @example
47
+ # File.puts "~/.bashrc", source # => "/Users/botanicus/.bashrc"
48
+ def self.puts(file, *chunks)
49
+ self.write(:puts, "w", file, *chunks)
50
+ end
51
+
52
+ # Create new file and write there given chunks.
53
+ # It use <tt>IO#print</tt> for write to given file.
54
+ #
55
+ # @author Botanicus
56
+ # @since 0.0.3
57
+ # @param [String] file Path to file. You can use <tt>~</tt>, <tt>~user</tt> or similar expressions.
58
+ # @param [String, Object] *chunks Chunks which will be written to the file
59
+ # @raise [Errno::ENOENT] If parent directory of given file doesn't exist
60
+ # @raise [Errno::EACCES] If you don't have permissions to write to given file
61
+ # @return [String] Expanded path to given file
62
+ # @example
63
+ # File.print "~/.bashrc", source # => "/Users/botanicus/.bashrc"
64
+ def self.print(file, *chunks)
65
+ self.write(:print, "w", file, *chunks)
66
+ end
67
+
68
+ # Write data to file with given method.
69
+ #
70
+ # @author Botanicus
71
+ # @since 0.0.3
72
+ # @param [String] file Path to file. You can use <tt>~</tt>, <tt>~user</tt> or similar expressions.
73
+ # @param [String, Object] *chunks Chunks which will be written to the file
74
+ # @raise [Errno::ENOENT] If parent directory of given file doesn't exist
75
+ # @raise [Errno::EACCES] If you don't have permissions to write to given file
76
+ # @return [String] Expanded path to given file
77
+ # @example
78
+ # File.write :printf, "w", "~/.bashrc", "%d %04x", 123, 123 # => "/Users/botanicus/.bashrc"
79
+ def self.write(method, mode, file, *args)
80
+ self.expand_path(file).tap do |path|
81
+ self.open(path, mode) { |file| file.send(method, *args) }
82
+ end
83
+ end
84
+ end