nutshell-crm 0.0.5 → 0.0.6.alpha

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 (260) hide show
  1. data/.rbenv-version +1 -0
  2. data/.travis.yml +8 -0
  3. data/CHANGELOG.md +5 -0
  4. data/README.md +37 -0
  5. data/Rakefile +14 -3
  6. data/lib/nutshell-crm.rb +92 -5
  7. data/lib/nutshell-crm/version.rb +1 -1
  8. data/nutshell-crm.gemspec +1 -0
  9. data/spec/nutshell-crm_spec.rb +17 -8
  10. data/vendor/bundle/bin/rake +19 -0
  11. data/vendor/bundle/gems/json-1.6.4/.gitignore +8 -0
  12. data/vendor/bundle/gems/json-1.6.4/.travis.yml +15 -0
  13. data/vendor/bundle/gems/json-1.6.4/CHANGES +227 -0
  14. data/vendor/bundle/gems/json-1.6.4/COPYING +58 -0
  15. data/vendor/bundle/gems/json-1.6.4/COPYING-json-jruby +57 -0
  16. data/vendor/bundle/gems/json-1.6.4/GPL +340 -0
  17. data/vendor/bundle/gems/json-1.6.4/Gemfile +11 -0
  18. data/vendor/bundle/gems/json-1.6.4/README-json-jruby.markdown +33 -0
  19. data/vendor/bundle/gems/json-1.6.4/README.rdoc +358 -0
  20. data/vendor/bundle/gems/json-1.6.4/Rakefile +408 -0
  21. data/vendor/bundle/gems/json-1.6.4/TODO +1 -0
  22. data/vendor/bundle/gems/json-1.6.4/VERSION +1 -0
  23. data/{README → vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/.keep} +0 -0
  24. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log +52 -0
  25. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat +1000 -0
  26. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat +1001 -0
  27. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat +900 -0
  28. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat +901 -0
  29. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat +1000 -0
  30. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat +1001 -0
  31. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log +261 -0
  32. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat +1000 -0
  33. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat +1001 -0
  34. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat +1000 -0
  35. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat +1001 -0
  36. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat +1000 -0
  37. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat +1001 -0
  38. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log +262 -0
  39. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat +1000 -0
  40. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat +1001 -0
  41. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log +82 -0
  42. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log +34 -0
  43. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat +900 -0
  44. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat +901 -0
  45. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log +81 -0
  46. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat +1000 -0
  47. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat +1001 -0
  48. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log +82 -0
  49. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat +1000 -0
  50. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat +1001 -0
  51. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log +82 -0
  52. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat +1000 -0
  53. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat +1001 -0
  54. data/vendor/bundle/gems/json-1.6.4/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log +82 -0
  55. data/vendor/bundle/gems/json-1.6.4/benchmarks/data/.keep +0 -0
  56. data/vendor/bundle/gems/json-1.6.4/benchmarks/generator2_benchmark.rb +222 -0
  57. data/vendor/bundle/gems/json-1.6.4/benchmarks/generator_benchmark.rb +224 -0
  58. data/vendor/bundle/gems/json-1.6.4/benchmarks/ohai.json +1216 -0
  59. data/vendor/bundle/gems/json-1.6.4/benchmarks/ohai.ruby +1 -0
  60. data/vendor/bundle/gems/json-1.6.4/benchmarks/parser2_benchmark.rb +251 -0
  61. data/vendor/bundle/gems/json-1.6.4/benchmarks/parser_benchmark.rb +259 -0
  62. data/vendor/bundle/gems/json-1.6.4/data/example.json +1 -0
  63. data/vendor/bundle/gems/json-1.6.4/data/index.html +38 -0
  64. data/vendor/bundle/gems/json-1.6.4/data/prototype.js +4184 -0
  65. data/vendor/bundle/gems/json-1.6.4/diagrams/.keep +0 -0
  66. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/fbuffer/fbuffer.h +156 -0
  67. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/generator/Makefile +187 -0
  68. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/generator/extconf.rb +13 -0
  69. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/generator/generator.bundle +0 -0
  70. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/generator/generator.c +1384 -0
  71. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/generator/generator.h +161 -0
  72. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/generator/generator.o +0 -0
  73. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/json/ext/generator.bundle +0 -0
  74. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/json/ext/parser.bundle +0 -0
  75. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/parser/Makefile +187 -0
  76. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/parser/extconf.rb +13 -0
  77. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/parser/parser.bundle +0 -0
  78. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/parser/parser.c +2203 -0
  79. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/parser/parser.h +77 -0
  80. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/parser/parser.o +0 -0
  81. data/vendor/bundle/gems/json-1.6.4/ext/json/ext/parser/parser.rl +926 -0
  82. data/vendor/bundle/gems/json-1.6.4/install.rb +19 -0
  83. data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/ByteListTranscoder.java +167 -0
  84. data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/Generator.java +437 -0
  85. data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/GeneratorMethods.java +232 -0
  86. data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/GeneratorService.java +43 -0
  87. data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/GeneratorState.java +522 -0
  88. data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/OptionsReader.java +113 -0
  89. data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/Parser.java +2640 -0
  90. data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/Parser.rl +964 -0
  91. data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/ParserService.java +35 -0
  92. data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/RuntimeInfo.java +121 -0
  93. data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/StringDecoder.java +166 -0
  94. data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/StringEncoder.java +106 -0
  95. data/vendor/bundle/gems/json-1.6.4/java/src/json/ext/Utils.java +89 -0
  96. data/vendor/bundle/gems/json-1.6.4/json-java.gemspec +22 -0
  97. data/vendor/bundle/gems/json-1.6.4/json.gemspec +40 -0
  98. data/vendor/bundle/gems/json-1.6.4/json_pure.gemspec +42 -0
  99. data/vendor/bundle/gems/json-1.6.4/lib/json.rb +62 -0
  100. data/vendor/bundle/gems/json-1.6.4/lib/json/add/bigdecimal.rb +21 -0
  101. data/vendor/bundle/gems/json-1.6.4/lib/json/add/complex.rb +22 -0
  102. data/vendor/bundle/gems/json-1.6.4/lib/json/add/core.rb +11 -0
  103. data/vendor/bundle/gems/json-1.6.4/lib/json/add/date.rb +34 -0
  104. data/vendor/bundle/gems/json-1.6.4/lib/json/add/date_time.rb +50 -0
  105. data/vendor/bundle/gems/json-1.6.4/lib/json/add/exception.rb +31 -0
  106. data/vendor/bundle/gems/json-1.6.4/lib/json/add/ostruct.rb +31 -0
  107. data/vendor/bundle/gems/json-1.6.4/lib/json/add/range.rb +29 -0
  108. data/vendor/bundle/gems/json-1.6.4/lib/json/add/rational.rb +22 -0
  109. data/vendor/bundle/gems/json-1.6.4/lib/json/add/regexp.rb +30 -0
  110. data/vendor/bundle/gems/json-1.6.4/lib/json/add/struct.rb +30 -0
  111. data/vendor/bundle/gems/json-1.6.4/lib/json/add/symbol.rb +25 -0
  112. data/vendor/bundle/gems/json-1.6.4/lib/json/add/time.rb +35 -0
  113. data/vendor/bundle/gems/json-1.6.4/lib/json/common.rb +470 -0
  114. data/vendor/bundle/gems/json-1.6.4/lib/json/ext.rb +21 -0
  115. data/vendor/bundle/gems/json-1.6.4/lib/json/ext/.keep +0 -0
  116. data/vendor/bundle/gems/json-1.6.4/lib/json/pure.rb +21 -0
  117. data/vendor/bundle/gems/json-1.6.4/lib/json/pure/generator.rb +468 -0
  118. data/vendor/bundle/gems/json-1.6.4/lib/json/pure/parser.rb +359 -0
  119. data/vendor/bundle/gems/json-1.6.4/lib/json/version.rb +8 -0
  120. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail1.json +1 -0
  121. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail10.json +1 -0
  122. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail11.json +1 -0
  123. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail12.json +1 -0
  124. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail13.json +1 -0
  125. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail14.json +1 -0
  126. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail18.json +1 -0
  127. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail19.json +1 -0
  128. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail2.json +1 -0
  129. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail20.json +1 -0
  130. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail21.json +1 -0
  131. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail22.json +1 -0
  132. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail23.json +1 -0
  133. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail24.json +1 -0
  134. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail25.json +1 -0
  135. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail27.json +2 -0
  136. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail28.json +2 -0
  137. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail3.json +1 -0
  138. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail4.json +1 -0
  139. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail5.json +1 -0
  140. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail6.json +1 -0
  141. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail7.json +1 -0
  142. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail8.json +1 -0
  143. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/fail9.json +1 -0
  144. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/pass1.json +56 -0
  145. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/pass15.json +1 -0
  146. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/pass16.json +1 -0
  147. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/pass17.json +1 -0
  148. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/pass2.json +1 -0
  149. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/pass26.json +1 -0
  150. data/vendor/bundle/gems/json-1.6.4/tests/fixtures/pass3.json +6 -0
  151. data/vendor/bundle/gems/json-1.6.4/tests/setup_variant.rb +11 -0
  152. data/vendor/bundle/gems/json-1.6.4/tests/test_json.rb +527 -0
  153. data/vendor/bundle/gems/json-1.6.4/tests/test_json_addition.rb +188 -0
  154. data/vendor/bundle/gems/json-1.6.4/tests/test_json_encoding.rb +65 -0
  155. data/vendor/bundle/gems/json-1.6.4/tests/test_json_fixtures.rb +35 -0
  156. data/vendor/bundle/gems/json-1.6.4/tests/test_json_generate.rb +249 -0
  157. data/vendor/bundle/gems/json-1.6.4/tests/test_json_string_matching.rb +40 -0
  158. data/vendor/bundle/gems/json-1.6.4/tests/test_json_unicode.rb +72 -0
  159. data/vendor/bundle/gems/json-1.6.4/tools/fuzz.rb +139 -0
  160. data/vendor/bundle/gems/json-1.6.4/tools/server.rb +62 -0
  161. data/vendor/bundle/gems/rake-0.9.2.2/.gemtest +0 -0
  162. data/vendor/bundle/gems/rake-0.9.2.2/CHANGES +522 -0
  163. data/vendor/bundle/gems/rake-0.9.2.2/MIT-LICENSE +21 -0
  164. data/vendor/bundle/gems/rake-0.9.2.2/README.rdoc +197 -0
  165. data/vendor/bundle/gems/rake-0.9.2.2/Rakefile +369 -0
  166. data/vendor/bundle/gems/rake-0.9.2.2/TODO +20 -0
  167. data/vendor/bundle/gems/rake-0.9.2.2/bin/rake +33 -0
  168. data/vendor/bundle/gems/rake-0.9.2.2/install.rb +90 -0
  169. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake.rb +69 -0
  170. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/alt_system.rb +109 -0
  171. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/application.rb +595 -0
  172. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/classic_namespace.rb +11 -0
  173. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/clean.rb +32 -0
  174. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/cloneable.rb +25 -0
  175. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/contrib/compositepublisher.rb +21 -0
  176. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/contrib/ftptools.rb +150 -0
  177. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/contrib/publisher.rb +73 -0
  178. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/contrib/rubyforgepublisher.rb +16 -0
  179. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/contrib/sshpublisher.rb +50 -0
  180. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/contrib/sys.rb +191 -0
  181. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/default_loader.rb +10 -0
  182. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/dsl_definition.rb +176 -0
  183. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/early_time.rb +18 -0
  184. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/ext/core.rb +27 -0
  185. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/ext/module.rb +39 -0
  186. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/ext/string.rb +167 -0
  187. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/ext/time.rb +14 -0
  188. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/file_creation_task.rb +24 -0
  189. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/file_list.rb +403 -0
  190. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/file_task.rb +47 -0
  191. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/file_utils.rb +114 -0
  192. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/file_utils_ext.rb +145 -0
  193. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/gempackagetask.rb +15 -0
  194. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/invocation_chain.rb +51 -0
  195. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/invocation_exception_mixin.rb +16 -0
  196. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/loaders/makefile.rb +40 -0
  197. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/multi_task.rb +16 -0
  198. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/name_space.rb +25 -0
  199. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/packagetask.rb +185 -0
  200. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/pathmap.rb +1 -0
  201. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/pseudo_status.rb +24 -0
  202. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/rake_module.rb +29 -0
  203. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb +22 -0
  204. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/rdoctask.rb +234 -0
  205. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/ruby182_test_unit_fix.rb +25 -0
  206. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
  207. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/runtest.rb +21 -0
  208. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/task.rb +327 -0
  209. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/task_argument_error.rb +7 -0
  210. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/task_arguments.rb +78 -0
  211. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/task_manager.rb +307 -0
  212. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/tasklib.rb +22 -0
  213. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/testtask.rb +191 -0
  214. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/version.rb +8 -0
  215. data/vendor/bundle/gems/rake-0.9.2.2/lib/rake/win32.rb +55 -0
  216. data/vendor/bundle/gems/rake-0.9.2.2/test/file_creation.rb +34 -0
  217. data/vendor/bundle/gems/rake-0.9.2.2/test/helper.rb +492 -0
  218. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake.rb +40 -0
  219. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_application.rb +489 -0
  220. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_application_options.rb +335 -0
  221. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_clean.rb +14 -0
  222. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_definitions.rb +80 -0
  223. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_directory_task.rb +46 -0
  224. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_dsl.rb +77 -0
  225. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_early_time.rb +31 -0
  226. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_extension.rb +59 -0
  227. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_file_creation_task.rb +56 -0
  228. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_file_list.rb +628 -0
  229. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_file_list_path_map.rb +8 -0
  230. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_file_task.rb +102 -0
  231. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_file_utils.rb +305 -0
  232. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_ftp_file.rb +59 -0
  233. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_functional.rb +450 -0
  234. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_invocation_chain.rb +52 -0
  235. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_makefile_loader.rb +44 -0
  236. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_multi_task.rb +51 -0
  237. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_name_space.rb +43 -0
  238. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_package_task.rb +79 -0
  239. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_path_map.rb +157 -0
  240. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_path_map_explode.rb +34 -0
  241. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_path_map_partial.rb +18 -0
  242. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_pseudo_status.rb +21 -0
  243. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_rake_test_loader.rb +21 -0
  244. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_rdoc_task.rb +83 -0
  245. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_require.rb +40 -0
  246. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_rules.rb +327 -0
  247. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_task.rb +267 -0
  248. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_task_argument_parsing.rb +103 -0
  249. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_task_arguments.rb +88 -0
  250. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_task_lib.rb +9 -0
  251. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_task_manager.rb +157 -0
  252. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_task_manager_argument_resolution.rb +36 -0
  253. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_task_with_arguments.rb +173 -0
  254. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_test_task.rb +120 -0
  255. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_top_level_functions.rb +111 -0
  256. data/vendor/bundle/gems/rake-0.9.2.2/test/test_rake_win32.rb +72 -0
  257. data/vendor/bundle/gems/rake-0.9.2.2/test/test_sys.rb +20 -0
  258. data/vendor/bundle/specifications/json-1.6.4.gemspec +39 -0
  259. data/vendor/bundle/specifications/rake-0.9.2.2.gemspec +34 -0
  260. metadata +285 -18
