simple-client 0.0.2

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 (297) hide show
  1. data/.bundle/config +4 -0
  2. data/Gemfile +7 -0
  3. data/Gemfile.lock +23 -0
  4. data/bin/rake +16 -0
  5. data/lib/simple-client/simple-client.rb +229 -0
  6. data/lib/simple-client/version.rb +4 -0
  7. data/lib/simple-client.rb +1 -0
  8. data/test/test_simple-client.rb +236 -0
  9. data/vendor/bundle/ruby/1.8/bin/rake +19 -0
  10. data/vendor/bundle/ruby/1.8/cache/addressable-2.2.8.gem +0 -0
  11. data/vendor/bundle/ruby/1.8/cache/crack-0.3.1.gem +0 -0
  12. data/vendor/bundle/ruby/1.8/cache/rake-0.9.2.2.gem +0 -0
  13. data/vendor/bundle/ruby/1.8/cache/webmock-1.8.8.gem +0 -0
  14. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/CHANGELOG.md +126 -0
  15. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/Gemfile +17 -0
  16. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/Gemfile.lock +35 -0
  17. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/LICENSE.txt +202 -0
  18. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/README.md +83 -0
  19. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/Rakefile +37 -0
  20. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/lib/addressable/idna/native.rb +43 -0
  21. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/lib/addressable/idna/pure.rb +4886 -0
  22. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/lib/addressable/idna.rb +25 -0
  23. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/lib/addressable/template.rb +1047 -0
  24. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/lib/addressable/uri.rb +2288 -0
  25. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/lib/addressable/version.rb +30 -0
  26. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/spec/addressable/idna_spec.rb +216 -0
  27. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/spec/addressable/net_http_compat_spec.rb +26 -0
  28. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/spec/addressable/template_spec.rb +2144 -0
  29. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/spec/addressable/uri_spec.rb +4928 -0
  30. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/tasks/clobber.rake +2 -0
  31. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/tasks/gem.rake +85 -0
  32. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/tasks/git.rake +45 -0
  33. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/tasks/metrics.rake +22 -0
  34. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/tasks/rspec.rake +58 -0
  35. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/tasks/rubyforge.rake +89 -0
  36. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/tasks/yard.rake +27 -0
  37. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/website/index.html +110 -0
  38. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/History +25 -0
  39. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/LICENSE +20 -0
  40. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/README.rdoc +42 -0
  41. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/Rakefile +32 -0
  42. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/crack.gemspec +53 -0
  43. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/lib/crack/json.rb +79 -0
  44. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/lib/crack/util.rb +17 -0
  45. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/lib/crack/xml.rb +232 -0
  46. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/lib/crack.rb +8 -0
  47. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/crack_test.rb +4 -0
  48. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/data/twittersearch-firefox.json +1 -0
  49. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/data/twittersearch-ie.json +1 -0
  50. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/hash_test.rb +28 -0
  51. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/json_test.rb +82 -0
  52. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/parser_test.rb +27 -0
  53. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/string_test.rb +31 -0
  54. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/test_helper.rb +12 -0
  55. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/xml_test.rb +499 -0
  56. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/CHANGES +522 -0
  57. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/MIT-LICENSE +21 -0
  58. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/README.rdoc +197 -0
  59. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/Rakefile +369 -0
  60. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/TODO +20 -0
  61. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/bin/rake +33 -0
  62. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/command_line_usage.rdoc +114 -0
  63. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/example/Rakefile1 +38 -0
  64. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/example/Rakefile2 +35 -0
  65. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/example/a.c +6 -0
  66. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/example/b.c +6 -0
  67. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/example/main.c +11 -0
  68. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/glossary.rdoc +51 -0
  69. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/jamis.rb +591 -0
  70. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/proto_rake.rdoc +127 -0
  71. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/rake.1.gz +0 -0
  72. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/rakefile.rdoc +557 -0
  73. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/rational.rdoc +151 -0
  74. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.4.14.rdoc +23 -0
  75. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.4.15.rdoc +35 -0
  76. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.5.0.rdoc +53 -0
  77. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.5.3.rdoc +78 -0
  78. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.5.4.rdoc +46 -0
  79. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.6.0.rdoc +141 -0
  80. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.7.0.rdoc +119 -0
  81. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.7.1.rdoc +59 -0
  82. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.7.2.rdoc +121 -0
  83. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.7.3.rdoc +47 -0
  84. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.0.rdoc +114 -0
  85. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.2.rdoc +165 -0
  86. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.3.rdoc +112 -0
  87. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.4.rdoc +147 -0
  88. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.5.rdoc +53 -0
  89. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.6.rdoc +55 -0
  90. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.7.rdoc +55 -0
  91. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.9.0.rdoc +112 -0
  92. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.9.1.rdoc +52 -0
  93. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.9.2.rdoc +49 -0
  94. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/install.rb +90 -0
  95. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/alt_system.rb +109 -0
  96. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/application.rb +595 -0
  97. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/classic_namespace.rb +11 -0
  98. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/clean.rb +32 -0
  99. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/cloneable.rb +25 -0
  100. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/contrib/compositepublisher.rb +21 -0
  101. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/contrib/ftptools.rb +150 -0
  102. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/contrib/publisher.rb +73 -0
  103. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/contrib/rubyforgepublisher.rb +16 -0
  104. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/contrib/sshpublisher.rb +50 -0
  105. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/contrib/sys.rb +191 -0
  106. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/default_loader.rb +10 -0
  107. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/dsl_definition.rb +176 -0
  108. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/early_time.rb +18 -0
  109. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/ext/core.rb +27 -0
  110. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/ext/module.rb +39 -0
  111. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/ext/string.rb +167 -0
  112. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/ext/time.rb +14 -0
  113. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/file_creation_task.rb +24 -0
  114. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/file_list.rb +403 -0
  115. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/file_task.rb +47 -0
  116. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/file_utils.rb +114 -0
  117. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/file_utils_ext.rb +145 -0
  118. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/gempackagetask.rb +15 -0
  119. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/invocation_chain.rb +51 -0
  120. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/invocation_exception_mixin.rb +16 -0
  121. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/loaders/makefile.rb +40 -0
  122. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/multi_task.rb +16 -0
  123. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/name_space.rb +25 -0
  124. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/packagetask.rb +185 -0
  125. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/pathmap.rb +1 -0
  126. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/pseudo_status.rb +24 -0
  127. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rake_module.rb +29 -0
  128. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb +22 -0
  129. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rdoctask.rb +234 -0
  130. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/ruby182_test_unit_fix.rb +25 -0
  131. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
  132. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/runtest.rb +21 -0
  133. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/task.rb +327 -0
  134. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/task_argument_error.rb +7 -0
  135. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/task_arguments.rb +78 -0
  136. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/task_manager.rb +307 -0
  137. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/tasklib.rb +22 -0
  138. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/testtask.rb +191 -0
  139. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/version.rb +8 -0
  140. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/win32.rb +55 -0
  141. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake.rb +69 -0
  142. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/file_creation.rb +34 -0
  143. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/helper.rb +492 -0
  144. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake.rb +40 -0
  145. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_application.rb +489 -0
  146. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_application_options.rb +335 -0
  147. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_clean.rb +14 -0
  148. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_definitions.rb +80 -0
  149. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_directory_task.rb +46 -0
  150. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_dsl.rb +77 -0
  151. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_early_time.rb +31 -0
  152. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_extension.rb +59 -0
  153. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_file_creation_task.rb +56 -0
  154. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_file_list.rb +628 -0
  155. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_file_list_path_map.rb +8 -0
  156. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_file_task.rb +102 -0
  157. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_file_utils.rb +305 -0
  158. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_ftp_file.rb +59 -0
  159. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_functional.rb +450 -0
  160. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_invocation_chain.rb +52 -0
  161. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_makefile_loader.rb +44 -0
  162. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_multi_task.rb +51 -0
  163. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_name_space.rb +43 -0
  164. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_package_task.rb +79 -0
  165. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_path_map.rb +157 -0
  166. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_path_map_explode.rb +34 -0
  167. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_path_map_partial.rb +18 -0
  168. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_pseudo_status.rb +21 -0
  169. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_rake_test_loader.rb +21 -0
  170. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_rdoc_task.rb +83 -0
  171. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_require.rb +40 -0
  172. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_rules.rb +327 -0
  173. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_task.rb +267 -0
  174. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_task_argument_parsing.rb +103 -0
  175. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_task_arguments.rb +88 -0
  176. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_task_lib.rb +9 -0
  177. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_task_manager.rb +157 -0
  178. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_task_manager_argument_resolution.rb +36 -0
  179. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_task_with_arguments.rb +173 -0
  180. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_test_task.rb +120 -0
  181. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_top_level_functions.rb +111 -0
  182. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_win32.rb +72 -0
  183. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_sys.rb +20 -0
  184. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/CHANGELOG.md +749 -0
  185. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/Gemfile +21 -0
  186. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/Guardfile +24 -0
  187. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/LICENSE +20 -0
  188. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/README.md +728 -0
  189. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/Rakefile +65 -0
  190. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/api.rb +63 -0
  191. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/assertion_failure.rb +11 -0
  192. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/callback_registry.rb +35 -0
  193. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/config.rb +10 -0
  194. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/cucumber.rb +8 -0
  195. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/deprecation.rb +9 -0
  196. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/errors.rb +33 -0
  197. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/curb_adapter.rb +287 -0
  198. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/em_http_request/em_http_request_0_x.rb +151 -0
  199. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/em_http_request/em_http_request_1_x.rb +212 -0
  200. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/em_http_request_adapter.rb +11 -0
  201. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/excon_adapter.rb +95 -0
  202. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/http_lib_adapter.rb +7 -0
  203. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/http_lib_adapter_registry.rb +19 -0
  204. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/httpclient_adapter.rb +193 -0
  205. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/net_http.rb +279 -0
  206. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/net_http_response.rb +34 -0
  207. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/patron_adapter.rb +129 -0
  208. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb +180 -0
  209. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/matchers/hash_including_matcher.rb +25 -0
  210. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/minitest.rb +15 -0
  211. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/rack_response.rb +63 -0
  212. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/request_execution_verifier.rb +56 -0
  213. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/request_pattern.rb +282 -0
  214. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/request_registry.rb +35 -0
  215. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/request_signature.rb +50 -0
  216. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/request_stub.rb +97 -0
  217. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/response.rb +144 -0
  218. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/responses_sequence.rb +40 -0
  219. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/rspec/matchers/request_pattern_matcher.rb +42 -0
  220. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/rspec/matchers/webmock_matcher.rb +46 -0
  221. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/rspec/matchers.rb +28 -0
  222. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/rspec.rb +33 -0
  223. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/stub_registry.rb +61 -0
  224. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/stub_request_snippet.rb +30 -0
  225. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/test_unit.rb +20 -0
  226. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/util/hash_counter.rb +25 -0
  227. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/util/hash_keys_stringifier.rb +23 -0
  228. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/util/headers.rb +43 -0
  229. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/util/json.rb +54 -0
  230. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/util/uri.rb +101 -0
  231. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/util/version_checker.rb +73 -0
  232. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/version.rb +3 -0
  233. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/webmock.rb +124 -0
  234. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock.rb +49 -0
  235. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/minitest/test_helper.rb +29 -0
  236. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/minitest/test_webmock.rb +6 -0
  237. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/minitest/webmock_spec.rb +50 -0
  238. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/curb/curb_spec.rb +340 -0
  239. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/curb/curb_spec_helper.rb +144 -0
  240. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/em_http_request/em_http_request_spec.rb +183 -0
  241. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/em_http_request/em_http_request_spec_helper.rb +72 -0
  242. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/excon/excon_spec.rb +15 -0
  243. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/excon/excon_spec_helper.rb +38 -0
  244. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/httpclient/httpclient_spec.rb +76 -0
  245. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/httpclient/httpclient_spec_helper.rb +48 -0
  246. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/net_http/net_http_shared.rb +125 -0
  247. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/net_http/net_http_spec.rb +255 -0
  248. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/net_http/net_http_spec_helper.rb +55 -0
  249. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/net_http/real_net_http_spec.rb +20 -0
  250. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/patron/patron_spec.rb +136 -0
  251. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/patron/patron_spec_helper.rb +50 -0
  252. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/allowing_and_disabling_net_connect.rb +142 -0
  253. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/callbacks.rb +146 -0
  254. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/complex_cross_concern_behaviors.rb +36 -0
  255. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/enabling_and_disabling_webmock.rb +95 -0
  256. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/precedence_of_stubs.rb +15 -0
  257. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/request_expectations.rb +666 -0
  258. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/returning_declared_responses.rb +367 -0
  259. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/stubbing_requests.rb +447 -0
  260. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/typhoeus/typhoeus_hydra_spec.rb +74 -0
  261. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/typhoeus/typhoeus_hydra_spec_helper.rb +56 -0
  262. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/webmock_shared.rb +41 -0
  263. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/quality_spec.rb +60 -0
  264. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/spec_helper.rb +57 -0
  265. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/support/example_curl_output.txt +22 -0
  266. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/support/my_rack_app.rb +48 -0
  267. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/support/network_connection.rb +25 -0
  268. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/support/webmock_server.rb +65 -0
  269. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/errors_spec.rb +32 -0
  270. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/http_lib_adapters/http_lib_adapter_registry_spec.rb +17 -0
  271. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/http_lib_adapters/http_lib_adapter_spec.rb +12 -0
  272. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/rack_response_spec.rb +74 -0
  273. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/request_execution_verifier_spec.rb +100 -0
  274. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/request_pattern_spec.rb +479 -0
  275. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/request_registry_spec.rb +75 -0
  276. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/request_signature_spec.rb +113 -0
  277. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/request_stub_spec.rb +198 -0
  278. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/response_spec.rb +267 -0
  279. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/stub_registry_spec.rb +86 -0
  280. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/stub_request_snippet_spec.rb +95 -0
  281. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/util/hash_counter_spec.rb +39 -0
  282. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/util/hash_keys_stringifier_spec.rb +27 -0
  283. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/util/headers_spec.rb +28 -0
  284. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/util/json_spec.rb +7 -0
  285. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/util/uri_spec.rb +257 -0
  286. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/util/version_checker_spec.rb +59 -0
  287. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/webmock_spec.rb +7 -0
  288. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/test/http_request.rb +24 -0
  289. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/test/shared_test.rb +76 -0
  290. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/test/test_helper.rb +23 -0
  291. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/test/test_webmock.rb +6 -0
  292. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/webmock.gemspec +35 -0
  293. data/vendor/bundle/ruby/1.8/specifications/addressable-2.2.8.gemspec +38 -0
  294. data/vendor/bundle/ruby/1.8/specifications/crack-0.3.1.gemspec +25 -0
  295. data/vendor/bundle/ruby/1.8/specifications/rake-0.9.2.2.gemspec +33 -0
  296. data/vendor/bundle/ruby/1.8/specifications/webmock-1.8.8.gemspec +61 -0
  297. metadata +390 -0
