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,7 @@
1
+ module Rake
2
+
3
+ # Error indicating an ill-formed task declaration.
4
+ class TaskArgumentError < ArgumentError
5
+ end
6
+
7
+ end
@@ -0,0 +1,78 @@
1
+ module Rake
2
+
3
+ ####################################################################
4
+ # TaskArguments manage the arguments passed to a task.
5
+ #
6
+ class TaskArguments
7
+ include Enumerable
8
+
9
+ attr_reader :names
10
+
11
+ # Create a TaskArgument object with a list of named arguments
12
+ # (given by :names) and a set of associated values (given by
13
+ # :values). :parent is the parent argument object.
14
+ def initialize(names, values, parent=nil)
15
+ @names = names
16
+ @parent = parent
17
+ @hash = {}
18
+ names.each_with_index { |name, i|
19
+ @hash[name.to_sym] = values[i] unless values[i].nil?
20
+ }
21
+ end
22
+
23
+ # Create a new argument scope using the prerequisite argument
24
+ # names.
25
+ def new_scope(names)
26
+ values = names.collect { |n| self[n] }
27
+ self.class.new(names, values, self)
28
+ end
29
+
30
+ # Find an argument value by name or index.
31
+ def [](index)
32
+ lookup(index.to_sym)
33
+ end
34
+
35
+ # Specify a hash of default values for task arguments. Use the
36
+ # defaults only if there is no specific value for the given
37
+ # argument.
38
+ def with_defaults(defaults)
39
+ @hash = defaults.merge(@hash)
40
+ end
41
+
42
+ def each(&block)
43
+ @hash.each(&block)
44
+ end
45
+
46
+ def values_at(*keys)
47
+ keys.map { |k| lookup(k) }
48
+ end
49
+
50
+ def method_missing(sym, *args, &block)
51
+ lookup(sym.to_sym)
52
+ end
53
+
54
+ def to_hash
55
+ @hash
56
+ end
57
+
58
+ def to_s
59
+ @hash.inspect
60
+ end
61
+
62
+ def inspect
63
+ to_s
64
+ end
65
+
66
+ protected
67
+
68
+ def lookup(name)
69
+ if @hash.has_key?(name)
70
+ @hash[name]
71
+ elsif @parent
72
+ @parent.lookup(name)
73
+ end
74
+ end
75
+ end
76
+
77
+ EMPTY_TASK_ARGS = TaskArguments.new([], [])
78
+ end
@@ -0,0 +1,307 @@
1
+ module Rake
2
+
3
+ # The TaskManager module is a mixin for managing tasks.
4
+ module TaskManager
5
+ # Track the last comment made in the Rakefile.
6
+ attr_accessor :last_description
7
+ alias :last_comment :last_description # Backwards compatibility
8
+
9
+ def initialize
10
+ super
11
+ @tasks = Hash.new
12
+ @rules = Array.new
13
+ @scope = Array.new
14
+ @last_description = nil
15
+ end
16
+
17
+ def create_rule(*args, &block)
18
+ pattern, _, deps = resolve_args(args)
19
+ pattern = Regexp.new(Regexp.quote(pattern) + '$') if String === pattern
20
+ @rules << [pattern, deps, block]
21
+ end
22
+
23
+ def define_task(task_class, *args, &block)
24
+ task_name, arg_names, deps = resolve_args(args)
25
+ task_name = task_class.scope_name(@scope, task_name)
26
+ deps = [deps] unless deps.respond_to?(:to_ary)
27
+ deps = deps.collect {|d| d.to_s }
28
+ task = intern(task_class, task_name)
29
+ task.set_arg_names(arg_names) unless arg_names.empty?
30
+ if Rake::TaskManager.record_task_metadata
31
+ add_location(task)
32
+ task.add_description(get_description(task))
33
+ end
34
+ task.enhance(deps, &block)
35
+ end
36
+
37
+ # Lookup a task. Return an existing task if found, otherwise
38
+ # create a task of the current type.
39
+ def intern(task_class, task_name)
40
+ @tasks[task_name.to_s] ||= task_class.new(task_name, self)
41
+ end
42
+
43
+ # Find a matching task for +task_name+.
44
+ def [](task_name, scopes=nil)
45
+ task_name = task_name.to_s
46
+ self.lookup(task_name, scopes) or
47
+ enhance_with_matching_rule(task_name) or
48
+ synthesize_file_task(task_name) or
49
+ fail "Don't know how to build task '#{task_name}'"
50
+ end
51
+
52
+ def synthesize_file_task(task_name)
53
+ return nil unless File.exist?(task_name)
54
+ define_task(Rake::FileTask, task_name)
55
+ end
56
+
57
+ # Resolve the arguments for a task/rule. Returns a triplet of
58
+ # [task_name, arg_name_list, prerequisites].
59
+ def resolve_args(args)
60
+ if args.last.is_a?(Hash)
61
+ deps = args.pop
62
+ resolve_args_with_dependencies(args, deps)
63
+ else
64
+ resolve_args_without_dependencies(args)
65
+ end
66
+ end
67
+
68
+ # Resolve task arguments for a task or rule when there are no
69
+ # dependencies declared.
70
+ #
71
+ # The patterns recognized by this argument resolving function are:
72
+ #
73
+ # task :t
74
+ # task :t, [:a]
75
+ # task :t, :a (deprecated)
76
+ #
77
+ def resolve_args_without_dependencies(args)
78
+ task_name = args.shift
79
+ if args.size == 1 && args.first.respond_to?(:to_ary)
80
+ arg_names = args.first.to_ary
81
+ else
82
+ arg_names = args
83
+ end
84
+ [task_name, arg_names, []]
85
+ end
86
+ private :resolve_args_without_dependencies
87
+
88
+ # Resolve task arguments for a task or rule when there are
89
+ # dependencies declared.
90
+ #
91
+ # The patterns recognized by this argument resolving function are:
92
+ #
93
+ # task :t => [:d]
94
+ # task :t, [a] => [:d]
95
+ # task :t, :needs => [:d] (deprecated)
96
+ # task :t, :a, :needs => [:d] (deprecated)
97
+ #
98
+ def resolve_args_with_dependencies(args, hash) # :nodoc:
99
+ fail "Task Argument Error" if hash.size != 1
100
+ key, value = hash.map { |k, v| [k,v] }.first
101
+ if args.empty?
102
+ task_name = key
103
+ arg_names = []
104
+ deps = value
105
+ elsif key == :needs
106
+ Rake.application.deprecate(
107
+ "task :t, arg, :needs => [deps]",
108
+ "task :t, [args] => [deps]",
109
+ caller.detect { |c| c !~ /\blib\/rake\b/ })
110
+ task_name = args.shift
111
+ arg_names = args
112
+ deps = value
113
+ else
114
+ task_name = args.shift
115
+ arg_names = key
116
+ deps = value
117
+ end
118
+ deps = [deps] unless deps.respond_to?(:to_ary)
119
+ [task_name, arg_names, deps]
120
+ end
121
+ private :resolve_args_with_dependencies
122
+
123
+ # If a rule can be found that matches the task name, enhance the
124
+ # task with the prerequisites and actions from the rule. Set the
125
+ # source attribute of the task appropriately for the rule. Return
126
+ # the enhanced task or nil of no rule was found.
127
+ def enhance_with_matching_rule(task_name, level=0)
128
+ fail Rake::RuleRecursionOverflowError,
129
+ "Rule Recursion Too Deep" if level >= 16
130
+ @rules.each do |pattern, extensions, block|
131
+ if pattern.match(task_name)
132
+ task = attempt_rule(task_name, extensions, block, level)
133
+ return task if task
134
+ end
135
+ end
136
+ nil
137
+ rescue Rake::RuleRecursionOverflowError => ex
138
+ ex.add_target(task_name)
139
+ fail ex
140
+ end
141
+
142
+ # List of all defined tasks in this application.
143
+ def tasks
144
+ @tasks.values.sort_by { |t| t.name }
145
+ end
146
+
147
+ # List of all the tasks defined in the given scope (and its
148
+ # sub-scopes).
149
+ def tasks_in_scope(scope)
150
+ prefix = scope.join(":")
151
+ tasks.select { |t|
152
+ /^#{prefix}:/ =~ t.name
153
+ }
154
+ end
155
+
156
+ # Clear all tasks in this application.
157
+ def clear
158
+ @tasks.clear
159
+ @rules.clear
160
+ end
161
+
162
+ # Lookup a task, using scope and the scope hints in the task name.
163
+ # This method performs straight lookups without trying to
164
+ # synthesize file tasks or rules. Special scope names (e.g. '^')
165
+ # are recognized. If no scope argument is supplied, use the
166
+ # current scope. Return nil if the task cannot be found.
167
+ def lookup(task_name, initial_scope=nil)
168
+ initial_scope ||= @scope
169
+ task_name = task_name.to_s
170
+ if task_name =~ /^rake:/
171
+ scopes = []
172
+ task_name = task_name.sub(/^rake:/, '')
173
+ elsif task_name =~ /^(\^+)/
174
+ scopes = initial_scope[0, initial_scope.size - $1.size]
175
+ task_name = task_name.sub(/^(\^+)/, '')
176
+ else
177
+ scopes = initial_scope
178
+ end
179
+ lookup_in_scope(task_name, scopes)
180
+ end
181
+
182
+ # Lookup the task name
183
+ def lookup_in_scope(name, scope)
184
+ n = scope.size
185
+ while n >= 0
186
+ tn = (scope[0,n] + [name]).join(':')
187
+ task = @tasks[tn]
188
+ return task if task
189
+ n -= 1
190
+ end
191
+ nil
192
+ end
193
+ private :lookup_in_scope
194
+
195
+ # Return the list of scope names currently active in the task
196
+ # manager.
197
+ def current_scope
198
+ @scope.dup
199
+ end
200
+
201
+ # Evaluate the block in a nested namespace named +name+. Create
202
+ # an anonymous namespace if +name+ is nil.
203
+ def in_namespace(name)
204
+ name ||= generate_name
205
+ @scope.push(name)
206
+ ns = NameSpace.new(self, @scope)
207
+ yield(ns)
208
+ ns
209
+ ensure
210
+ @scope.pop
211
+ end
212
+
213
+ private
214
+
215
+ # Add a location to the locations field of the given task.
216
+ def add_location(task)
217
+ loc = find_location
218
+ task.locations << loc if loc
219
+ task
220
+ end
221
+
222
+ # Find the location that called into the dsl layer.
223
+ def find_location
224
+ locations = caller
225
+ i = 0
226
+ while locations[i]
227
+ return locations[i+1] if locations[i] =~ /rake\/dsl_definition.rb/
228
+ i += 1
229
+ end
230
+ nil
231
+ end
232
+
233
+ # Generate an anonymous namespace name.
234
+ def generate_name
235
+ @seed ||= 0
236
+ @seed += 1
237
+ "_anon_#{@seed}"
238
+ end
239
+
240
+ def trace_rule(level, message)
241
+ $stderr.puts "#{" "*level}#{message}" if Rake.application.options.trace_rules
242
+ end
243
+
244
+ # Attempt to create a rule given the list of prerequisites.
245
+ def attempt_rule(task_name, extensions, block, level)
246
+ sources = make_sources(task_name, extensions)
247
+ prereqs = sources.collect { |source|
248
+ trace_rule level, "Attempting Rule #{task_name} => #{source}"
249
+ if File.exist?(source) || Rake::Task.task_defined?(source)
250
+ trace_rule level, "(#{task_name} => #{source} ... EXIST)"
251
+ source
252
+ elsif parent = enhance_with_matching_rule(source, level+1)
253
+ trace_rule level, "(#{task_name} => #{source} ... ENHANCE)"
254
+ parent.name
255
+ else
256
+ trace_rule level, "(#{task_name} => #{source} ... FAIL)"
257
+ return nil
258
+ end
259
+ }
260
+ task = FileTask.define_task({task_name => prereqs}, &block)
261
+ task.sources = prereqs
262
+ task
263
+ end
264
+
265
+ # Make a list of sources from the list of file name extensions /
266
+ # translation procs.
267
+ def make_sources(task_name, extensions)
268
+ result = extensions.collect { |ext|
269
+ case ext
270
+ when /%/
271
+ task_name.pathmap(ext)
272
+ when %r{/}
273
+ ext
274
+ when /^\./
275
+ task_name.ext(ext)
276
+ when String
277
+ ext
278
+ when Proc
279
+ if ext.arity == 1
280
+ ext.call(task_name)
281
+ else
282
+ ext.call
283
+ end
284
+ else
285
+ fail "Don't know how to handle rule dependent: #{ext.inspect}"
286
+ end
287
+ }
288
+ result.flatten
289
+ end
290
+
291
+
292
+ private
293
+
294
+ # Return the current description, clearing it in the process.
295
+ def get_description(task)
296
+ desc = @last_description
297
+ @last_description = nil
298
+ desc
299
+ end
300
+
301
+ class << self
302
+ attr_accessor :record_task_metadata
303
+ TaskManager.record_task_metadata = false
304
+ end
305
+ end
306
+
307
+ end
@@ -0,0 +1,22 @@
1
+ require 'rake'
2
+
3
+ module Rake
4
+
5
+ # Base class for Task Libraries.
6
+ class TaskLib
7
+ include Cloneable
8
+ include Rake::DSL
9
+
10
+ # Make a symbol by pasting two strings together.
11
+ #
12
+ # NOTE: DEPRECATED! This method is kinda stupid. I don't know why
13
+ # I didn't just use string interpolation. But now other task
14
+ # libraries depend on this so I can't remove it without breaking
15
+ # other people's code. So for now it stays for backwards
16
+ # compatibility. BUT DON'T USE IT.
17
+ def paste(a,b) # :nodoc:
18
+ (a.to_s + b.to_s).intern
19
+ end
20
+ end
21
+
22
+ end
@@ -0,0 +1,191 @@
1
+ # Define a task library for running unit tests.
2
+
3
+ require 'rake'
4
+ require 'rake/tasklib'
5
+
6
+ module Rake
7
+
8
+ # Create a task that runs a set of tests.
9
+ #
10
+ # Example:
11
+ #
12
+ # Rake::TestTask.new do |t|
13
+ # t.libs << "test"
14
+ # t.test_files = FileList['test/test*.rb']
15
+ # t.verbose = true
16
+ # end
17
+ #
18
+ # If rake is invoked with a "TEST=filename" command line option,
19
+ # then the list of test files will be overridden to include only the
20
+ # filename specified on the command line. This provides an easy way
21
+ # to run just one test.
22
+ #
23
+ # If rake is invoked with a "TESTOPTS=options" command line option,
24
+ # then the given options are passed to the test process after a
25
+ # '--'. This allows Test::Unit options to be passed to the test
26
+ # suite.
27
+ #
28
+ # Examples:
29
+ #
30
+ # rake test # run tests normally
31
+ # rake test TEST=just_one_file.rb # run just one test file.
32
+ # rake test TESTOPTS="-v" # run in verbose mode
33
+ # rake test TESTOPTS="--runner=fox" # use the fox test runner
34
+ #
35
+ class TestTask < TaskLib
36
+
37
+ # Name of test task. (default is :test)
38
+ attr_accessor :name
39
+
40
+ # List of directories to added to $LOAD_PATH before running the
41
+ # tests. (default is 'lib')
42
+ attr_accessor :libs
43
+
44
+ # True if verbose test output desired. (default is false)
45
+ attr_accessor :verbose
46
+
47
+ # Test options passed to the test suite. An explicit
48
+ # TESTOPTS=opts on the command line will override this. (default
49
+ # is NONE)
50
+ attr_accessor :options
51
+
52
+ # Request that the tests be run with the warning flag set.
53
+ # E.g. warning=true implies "ruby -w" used to run the tests.
54
+ attr_accessor :warning
55
+
56
+ # Glob pattern to match test files. (default is 'test/test*.rb')
57
+ attr_accessor :pattern
58
+
59
+ # Style of test loader to use. Options are:
60
+ #
61
+ # * :rake -- Rake provided test loading script (default).
62
+ # * :testrb -- Ruby provided test loading script.
63
+ # * :direct -- Load tests using command line loader.
64
+ #
65
+ attr_accessor :loader
66
+
67
+ # Array of commandline options to pass to ruby when running test loader.
68
+ attr_accessor :ruby_opts
69
+
70
+ # Explicitly define the list of test files to be included in a
71
+ # test. +list+ is expected to be an array of file names (a
72
+ # FileList is acceptable). If both +pattern+ and +test_files+ are
73
+ # used, then the list of test files is the union of the two.
74
+ def test_files=(list)
75
+ @test_files = list
76
+ end
77
+
78
+ # Create a testing task.
79
+ def initialize(name=:test)
80
+ @name = name
81
+ @libs = ["lib"]
82
+ @pattern = nil
83
+ @options = nil
84
+ @test_files = nil
85
+ @verbose = false
86
+ @warning = false
87
+ @loader = :rake
88
+ @ruby_opts = []
89
+ yield self if block_given?
90
+ @pattern = 'test/test*.rb' if @pattern.nil? && @test_files.nil?
91
+ define
92
+ end
93
+
94
+ # Create the tasks defined by this task lib.
95
+ def define
96
+ desc "Run tests" + (@name==:test ? "" : " for #{@name}")
97
+ task @name do
98
+ FileUtilsExt.verbose(@verbose) do
99
+ ruby "#{ruby_opts_string} #{run_code} #{file_list_string} #{option_list}"
100
+ end
101
+ end
102
+ self
103
+ end
104
+
105
+ def option_list # :nodoc:
106
+ (ENV['TESTOPTS'] ||
107
+ ENV['TESTOPT'] ||
108
+ ENV['TEST_OPTS'] ||
109
+ ENV['TEST_OPT'] ||
110
+ @options ||
111
+ "")
112
+ end
113
+
114
+ def ruby_opts_string
115
+ opts = @ruby_opts.dup
116
+ opts.unshift( "-I\"#{lib_path}\"" ) unless @libs.empty?
117
+ opts.unshift( "-w" ) if @warning
118
+ opts.join(" ")
119
+ end
120
+
121
+ def lib_path
122
+ @libs.join(File::PATH_SEPARATOR)
123
+ end
124
+
125
+ def file_list_string
126
+ file_list.collect { |fn| "\"#{fn}\"" }.join(' ')
127
+ end
128
+
129
+ def file_list # :nodoc:
130
+ if ENV['TEST']
131
+ FileList[ ENV['TEST'] ]
132
+ else
133
+ result = []
134
+ result += @test_files.to_a if @test_files
135
+ result << @pattern if @pattern
136
+ result
137
+ end
138
+ end
139
+
140
+ def fix # :nodoc:
141
+ case ruby_version
142
+ when '1.8.2'
143
+ "\"#{find_file 'rake/ruby182_test_unit_fix'}\""
144
+ else
145
+ nil
146
+ end || ''
147
+ end
148
+
149
+ def ruby_version
150
+ RUBY_VERSION
151
+ end
152
+
153
+ def run_code
154
+ case @loader
155
+ when :direct
156
+ "-e \"ARGV.each{|f| require f}\""
157
+ when :testrb
158
+ "-S testrb #{fix}"
159
+ when :rake
160
+ "-I\"#{rake_lib_dir}\" \"#{rake_loader}\""
161
+ end
162
+ end
163
+
164
+ def rake_loader # :nodoc:
165
+ find_file('rake/rake_test_loader') or
166
+ fail "unable to find rake test loader"
167
+ end
168
+
169
+ def find_file(fn) # :nodoc:
170
+ $LOAD_PATH.each do |path|
171
+ file_path = File.join(path, "#{fn}.rb")
172
+ return file_path if File.exist? file_path
173
+ end
174
+ nil
175
+ end
176
+
177
+ def rake_lib_dir # :nodoc:
178
+ find_dir('rake') or
179
+ fail "unable to find rake lib"
180
+ end
181
+
182
+ def find_dir(fn) # :nodoc:
183
+ $LOAD_PATH.each do |path|
184
+ file_path = File.join(path, "#{fn}.rb")
185
+ return path if File.exist? file_path
186
+ end
187
+ nil
188
+ end
189
+
190
+ end
191
+ end