@@ -0,0 +1 @@
1
+ require 'rake/ext/string'
@@ -0,0 +1,24 @@
1
+ module Rake
2
+
3
+ ####################################################################
4
+ # Exit status class for times the system just gives us a nil.
5
+ class PseudoStatus
6
+ attr_reader :exitstatus
7
+ def initialize(code=0)
8
+ @exitstatus = code
9
+ end
10
+ def to_i
11
+ @exitstatus << 8
12
+ end
13
+ def >>(n)
14
+ to_i >> n
15
+ end
16
+ def stopped?
17
+ false
18
+ end
19
+ def exited?
20
+ true
21
+ end
22
+ end
23
+
24
+ end
@@ -0,0 +1,29 @@
1
+ require 'rake/application'
2
+
3
+ module Rake
4
+
5
+ # Rake module singleton methods.
6
+ #
7
+ class << self
8
+ # Current Rake Application
9
+ def application
10
+ @application ||= Rake::Application.new
11
+ end
12
+
13
+ # Set the current Rake application object.
14
+ def application=(app)
15
+ @application = app
16
+ end
17
+
18
+ # Return the original directory where the Rake application was started.
19
+ def original_dir
20
+ application.original_dir
21
+ end
22
+
23
+ # Load a rakefile.
24
+ def load_rakefile(path)
25
+ load(path)
26
+ end
27
+ end
28
+
29
+ end
@@ -0,0 +1,22 @@
1
+ require 'rake'
2
+
3
+ # Load the test files from the command line.
4
+ argv = ARGV.select do |argument|
5
+ case argument
6
+ when /^-/ then
7
+ argument
8
+ when /\*/ then
9
+ FileList[argument].to_a.each do |file|
10
+ require File.expand_path file
11
+ end
12
+
13
+ false
14
+ else
15
+ require File.expand_path argument
16
+
17
+ false
18
+ end
19
+ end
20
+
21
+ ARGV.replace argv
22
+
@@ -0,0 +1,234 @@
1
+ # rake/rdoctask is deprecated in favor of rdoc/task
2
+
3
+ if Rake.application
4
+ Rake.application.deprecate('require \'rake/rdoctask\'', 'require \'rdoc/task\' (in RDoc 2.4.2+)', __FILE__)
5
+ end
6
+
7
+ require 'rubygems'
8
+
9
+ begin
10
+ gem 'rdoc'
11
+ require 'rdoc'
12
+ require 'rdoc/task'
13
+ rescue LoadError, Gem::LoadError
14
+ end
15
+
16
+ # :stopdoc:
17
+
18
+ if defined?(RDoc::Task) then
19
+ module Rake
20
+ RDocTask = RDoc::Task unless const_defined? :RDocTask
21
+ end
22
+ else
23
+ require 'rake'
24
+ require 'rake/tasklib'
25
+
26
+ module Rake
27
+
28
+ # NOTE: Rake::RDocTask is deprecated in favor of RDoc:Task which is included
29
+ # in RDoc 2.4.2+. Use require 'rdoc/task' to require it.
30
+ #
31
+ # Create a documentation task that will generate the RDoc files for
32
+ # a project.
33
+ #
34
+ # The RDocTask will create the following targets:
35
+ #
36
+ # [<b><em>rdoc</em></b>]
37
+ # Main task for this RDOC task.
38
+ #
39
+ # [<b>:clobber_<em>rdoc</em></b>]
40
+ # Delete all the rdoc files. This target is automatically
41
+ # added to the main clobber target.
42
+ #
43
+ # [<b>:re<em>rdoc</em></b>]
44
+ # Rebuild the rdoc files from scratch, even if they are not out
45
+ # of date.
46
+ #
47
+ # Simple Example:
48
+ #
49
+ # Rake::RDocTask.new do |rd|
50
+ # rd.main = "README.rdoc"
51
+ # rd.rdoc_files.include("README.rdoc", "lib/**/*.rb")
52
+ # end
53
+ #
54
+ # The +rd+ object passed to the block is an RDocTask object. See the
55
+ # attributes list for the RDocTask class for available customization options.
56
+ #
57
+ # == Specifying different task names
58
+ #
59
+ # You may wish to give the task a different name, such as if you are
60
+ # generating two sets of documentation. For instance, if you want to have a
61
+ # development set of documentation including private methods:
62
+ #
63
+ # Rake::RDocTask.new(:rdoc_dev) do |rd|
64
+ # rd.main = "README.doc"
65
+ # rd.rdoc_files.include("README.rdoc", "lib/**/*.rb")
66
+ # rd.options << "--all"
67
+ # end
68
+ #
69
+ # The tasks would then be named :<em>rdoc_dev</em>, :clobber_<em>rdoc_dev</em>, and
70
+ # :re<em>rdoc_dev</em>.
71
+ #
72
+ # If you wish to have completely different task names, then pass a Hash as
73
+ # first argument. With the <tt>:rdoc</tt>, <tt>:clobber_rdoc</tt> and
74
+ # <tt>:rerdoc</tt> options, you can customize the task names to your liking.
75
+ # For example:
76
+ #
77
+ # Rake::RDocTask.new(:rdoc => "rdoc", :clobber_rdoc => "rdoc:clean", :rerdoc => "rdoc:force")
78
+ #
79
+ # This will create the tasks <tt>:rdoc</tt>, <tt>:rdoc_clean</tt> and
80
+ # <tt>:rdoc:force</tt>.
81
+ #
82
+ class RDocTask < TaskLib
83
+ # Name of the main, top level task. (default is :rdoc)
84
+ attr_accessor :name
85
+
86
+ # Name of directory to receive the html output files. (default is "html")
87
+ attr_accessor :rdoc_dir
88
+
89
+ # Title of RDoc documentation. (defaults to rdoc's default)
90
+ attr_accessor :title
91
+
92
+ # Name of file to be used as the main, top level file of the
93
+ # RDoc. (default is none)
94
+ attr_accessor :main
95
+
96
+ # Name of template to be used by rdoc. (defaults to rdoc's default)
97
+ attr_accessor :template
98
+
99
+ # List of files to be included in the rdoc generation. (default is [])
100
+ attr_accessor :rdoc_files
101
+
102
+ # Additional list of options to be passed rdoc. (default is [])
103
+ attr_accessor :options
104
+
105
+ # Whether to run the rdoc process as an external shell (default is false)
106
+ attr_accessor :external
107
+
108
+ attr_accessor :inline_source
109
+
110
+ # Create an RDoc task with the given name. See the RDocTask class overview
111
+ # for documentation.
112
+ def initialize(name = :rdoc) # :yield: self
113
+ if name.is_a?(Hash)
114
+ invalid_options = name.keys.map { |k| k.to_sym } - [:rdoc, :clobber_rdoc, :rerdoc]
115
+ if !invalid_options.empty?
116
+ raise ArgumentError, "Invalid option(s) passed to RDocTask.new: #{invalid_options.join(", ")}"
117
+ end
118
+ end
119
+
120
+ @name = name
121
+ @rdoc_files = Rake::FileList.new
122
+ @rdoc_dir = 'html'
123
+ @main = nil
124
+ @title = nil
125
+ @template = nil
126
+ @external = false
127
+ @inline_source = true
128
+ @options = []
129
+ yield self if block_given?
130
+ define
131
+ end
132
+
133
+ # Create the tasks defined by this task lib.
134
+ def define
135
+ if rdoc_task_name != "rdoc"
136
+ desc "Build the RDOC HTML Files"
137
+ else
138
+ desc "Build the #{rdoc_task_name} HTML Files"
139
+ end
140
+ task rdoc_task_name
141
+
142
+ desc "Force a rebuild of the RDOC files"
143
+ task rerdoc_task_name => [clobber_task_name, rdoc_task_name]
144
+
145
+ desc "Remove rdoc products"
146
+ task clobber_task_name do
147
+ rm_r rdoc_dir rescue nil
148
+ end
149
+
150
+ task :clobber => [clobber_task_name]
151
+
152
+ directory @rdoc_dir
153
+ task rdoc_task_name => [rdoc_target]
154
+ file rdoc_target => @rdoc_files + [Rake.application.rakefile] do
155
+ rm_r @rdoc_dir rescue nil
156
+ @before_running_rdoc.call if @before_running_rdoc
157
+ args = option_list + @rdoc_files
158
+ if @external
159
+ argstring = args.join(' ')
160
+ sh %{ruby -Ivendor vendor/rd #{argstring}}
161
+ else
162
+ require 'rdoc/rdoc'
163
+ RDoc::RDoc.new.document(args)
164
+ end
165
+ end
166
+ self
167
+ end
168
+
169
+ def option_list
170
+ result = @options.dup
171
+ result << "-o" << @rdoc_dir
172
+ result << "--main" << quote(main) if main
173
+ result << "--title" << quote(title) if title
174
+ result << "-T" << quote(template) if template
175
+ result << "--inline-source" if inline_source && !@options.include?("--inline-source") && !@options.include?("-S")
176
+ result
177
+ end
178
+
179
+ def quote(str)
180
+ if @external
181
+ "'#{str}'"
182
+ else
183
+ str
184
+ end
185
+ end
186
+
187
+ def option_string
188
+ option_list.join(' ')
189
+ end
190
+
191
+ # The block passed to this method will be called just before running the
192
+ # RDoc generator. It is allowed to modify RDocTask attributes inside the
193
+ # block.
194
+ def before_running_rdoc(&block)
195
+ @before_running_rdoc = block
196
+ end
197
+
198
+ private
199
+
200
+ def rdoc_target
201
+ "#{rdoc_dir}/index.html"
202
+ end
203
+
204
+ def rdoc_task_name
205
+ case name
206
+ when Hash
207
+ (name[:rdoc] || "rdoc").to_s
208
+ else
209
+ name.to_s
210
+ end
211
+ end
212
+
213
+ def clobber_task_name
214
+ case name
215
+ when Hash
216
+ (name[:clobber_rdoc] || "clobber_rdoc").to_s
217
+ else
218
+ "clobber_#{name}"
219
+ end
220
+ end
221
+
222
+ def rerdoc_task_name
223
+ case name
224
+ when Hash
225
+ (name[:rerdoc] || "rerdoc").to_s
226
+ else
227
+ "re#{name}"
228
+ end
229
+ end
230
+
231
+ end
232
+ end
233
+ end
234
+
@@ -0,0 +1,25 @@
1
+ # Local Rake override to fix bug in Ruby 0.8.2
2
+ module Test # :nodoc:
3
+ # Local Rake override to fix bug in Ruby 0.8.2
4
+ module Unit # :nodoc:
5
+ # Local Rake override to fix bug in Ruby 0.8.2
6
+ module Collector # :nodoc:
7
+ # Local Rake override to fix bug in Ruby 0.8.2
8
+ class Dir # :nodoc:
9
+ undef collect_file
10
+ def collect_file(name, suites, already_gathered) # :nodoc:
11
+ dir = File.dirname(File.expand_path(name))
12
+ $:.unshift(dir) unless $:.first == dir
13
+ if(@req)
14
+ @req.require(name)
15
+ else
16
+ require(name)
17
+ end
18
+ find_test_cases(already_gathered).each{|t| add_suite(suites, t.suite)}
19
+ ensure
20
+ $:.delete_at $:.rindex(dir)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,20 @@
1
+
2
+ module Rake
3
+
4
+ # Error indicating a recursion overflow error in task selection.
5
+ class RuleRecursionOverflowError < StandardError
6
+ def initialize(*args)
7
+ super
8
+ @targets = []
9
+ end
10
+
11
+ def add_target(target)
12
+ @targets << target
13
+ end
14
+
15
+ def message
16
+ super + ": [" + @targets.reverse.join(' => ') + "]"
17
+ end
18
+ end
19
+
20
+ end
@@ -0,0 +1,21 @@
1
+ require 'test/unit'
2
+ require 'test/unit/assertions'
3
+
4
+ module Rake
5
+ include Test::Unit::Assertions
6
+
7
+ def run_tests(pattern='test/test*.rb', log_enabled=false)
8
+ Dir["#{pattern}"].each { |fn|
9
+ $stderr.puts fn if log_enabled
10
+ begin
11
+ require fn
12
+ rescue Exception => ex
13
+ $stderr.puts "Error in #{fn}: #{ex.message}"
14
+ $stderr.puts ex.backtrace
15
+ assert false
16
+ end
17
+ }
18
+ end
19
+
20
+ extend self
21
+ end
@@ -0,0 +1,327 @@
1
+ require 'rake/invocation_exception_mixin'
2
+
3
+ module Rake
4
+
5
+ # #########################################################################
6
+ # A Task is the basic unit of work in a Rakefile. Tasks have associated
7
+ # actions (possibly more than one) and a list of prerequisites. When
8
+ # invoked, a task will first ensure that all of its prerequisites have an
9
+ # opportunity to run and then it will execute its own actions.
10
+ #
11
+ # Tasks are not usually created directly using the new method, but rather
12
+ # use the +file+ and +task+ convenience methods.
13
+ #
14
+ class Task
15
+ # List of prerequisites for a task.
16
+ attr_reader :prerequisites
17
+
18
+ # List of actions attached to a task.
19
+ attr_reader :actions
20
+
21
+ # Application owning this task.
22
+ attr_accessor :application
23
+
24
+ # Comment for this task. Restricted to a single line of no more than 50
25
+ # characters.
26
+ attr_reader :comment
27
+
28
+ # Full text of the (possibly multi-line) comment.
29
+ attr_reader :full_comment
30
+
31
+ # Array of nested namespaces names used for task lookup by this task.
32
+ attr_reader :scope
33
+
34
+ # File/Line locations of each of the task definitions for this
35
+ # task (only valid if the task was defined with the detect
36
+ # location option set).
37
+ attr_reader :locations
38
+
39
+ # Return task name
40
+ def to_s
41
+ name
42
+ end
43
+
44
+ def inspect
45
+ "<#{self.class} #{name} => [#{prerequisites.join(', ')}]>"
46
+ end
47
+
48
+ # List of sources for task.
49
+ attr_writer :sources
50
+ def sources
51
+ @sources ||= []
52
+ end
53
+
54
+ # List of prerequisite tasks
55
+ def prerequisite_tasks
56
+ prerequisites.collect { |pre| lookup_prerequisite(pre) }
57
+ end
58
+
59
+ def lookup_prerequisite(prerequisite_name)
60
+ application[prerequisite_name, @scope]
61
+ end
62
+ private :lookup_prerequisite
63
+
64
+ # First source from a rule (nil if no sources)
65
+ def source
66
+ @sources.first if defined?(@sources)
67
+ end
68
+
69
+ # Create a task named +task_name+ with no actions or prerequisites. Use
70
+ # +enhance+ to add actions and prerequisites.
71
+ def initialize(task_name, app)
72
+ @name = task_name.to_s
73
+ @prerequisites = []
74
+ @actions = []
75
+ @already_invoked = false
76
+ @full_comment = nil
77
+ @comment = nil
78
+ @lock = Monitor.new
79
+ @application = app
80
+ @scope = app.current_scope
81
+ @arg_names = nil
82
+ @locations = []
83
+ end
84
+
85
+ # Enhance a task with prerequisites or actions. Returns self.
86
+ def enhance(deps=nil, &block)
87
+ @prerequisites |= deps if deps
88
+ @actions << block if block_given?
89
+ self
90
+ end
91
+
92
+ # Name of the task, including any namespace qualifiers.
93
+ def name
94
+ @name.to_s
95
+ end
96
+
97
+ # Name of task with argument list description.
98
+ def name_with_args # :nodoc:
99
+ if arg_description
100
+ "#{name}#{arg_description}"
101
+ else
102
+ name
103
+ end
104
+ end
105
+
106
+ # Argument description (nil if none).
107
+ def arg_description # :nodoc:
108
+ @arg_names ? "[#{(arg_names || []).join(',')}]" : nil
109
+ end
110
+
111
+ # Name of arguments for this task.
112
+ def arg_names
113
+ @arg_names || []
114
+ end
115
+
116
+ # Reenable the task, allowing its tasks to be executed if the task
117
+ # is invoked again.
118
+ def reenable
119
+ @already_invoked = false
120
+ end
121
+
122
+ # Clear the existing prerequisites and actions of a rake task.
123
+ def clear
124
+ clear_prerequisites
125
+ clear_actions
126
+ self
127
+ end
128
+
129
+ # Clear the existing prerequisites of a rake task.
130
+ def clear_prerequisites
131
+ prerequisites.clear
132
+ self
133
+ end
134
+
135
+ # Clear the existing actions on a rake task.
136
+ def clear_actions
137
+ actions.clear
138
+ self
139
+ end
140
+
141
+ # Invoke the task if it is needed. Prerequisites are invoked first.
142
+ def invoke(*args)
143
+ task_args = TaskArguments.new(arg_names, args)
144
+ invoke_with_call_chain(task_args, InvocationChain::EMPTY)
145
+ end
146
+
147
+ # Same as invoke, but explicitly pass a call chain to detect
148
+ # circular dependencies.
149
+ def invoke_with_call_chain(task_args, invocation_chain) # :nodoc:
150
+ new_chain = InvocationChain.append(self, invocation_chain)
151
+ @lock.synchronize do
152
+ if application.options.trace
153
+ $stderr.puts "** Invoke #{name} #{format_trace_flags}"
154
+ end
155
+ return if @already_invoked
156
+ @already_invoked = true
157
+ invoke_prerequisites(task_args, new_chain)
158
+ execute(task_args) if needed?
159
+ end
160
+ rescue Exception => ex
161
+ add_chain_to(ex, new_chain)
162
+ raise ex
163
+ end
164
+ protected :invoke_with_call_chain
165
+
166
+ def add_chain_to(exception, new_chain)
167
+ exception.extend(InvocationExceptionMixin) unless exception.respond_to?(:chain)
168
+ exception.chain = new_chain if exception.chain.nil?
169
+ end
170
+ private :add_chain_to
171
+
172
+ # Invoke all the prerequisites of a task.
173
+ def invoke_prerequisites(task_args, invocation_chain) # :nodoc:
174
+ prerequisite_tasks.each { |prereq|
175
+ prereq_args = task_args.new_scope(prereq.arg_names)
176
+ prereq.invoke_with_call_chain(prereq_args, invocation_chain)
177
+ }
178
+ end
179
+
180
+ # Format the trace flags for display.
181
+ def format_trace_flags
182
+ flags = []
183
+ flags << "first_time" unless @already_invoked
184
+ flags << "not_needed" unless needed?
185
+ flags.empty? ? "" : "(" + flags.join(", ") + ")"
186
+ end
187
+ private :format_trace_flags
188
+
189
+ # Execute the actions associated with this task.
190
+ def execute(args=nil)
191
+ args ||= EMPTY_TASK_ARGS
192
+ if application.options.dryrun
193
+ $stderr.puts "** Execute (dry run) #{name}"
194
+ return
195
+ end
196
+ if application.options.trace
197
+ $stderr.puts "** Execute #{name}"
198
+ end
199
+ application.enhance_with_matching_rule(name) if @actions.empty?
200
+ @actions.each do |act|
201
+ case act.arity
202
+ when 1
203
+ act.call(self)
204
+ else
205
+ act.call(self, args)
206
+ end
207
+ end
208
+ end
209
+
210
+ # Is this task needed?
211
+ def needed?
212
+ true
213
+ end
214
+
215
+ # Timestamp for this task. Basic tasks return the current time for their
216
+ # time stamp. Other tasks can be more sophisticated.
217
+ def timestamp
218
+ prerequisite_tasks.collect { |pre| pre.timestamp }.max || Time.now
219
+ end
220
+
221
+ # Add a description to the task. The description can consist of an option
222
+ # argument list (enclosed brackets) and an optional comment.
223
+ def add_description(description)
224
+ return if ! description
225
+ comment = description.strip
226
+ add_comment(comment) if comment && ! comment.empty?
227
+ end
228
+
229
+ # Writing to the comment attribute is the same as adding a description.
230
+ def comment=(description)
231
+ add_description(description)
232
+ end
233
+
234
+ # Add a comment to the task. If a comment already exists, separate
235
+ # the new comment with " / ".
236
+ def add_comment(comment)
237
+ if @full_comment
238
+ @full_comment << " / "
239
+ else
240
+ @full_comment = ''
241
+ end
242
+ @full_comment << comment
243
+ if @full_comment =~ /\A([^.]+?\.)( |$)/
244
+ @comment = $1
245
+ else
246
+ @comment = @full_comment
247
+ end
248
+ end
249
+ private :add_comment
250
+
251
+ # Set the names of the arguments for this task. +args+ should be
252
+ # an array of symbols, one for each argument name.
253
+ def set_arg_names(args)
254
+ @arg_names = args.map { |a| a.to_sym }
255
+ end
256
+
257
+ # Return a string describing the internal state of a task. Useful for
258
+ # debugging.
259
+ def investigation
260
+ result = "------------------------------\n"
261
+ result << "Investigating #{name}\n"
262
+ result << "class: #{self.class}\n"
263
+ result << "task needed: #{needed?}\n"
264
+ result << "timestamp: #{timestamp}\n"
265
+ result << "pre-requisites: \n"
266
+ prereqs = prerequisite_tasks
267
+ prereqs.sort! {|a,b| a.timestamp <=> b.timestamp}
268
+ prereqs.each do |p|
269
+ result << "--#{p.name} (#{p.timestamp})\n"
270
+ end
271
+ latest_prereq = prerequisite_tasks.collect { |pre| pre.timestamp }.max
272
+ result << "latest-prerequisite time: #{latest_prereq}\n"
273
+ result << "................................\n\n"
274
+ return result
275
+ end
276
+
277
+ # ----------------------------------------------------------------
278
+ # Rake Module Methods
279
+ #
280
+ class << self
281
+
282
+ # Clear the task list. This cause rake to immediately forget all the
283
+ # tasks that have been assigned. (Normally used in the unit tests.)
284
+ def clear
285
+ Rake.application.clear
286
+ end
287
+
288
+ # List of all defined tasks.
289
+ def tasks
290
+ Rake.application.tasks
291
+ end
292
+
293
+ # Return a task with the given name. If the task is not currently
294
+ # known, try to synthesize one from the defined rules. If no rules are
295
+ # found, but an existing file matches the task name, assume it is a file
296
+ # task with no dependencies or actions.
297
+ def [](task_name)
298
+ Rake.application[task_name]
299
+ end
300
+
301
+ # TRUE if the task name is already defined.
302
+ def task_defined?(task_name)
303
+ Rake.application.lookup(task_name) != nil
304
+ end
305
+
306
+ # Define a task given +args+ and an option block. If a rule with the
307
+ # given name already exists, the prerequisites and actions are added to
308
+ # the existing task. Returns the defined task.
309
+ def define_task(*args, &block)
310
+ Rake.application.define_task(self, *args, &block)
311
+ end
312
+
313
+ # Define a rule for synthesizing tasks.
314
+ def create_rule(*args, &block)
315
+ Rake.application.create_rule(*args, &block)
316
+ end
317
+
318
+ # Apply the scope to the task name according to the rules for
319
+ # this kind of task. Generic tasks will accept the scope as
320
+ # part of the name.
321
+ def scope_name(scope, task_name)
322
+ (scope + [task_name]).join(':')
323
+ end
324
+
325
+ end # class << Rake::Task
326
+ end # class Rake::Task
327
+ end