@@ -0,0 +1,327 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+ require 'fileutils'
3
+
4
+ class TestRakeRules < Rake::TestCase
5
+ include Rake
6
+
7
+ SRCFILE = "abc.c"
8
+ SRCFILE2 = "xyz.c"
9
+ FTNFILE = "abc.f"
10
+ OBJFILE = "abc.o"
11
+ FOOFILE = "foo"
12
+ DOTFOOFILE = ".foo"
13
+
14
+ def setup
15
+ super
16
+
17
+ Task.clear
18
+ @runs = []
19
+ end
20
+
21
+ def test_multiple_rules1
22
+ create_file(FTNFILE)
23
+ delete_file(SRCFILE)
24
+ delete_file(OBJFILE)
25
+ rule(/\.o$/ => ['.c']) do @runs << :C end
26
+ rule(/\.o$/ => ['.f']) do @runs << :F end
27
+ t = Task[OBJFILE]
28
+ t.invoke
29
+ Task[OBJFILE].invoke
30
+ assert_equal [:F], @runs
31
+ end
32
+
33
+ def test_multiple_rules2
34
+ create_file(FTNFILE)
35
+ delete_file(SRCFILE)
36
+ delete_file(OBJFILE)
37
+ rule(/\.o$/ => ['.f']) do @runs << :F end
38
+ rule(/\.o$/ => ['.c']) do @runs << :C end
39
+ Task[OBJFILE].invoke
40
+ assert_equal [:F], @runs
41
+ end
42
+
43
+ def test_create_with_source
44
+ create_file(SRCFILE)
45
+ rule(/\.o$/ => ['.c']) do |t|
46
+ @runs << t.name
47
+ assert_equal OBJFILE, t.name
48
+ assert_equal SRCFILE, t.source
49
+ end
50
+ Task[OBJFILE].invoke
51
+ assert_equal [OBJFILE], @runs
52
+ end
53
+
54
+ def test_single_dependent
55
+ create_file(SRCFILE)
56
+ rule(/\.o$/ => '.c') do |t|
57
+ @runs << t.name
58
+ end
59
+ Task[OBJFILE].invoke
60
+ assert_equal [OBJFILE], @runs
61
+ end
62
+
63
+ def test_rule_can_be_created_by_string
64
+ create_file(SRCFILE)
65
+ rule '.o' => ['.c'] do |t|
66
+ @runs << t.name
67
+ end
68
+ Task[OBJFILE].invoke
69
+ assert_equal [OBJFILE], @runs
70
+ end
71
+
72
+ def test_rule_prereqs_can_be_created_by_string
73
+ create_file(SRCFILE)
74
+ rule '.o' => '.c' do |t|
75
+ @runs << t.name
76
+ end
77
+ Task[OBJFILE].invoke
78
+ assert_equal [OBJFILE], @runs
79
+ end
80
+
81
+ def test_plain_strings_as_dependents_refer_to_files
82
+ create_file(SRCFILE)
83
+ rule '.o' => SRCFILE do |t|
84
+ @runs << t.name
85
+ end
86
+ Task[OBJFILE].invoke
87
+ assert_equal [OBJFILE], @runs
88
+ end
89
+
90
+ def test_file_names_beginning_with_dot_can_be_tricked_into_referring_to_file
91
+ verbose(false) do
92
+ create_file('.foo')
93
+ rule '.o' => "./.foo" do |t|
94
+ @runs << t.name
95
+ end
96
+ Task[OBJFILE].invoke
97
+ assert_equal [OBJFILE], @runs
98
+ end
99
+ end
100
+
101
+ def test_file_names_beginning_with_dot_can_be_wrapped_in_lambda
102
+ verbose(false) do
103
+
104
+ create_file(".foo")
105
+ rule '.o' => lambda{".foo"} do |t|
106
+ @runs << "#{t.name} - #{t.source}"
107
+ end
108
+ Task[OBJFILE].invoke
109
+ assert_equal ["#{OBJFILE} - .foo"], @runs
110
+ end
111
+ end
112
+
113
+ def test_file_names_containing_percent_can_be_wrapped_in_lambda
114
+ verbose(false) do
115
+ create_file("foo%x")
116
+ rule '.o' => lambda{"foo%x"} do |t|
117
+ @runs << "#{t.name} - #{t.source}"
118
+ end
119
+ Task[OBJFILE].invoke
120
+ assert_equal ["#{OBJFILE} - foo%x"], @runs
121
+ end
122
+ end
123
+
124
+ def test_non_extension_rule_name_refers_to_file
125
+ verbose(false) do
126
+ create_file("abc.c")
127
+ rule "abc" => '.c' do |t|
128
+ @runs << t.name
129
+ end
130
+ Task["abc"].invoke
131
+ assert_equal ["abc"], @runs
132
+ end
133
+ end
134
+
135
+ def test_pathmap_automatically_applies_to_name
136
+ verbose(false) do
137
+ create_file("zzabc.c")
138
+ rule ".o" => 'zz%{x,a}n.c' do |t|
139
+ @runs << "#{t.name} - #{t.source}"
140
+ end
141
+ Task["xbc.o"].invoke
142
+ assert_equal ["xbc.o - zzabc.c"], @runs
143
+ end
144
+ end
145
+
146
+ def test_plain_strings_are_just_filenames
147
+ verbose(false) do
148
+ create_file("plainname")
149
+ rule ".o" => 'plainname' do |t|
150
+ @runs << "#{t.name} - #{t.source}"
151
+ end
152
+ Task["xbc.o"].invoke
153
+ assert_equal ["xbc.o - plainname"], @runs
154
+ end
155
+ end
156
+
157
+ def test_rule_runs_when_explicit_task_has_no_actions
158
+ create_file(SRCFILE)
159
+ create_file(SRCFILE2)
160
+ delete_file(OBJFILE)
161
+ rule '.o' => '.c' do |t|
162
+ @runs << t.source
163
+ end
164
+ file OBJFILE => [SRCFILE2]
165
+ Task[OBJFILE].invoke
166
+ assert_equal [SRCFILE], @runs
167
+ end
168
+
169
+ def test_close_matches_on_name_do_not_trigger_rule
170
+ create_file("x.c")
171
+ rule '.o' => ['.c'] do |t|
172
+ @runs << t.name
173
+ end
174
+ assert_raises(RuntimeError) { Task['x.obj'].invoke }
175
+ assert_raises(RuntimeError) { Task['x.xyo'].invoke }
176
+ end
177
+
178
+ def test_rule_rebuilds_obj_when_source_is_newer
179
+ create_timed_files(OBJFILE, SRCFILE)
180
+ rule(/\.o$/ => ['.c']) do
181
+ @runs << :RULE
182
+ end
183
+ Task[OBJFILE].invoke
184
+ assert_equal [:RULE], @runs
185
+ end
186
+
187
+ def test_rule_with_two_sources_runs_if_both_sources_are_present
188
+ create_timed_files(OBJFILE, SRCFILE, SRCFILE2)
189
+ rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
190
+ @runs << :RULE
191
+ end
192
+ Task[OBJFILE].invoke
193
+ assert_equal [:RULE], @runs
194
+ end
195
+
196
+ def test_rule_with_two_sources_but_one_missing_does_not_run
197
+ create_timed_files(OBJFILE, SRCFILE)
198
+ delete_file(SRCFILE2)
199
+ rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
200
+ @runs << :RULE
201
+ end
202
+ Task[OBJFILE].invoke
203
+ assert_equal [], @runs
204
+ end
205
+
206
+ def test_rule_with_two_sources_builds_both_sources
207
+ task 'x.aa'
208
+ task 'x.bb'
209
+ rule '.a' => '.aa' do
210
+ @runs << "A"
211
+ end
212
+ rule '.b' => '.bb' do
213
+ @runs << "B"
214
+ end
215
+ rule ".c" => ['.a', '.b'] do
216
+ @runs << "C"
217
+ end
218
+ Task["x.c"].invoke
219
+ assert_equal ["A", "B", "C"], @runs.sort
220
+ end
221
+
222
+ def test_second_rule_runs_when_first_rule_doesnt
223
+ create_timed_files(OBJFILE, SRCFILE)
224
+ delete_file(SRCFILE2)
225
+ rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
226
+ @runs << :RULE1
227
+ end
228
+ rule OBJFILE => [lambda{SRCFILE}] do
229
+ @runs << :RULE2
230
+ end
231
+ Task[OBJFILE].invoke
232
+ assert_equal [:RULE2], @runs
233
+ end
234
+
235
+ def test_second_rule_doest_run_if_first_triggers
236
+ create_timed_files(OBJFILE, SRCFILE, SRCFILE2)
237
+ rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
238
+ @runs << :RULE1
239
+ end
240
+ rule OBJFILE => [lambda{SRCFILE}] do
241
+ @runs << :RULE2
242
+ end
243
+ Task[OBJFILE].invoke
244
+ assert_equal [:RULE1], @runs
245
+ end
246
+
247
+ def test_second_rule_doest_run_if_first_triggers_with_reversed_rules
248
+ create_timed_files(OBJFILE, SRCFILE, SRCFILE2)
249
+ rule OBJFILE => [lambda{SRCFILE}] do
250
+ @runs << :RULE1
251
+ end
252
+ rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
253
+ @runs << :RULE2
254
+ end
255
+ Task[OBJFILE].invoke
256
+ assert_equal [:RULE1], @runs
257
+ end
258
+
259
+ def test_rule_with_proc_dependent_will_trigger
260
+ mkdir_p("src/jw")
261
+ create_file("src/jw/X.java")
262
+ rule %r(classes/.*\.class) => [
263
+ proc { |fn| fn.pathmap("%{classes,src}d/%n.java") }
264
+ ] do |task|
265
+ assert_equal task.name, 'classes/jw/X.class'
266
+ assert_equal task.source, 'src/jw/X.java'
267
+ @runs << :RULE
268
+ end
269
+ Task['classes/jw/X.class'].invoke
270
+ assert_equal [:RULE], @runs
271
+ ensure
272
+ rm_r("src", :verbose=>false) rescue nil
273
+ end
274
+
275
+ def test_proc_returning_lists_are_flattened_into_prereqs
276
+ ran = false
277
+ mkdir_p("flatten")
278
+ create_file("flatten/a.txt")
279
+ task 'flatten/b.data' do |t|
280
+ ran = true
281
+ touch t.name, :verbose => false
282
+ end
283
+ rule '.html' =>
284
+ proc { |fn|
285
+ [
286
+ fn.ext("txt"),
287
+ "flatten/b.data"
288
+ ]
289
+ } do |task|
290
+ end
291
+ Task['flatten/a.html'].invoke
292
+ assert ran, "Should have triggered flattened dependency"
293
+ ensure
294
+ rm_r("flatten", :verbose=>false) rescue nil
295
+ end
296
+
297
+ def test_recursive_rules_will_work_as_long_as_they_terminate
298
+ actions = []
299
+ create_file("abc.xml")
300
+ rule '.y' => '.xml' do actions << 'y' end
301
+ rule '.c' => '.y' do actions << 'c'end
302
+ rule '.o' => '.c' do actions << 'o'end
303
+ rule '.exe' => '.o' do actions << 'exe'end
304
+ Task["abc.exe"].invoke
305
+ assert_equal ['y', 'c', 'o', 'exe'], actions
306
+ end
307
+
308
+ def test_recursive_rules_that_dont_terminate_will_overflow
309
+ create_file("a.a")
310
+ prev = 'a'
311
+ ('b'..'z').each do |letter|
312
+ rule ".#{letter}" => ".#{prev}" do |t| puts "#{t.name}" end
313
+ prev = letter
314
+ end
315
+ ex = assert_raises(Rake::RuleRecursionOverflowError) {
316
+ Task["a.z"].invoke
317
+ }
318
+ assert_match(/a\.z => a.y/, ex.message)
319
+ end
320
+
321
+ def test_rules_with_bad_dependents_will_fail
322
+ rule "a" => [ 1 ] do |t| puts t.name end
323
+ assert_raises(RuntimeError) do Task['a'].invoke end
324
+ end
325
+
326
+ end
327
+
@@ -0,0 +1,267 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+ require 'fileutils'
3
+
4
+ class TestRakeTask < Rake::TestCase
5
+ include Rake
6
+
7
+ def setup
8
+ super
9
+
10
+ Task.clear
11
+ Rake::TaskManager.record_task_metadata = true
12
+ end
13
+
14
+ def teardown
15
+ Rake::TaskManager.record_task_metadata = false
16
+
17
+ super
18
+ end
19
+
20
+ def test_create
21
+ arg = nil
22
+ t = task(:name) { |task| arg = task; 1234 }
23
+ assert_equal "name", t.name
24
+ assert_equal [], t.prerequisites
25
+ assert t.needed?
26
+ t.execute(0)
27
+ assert_equal t, arg
28
+ assert_nil t.source
29
+ assert_equal [], t.sources
30
+ assert_equal 1, t.locations.size
31
+ assert_match(/#{Regexp.quote(__FILE__)}/, t.locations.first)
32
+ end
33
+
34
+ def test_inspect
35
+ # t = task(:foo, :needs => [:bar, :baz])
36
+ t = task(:foo => [:bar, :baz])
37
+ assert_equal "<Rake::Task foo => [bar, baz]>", t.inspect
38
+ end
39
+
40
+ def test_invoke
41
+ runlist = []
42
+ t1 = task(:t1 => [:t2, :t3]) { |t| runlist << t.name; 3321 }
43
+ t2 = task(:t2) { |t| runlist << t.name }
44
+ t3 = task(:t3) { |t| runlist << t.name }
45
+ assert_equal ["t2", "t3"], t1.prerequisites
46
+ t1.invoke
47
+ assert_equal ["t2", "t3", "t1"], runlist
48
+ end
49
+
50
+ def test_invoke_with_circular_dependencies
51
+ runlist = []
52
+ t1 = task(:t1 => [:t2]) { |t| runlist << t.name; 3321 }
53
+ t2 = task(:t2 => [:t1]) { |t| runlist << t.name }
54
+ assert_equal ["t2"], t1.prerequisites
55
+ assert_equal ["t1"], t2.prerequisites
56
+ ex = assert_raises RuntimeError do
57
+ t1.invoke
58
+ end
59
+ assert_match(/circular dependency/i, ex.message)
60
+ assert_match(/t1 => t2 => t1/, ex.message)
61
+ end
62
+
63
+ def test_dry_run_prevents_actions
64
+ Rake.application.options.dryrun = true
65
+ runlist = []
66
+ t1 = task(:t1) { |t| runlist << t.name; 3321 }
67
+ _, err = capture_io { t1.invoke }
68
+ assert_match(/execute .*t1/i, err)
69
+ assert_match(/dry run/i, err)
70
+ refute_match(/invoke/i, err)
71
+ assert_equal [], runlist
72
+ ensure
73
+ Rake.application.options.dryrun = false
74
+ end
75
+
76
+ def test_tasks_can_be_traced
77
+ Rake.application.options.trace = true
78
+ t1 = task(:t1)
79
+ _, err = capture_io {
80
+ t1.invoke
81
+ }
82
+ assert_match(/invoke t1/i, err)
83
+ assert_match(/execute t1/i, err)
84
+ ensure
85
+ Rake.application.options.trace = false
86
+ end
87
+
88
+ def test_no_double_invoke
89
+ runlist = []
90
+ t1 = task(:t1 => [:t2, :t3]) { |t| runlist << t.name; 3321 }
91
+ t2 = task(:t2 => [:t3]) { |t| runlist << t.name }
92
+ t3 = task(:t3) { |t| runlist << t.name }
93
+ t1.invoke
94
+ assert_equal ["t3", "t2", "t1"], runlist
95
+ end
96
+
97
+ def test_can_double_invoke_with_reenable
98
+ runlist = []
99
+ t1 = task(:t1) { |t| runlist << t.name }
100
+ t1.invoke
101
+ t1.reenable
102
+ t1.invoke
103
+ assert_equal ["t1", "t1"], runlist
104
+ end
105
+
106
+ def test_clear
107
+ t = task("t" => "a") { }
108
+ t.clear
109
+ assert t.prerequisites.empty?, "prerequisites should be empty"
110
+ assert t.actions.empty?, "actions should be empty"
111
+ end
112
+
113
+ def test_clear_prerequisites
114
+ t = task("t" => ["a", "b"])
115
+ assert_equal ['a', 'b'], t.prerequisites
116
+ t.clear_prerequisites
117
+ assert_equal [], t.prerequisites
118
+ end
119
+
120
+ def test_clear_actions
121
+ t = task("t") { }
122
+ t.clear_actions
123
+ assert t.actions.empty?, "actions should be empty"
124
+ end
125
+
126
+ def test_find
127
+ task :tfind
128
+ assert_equal "tfind", Task[:tfind].name
129
+ ex = assert_raises(RuntimeError) { Task[:leaves] }
130
+ assert_equal "Don't know how to build task 'leaves'", ex.message
131
+ end
132
+
133
+ def test_defined
134
+ assert ! Task.task_defined?(:a)
135
+ task :a
136
+ assert Task.task_defined?(:a)
137
+ end
138
+
139
+ def test_multi_invocations
140
+ runs = []
141
+ p = proc do |t| runs << t.name end
142
+ task({:t1=>[:t2,:t3]}, &p)
143
+ task({:t2=>[:t3]}, &p)
144
+ task(:t3, &p)
145
+ Task[:t1].invoke
146
+ assert_equal ["t1", "t2", "t3"], runs.sort
147
+ end
148
+
149
+ def test_task_list
150
+ task :t2
151
+ task :t1 => [:t2]
152
+ assert_equal ["t1", "t2"], Task.tasks.collect {|t| t.name}
153
+ end
154
+
155
+ def test_task_gives_name_on_to_s
156
+ task :abc
157
+ assert_equal "abc", Task[:abc].to_s
158
+ end
159
+
160
+ def test_symbols_can_be_prerequisites
161
+ task :a => :b
162
+ assert_equal ["b"], Task[:a].prerequisites
163
+ end
164
+
165
+ def test_strings_can_be_prerequisites
166
+ task :a => "b"
167
+ assert_equal ["b"], Task[:a].prerequisites
168
+ end
169
+
170
+ def test_arrays_can_be_prerequisites
171
+ task :a => ["b", "c"]
172
+ assert_equal ["b", "c"], Task[:a].prerequisites
173
+ end
174
+
175
+ def test_filelists_can_be_prerequisites
176
+ task :a => FileList.new.include("b", "c")
177
+ assert_equal ["b", "c"], Task[:a].prerequisites
178
+ end
179
+
180
+ def test_prerequiste_tasks_returns_tasks_not_strings
181
+ a = task :a => ["b", "c"]
182
+ b = task :b
183
+ c = task :c
184
+ assert_equal [b, c], a.prerequisite_tasks
185
+ end
186
+
187
+ def test_prerequiste_tasks_fails_if_prerequisites_are_undefined
188
+ a = task :a => ["b", "c"]
189
+ b = task :b
190
+ assert_raises(RuntimeError) do
191
+ a.prerequisite_tasks
192
+ end
193
+ end
194
+
195
+ def test_prerequiste_tasks_honors_namespaces
196
+ a = b = nil
197
+ namespace "X" do
198
+ a = task :a => ["b", "c"]
199
+ b = task :b
200
+ end
201
+ c = task :c
202
+
203
+ assert_equal [b, c], a.prerequisite_tasks
204
+ end
205
+
206
+ def test_timestamp_returns_now_if_all_prereqs_have_no_times
207
+ a = task :a => ["b", "c"]
208
+ b = task :b
209
+ c = task :c
210
+
211
+ assert_in_delta Time.now, a.timestamp, 0.1, 'computer too slow?'
212
+ end
213
+
214
+ def test_timestamp_returns_latest_prereq_timestamp
215
+ a = task :a => ["b", "c"]
216
+ b = task :b
217
+ c = task :c
218
+
219
+ now = Time.now
220
+ def b.timestamp() Time.now + 10 end
221
+ def c.timestamp() Time.now + 5 end
222
+
223
+ assert_in_delta now + 10, a.timestamp, 0.1, 'computer too slow?'
224
+ end
225
+
226
+ def test_investigation_output
227
+ t1 = task(:t1 => [:t2, :t3]) { |t| runlist << t.name; 3321 }
228
+ task(:t2)
229
+ task(:t3)
230
+ out = t1.investigation
231
+ assert_match(/class:\s*Rake::Task/, out)
232
+ assert_match(/needed:\s*true/, out)
233
+ assert_match(/pre-requisites:\s*--t[23]/, out)
234
+ end
235
+
236
+
237
+ def test_extended_comments
238
+ desc %{
239
+ This is a comment.
240
+
241
+ And this is the extended comment.
242
+ name -- Name of task to execute.
243
+ rev -- Software revision to use.
244
+ }
245
+ t = task(:t, :name, :rev)
246
+ assert_equal "[name,rev]", t.arg_description
247
+ assert_equal "This is a comment.", t.comment
248
+ assert_match(/^\s*name -- Name/, t.full_comment)
249
+ assert_match(/^\s*rev -- Software/, t.full_comment)
250
+ assert_match(/\A\s*This is a comment\.$/, t.full_comment)
251
+ end
252
+
253
+ def test_multiple_comments
254
+ desc "line one"
255
+ t = task(:t)
256
+ desc "line two"
257
+ task(:t)
258
+ assert_equal "line one / line two", t.comment
259
+ end
260
+
261
+ def test_settable_comments
262
+ t = task(:t)
263
+ t.comment = "HI"
264
+ assert_equal "HI", t.comment
265
+ end
266
+ end
267
+
@@ -0,0 +1,103 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakeTaskArgumentParsing < Rake::TestCase
4
+ def setup
5
+ super
6
+
7
+ @app = Rake::Application.new
8
+ end
9
+
10
+ def test_name_only
11
+ name, args = @app.parse_task_string("name")
12
+ assert_equal "name", name
13
+ assert_equal [], args
14
+ end
15
+
16
+ def test_empty_args
17
+ name, args = @app.parse_task_string("name[]")
18
+ assert_equal "name", name
19
+ assert_equal [], args
20
+ end
21
+
22
+ def test_one_argument
23
+ name, args = @app.parse_task_string("name[one]")
24
+ assert_equal "name", name
25
+ assert_equal ["one"], args
26
+ end
27
+
28
+ def test_two_arguments
29
+ name, args = @app.parse_task_string("name[one,two]")
30
+ assert_equal "name", name
31
+ assert_equal ["one", "two"], args
32
+ end
33
+
34
+ def test_can_handle_spaces_between_args
35
+ name, args = @app.parse_task_string("name[one, two,\tthree , \tfour]")
36
+ assert_equal "name", name
37
+ assert_equal ["one", "two", "three", "four"], args
38
+ end
39
+
40
+ def test_keeps_embedded_spaces
41
+ name, args = @app.parse_task_string("name[a one ana, two]")
42
+ assert_equal "name", name
43
+ assert_equal ["a one ana", "two"], args
44
+ end
45
+
46
+ def test_terminal_width_using_env
47
+ app = Rake::Application.new
48
+ app.terminal_columns = 1234
49
+
50
+ assert_equal 1234, app.terminal_width
51
+ end
52
+
53
+ def test_terminal_width_using_stty
54
+ def @app.unix?() true end
55
+ def @app.dynamic_width_stty() 1235 end
56
+ def @app.dynamic_width_tput() 0 end
57
+
58
+ assert_equal 1235, @app.terminal_width
59
+ end
60
+
61
+ def test_terminal_width_using_tput
62
+ def @app.unix?() true end
63
+ def @app.dynamic_width_stty() 0 end
64
+ def @app.dynamic_width_tput() 1236 end
65
+
66
+ assert_equal 1236, @app.terminal_width
67
+ end
68
+
69
+ def test_terminal_width_using_hardcoded_80
70
+ def @app.unix?() false end
71
+
72
+ assert_equal 80, @app.terminal_width
73
+ end
74
+
75
+ def test_terminal_width_with_failure
76
+ def @app.unix?() raise end
77
+
78
+ assert_equal 80, @app.terminal_width
79
+ end
80
+
81
+ def test_no_rakeopt
82
+ ARGV << '--trace'
83
+ app = Rake::Application.new
84
+ app.init
85
+ assert !app.options.silent
86
+ end
87
+
88
+ def test_rakeopt_with_blank_options
89
+ ARGV << '--trace'
90
+ app = Rake::Application.new
91
+ app.init
92
+ assert !app.options.silent
93
+ end
94
+
95
+ def test_rakeopt_with_silent_options
96
+ ENV['RAKEOPT'] = '-s'
97
+ app = Rake::Application.new
98
+
99
+ app.init
100
+
101
+ assert app.options.silent
102
+ end
103
+ end