benschwarz-smoke 0.5.6 → 0.5.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (236) hide show
  1. data/Gemfile +10 -0
  2. data/VERSION.yml +1 -1
  3. data/bin/edit_json.rb +3 -0
  4. data/bin/restclient +3 -0
  5. data/examples/web_search_joined.rb +25 -0
  6. data/examples/yql_web_search.rb +11 -0
  7. data/lib/smoke/cache.rb +0 -3
  8. data/lib/smoke.rb +5 -5
  9. data/vendor/gems/cache/crack-0.1.1.gem +0 -0
  10. data/vendor/gems/cache/fakeweb-1.2.5.gem +0 -0
  11. data/vendor/gems/cache/json-1.1.3.gem +0 -0
  12. data/vendor/gems/cache/rest-client-1.0.1.gem +0 -0
  13. data/vendor/gems/cache/simple-rss-1.2.gem +0 -0
  14. data/vendor/gems/cache/wycats-moneta-0.6.0.gem +0 -0
  15. data/vendor/gems/environment.rb +83 -0
  16. data/vendor/{crack-0.1.1 → gems/gems/crack-0.1.1}/LICENSE +0 -0
  17. data/vendor/{crack-0.1.1 → gems/gems/crack-0.1.1}/README.rdoc +0 -0
  18. data/vendor/{crack-0.1.1 → gems/gems/crack-0.1.1}/VERSION.yml +0 -0
  19. data/vendor/{crack-0.1.1 → gems/gems/crack-0.1.1}/lib/crack/core_extensions.rb +0 -0
  20. data/vendor/{crack-0.1.1 → gems/gems/crack-0.1.1}/lib/crack/json.rb +0 -0
  21. data/vendor/{crack-0.1.1 → gems/gems/crack-0.1.1}/lib/crack/xml.rb +0 -0
  22. data/vendor/{crack-0.1.1 → gems/gems/crack-0.1.1}/lib/crack.rb +0 -0
  23. data/vendor/{crack-0.1.1 → gems/gems/crack-0.1.1}/test/crack_test.rb +0 -0
  24. data/vendor/{crack-0.1.1 → gems/gems/crack-0.1.1}/test/json_test.rb +0 -0
  25. data/vendor/{crack-0.1.1 → gems/gems/crack-0.1.1}/test/test_helper.rb +0 -0
  26. data/vendor/{crack-0.1.1 → gems/gems/crack-0.1.1}/test/xml_test.rb +0 -0
  27. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/CHANGELOG +0 -0
  28. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/LICENSE.txt +0 -0
  29. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/README.rdoc +0 -0
  30. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/Rakefile +0 -0
  31. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/lib/fake_web/ext/net_http.rb +0 -0
  32. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/lib/fake_web/registry.rb +0 -0
  33. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/lib/fake_web/responder.rb +0 -0
  34. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/lib/fake_web/response.rb +0 -0
  35. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/lib/fake_web/stub_socket.rb +0 -0
  36. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/lib/fake_web/utility.rb +0 -0
  37. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/lib/fake_web.rb +0 -0
  38. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/lib/fakeweb.rb +0 -0
  39. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/fixtures/google_response_from_curl +0 -0
  40. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/fixtures/google_response_with_transfer_encoding +0 -0
  41. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/fixtures/google_response_without_transfer_encoding +0 -0
  42. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/fixtures/test_example.txt +0 -0
  43. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/fixtures/test_txt_file +0 -0
  44. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/test_allow_net_connect.rb +0 -0
  45. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/test_deprecations.rb +0 -0
  46. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/test_fake_authentication.rb +0 -0
  47. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/test_fake_web.rb +0 -0
  48. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/test_fake_web_open_uri.rb +0 -0
  49. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/test_helper.rb +0 -0
  50. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/test_missing_open_uri.rb +0 -0
  51. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/test_precedence.rb +0 -0
  52. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/test_query_string.rb +0 -0
  53. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/test_regexes.rb +0 -0
  54. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/test_response_headers.rb +0 -0
  55. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/test_trailing_slashes.rb +0 -0
  56. data/vendor/{fakeweb-1.2.5 → gems/gems/fakeweb-1.2.5}/test/test_utility.rb +0 -0
  57. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/CHANGES +0 -0
  58. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/GPL +0 -0
  59. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/README +0 -0
  60. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/RUBY +0 -0
  61. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/Rakefile +0 -0
  62. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/TODO +0 -0
  63. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/VERSION +0 -0
  64. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/benchmarks/benchmark.txt +0 -0
  65. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/benchmarks/benchmark_generator.rb +0 -0
  66. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/benchmarks/benchmark_parser.rb +0 -0
  67. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/benchmarks/benchmark_rails.rb +0 -0
  68. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/bin/edit_json.rb +0 -0
  69. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/bin/prettify_json.rb +0 -0
  70. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/data/example.json +0 -0
  71. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/data/index.html +0 -0
  72. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/data/prototype.js +0 -0
  73. data/vendor/gems/gems/json-1.1.3/ext/json/ext/generator/Makefile +150 -0
  74. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/ext/json/ext/generator/extconf.rb +0 -0
  75. data/vendor/gems/gems/json-1.1.3/ext/json/ext/generator/generator.bundle +0 -0
  76. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/ext/json/ext/generator/generator.c +0 -0
  77. data/vendor/gems/gems/json-1.1.3/ext/json/ext/generator/generator.o +0 -0
  78. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/ext/json/ext/generator/unicode.c +0 -0
  79. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/ext/json/ext/generator/unicode.h +0 -0
  80. data/vendor/gems/gems/json-1.1.3/ext/json/ext/generator/unicode.o +0 -0
  81. data/vendor/gems/gems/json-1.1.3/ext/json/ext/generator.bundle +0 -0
  82. data/vendor/gems/gems/json-1.1.3/ext/json/ext/parser/Makefile +150 -0
  83. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/ext/json/ext/parser/extconf.rb +0 -0
  84. data/vendor/gems/gems/json-1.1.3/ext/json/ext/parser/parser.bundle +0 -0
  85. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/ext/json/ext/parser/parser.c +0 -0
  86. data/vendor/gems/gems/json-1.1.3/ext/json/ext/parser/parser.o +0 -0
  87. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/ext/json/ext/parser/parser.rl +0 -0
  88. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/ext/json/ext/parser/unicode.c +0 -0
  89. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/ext/json/ext/parser/unicode.h +0 -0
  90. data/vendor/gems/gems/json-1.1.3/ext/json/ext/parser/unicode.o +0 -0
  91. data/vendor/gems/gems/json-1.1.3/ext/json/ext/parser.bundle +0 -0
  92. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/install.rb +0 -0
  93. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/Array.xpm +0 -0
  94. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/FalseClass.xpm +0 -0
  95. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/Hash.xpm +0 -0
  96. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/Key.xpm +0 -0
  97. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/NilClass.xpm +0 -0
  98. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/Numeric.xpm +0 -0
  99. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/String.xpm +0 -0
  100. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/TrueClass.xpm +0 -0
  101. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/add/core.rb +0 -0
  102. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/add/rails.rb +0 -0
  103. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/common.rb +0 -0
  104. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/editor.rb +0 -0
  105. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/ext.rb +0 -0
  106. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/json.xpm +0 -0
  107. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/pure/generator.rb +0 -0
  108. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/pure/parser.rb +0 -0
  109. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/pure.rb +0 -0
  110. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json/version.rb +0 -0
  111. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/lib/json.rb +0 -0
  112. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail1.json +0 -0
  113. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail10.json +0 -0
  114. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail11.json +0 -0
  115. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail12.json +0 -0
  116. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail13.json +0 -0
  117. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail14.json +0 -0
  118. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail18.json +0 -0
  119. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail19.json +0 -0
  120. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail2.json +0 -0
  121. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail20.json +0 -0
  122. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail21.json +0 -0
  123. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail22.json +0 -0
  124. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail23.json +0 -0
  125. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail24.json +0 -0
  126. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail25.json +0 -0
  127. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail27.json +0 -0
  128. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail28.json +0 -0
  129. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail3.json +0 -0
  130. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail4.json +0 -0
  131. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail5.json +0 -0
  132. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail6.json +0 -0
  133. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail7.json +0 -0
  134. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail8.json +0 -0
  135. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/fail9.json +0 -0
  136. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/pass1.json +0 -0
  137. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/pass15.json +0 -0
  138. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/pass16.json +0 -0
  139. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/pass17.json +0 -0
  140. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/pass2.json +0 -0
  141. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/pass26.json +0 -0
  142. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/fixtures/pass3.json +0 -0
  143. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/runner.rb +0 -0
  144. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/test_json.rb +0 -0
  145. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/test_json_addition.rb +0 -0
  146. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/test_json_fixtures.rb +0 -0
  147. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/test_json_generate.rb +0 -0
  148. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/test_json_rails.rb +0 -0
  149. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tests/test_json_unicode.rb +0 -0
  150. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tools/fuzz.rb +0 -0
  151. data/vendor/{json-1.1.3 → gems/gems/json-1.1.3}/tools/server.rb +0 -0
  152. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/README.rdoc +0 -0
  153. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/Rakefile +0 -0
  154. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/bin/restclient +0 -0
  155. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/lib/rest_client.rb +0 -0
  156. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/lib/restclient/exceptions.rb +0 -0
  157. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/lib/restclient/mixin/response.rb +0 -0
  158. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/lib/restclient/raw_response.rb +0 -0
  159. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/lib/restclient/request.rb +0 -0
  160. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/lib/restclient/resource.rb +0 -0
  161. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/lib/restclient/response.rb +0 -0
  162. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/lib/restclient.rb +0 -0
  163. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/spec/base.rb +0 -0
  164. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/spec/exceptions_spec.rb +0 -0
  165. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/spec/mixin/response_spec.rb +0 -0
  166. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/spec/raw_response_spec.rb +0 -0
  167. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/spec/request_spec.rb +0 -0
  168. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/spec/resource_spec.rb +0 -0
  169. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/spec/response_spec.rb +0 -0
  170. data/vendor/{rest-client-1.0.1 → gems/gems/rest-client-1.0.1}/spec/restclient_spec.rb +0 -0
  171. data/vendor/{simple-rss-1.2 → gems/gems/simple-rss-1.2}/LICENSE +0 -0
  172. data/vendor/{simple-rss-1.2 → gems/gems/simple-rss-1.2}/README +0 -0
  173. data/vendor/{simple-rss-1.2 → gems/gems/simple-rss-1.2}/Rakefile +0 -0
  174. data/vendor/{simple-rss-1.2 → gems/gems/simple-rss-1.2}/lib/simple-rss.rb +0 -0
  175. data/vendor/{simple-rss-1.2 → gems/gems/simple-rss-1.2}/test/base/base_test.rb +0 -0
  176. data/vendor/{simple-rss-1.2 → gems/gems/simple-rss-1.2}/test/data/atom.xml +0 -0
  177. data/vendor/{simple-rss-1.2 → gems/gems/simple-rss-1.2}/test/data/not-rss.xml +0 -0
  178. data/vendor/{simple-rss-1.2 → gems/gems/simple-rss-1.2}/test/data/rss09.rdf +0 -0
  179. data/vendor/{simple-rss-1.2 → gems/gems/simple-rss-1.2}/test/data/rss20.xml +0 -0
  180. data/vendor/{simple-rss-1.2 → gems/gems/simple-rss-1.2}/test/test_helper.rb +0 -0
  181. data/vendor/{moneta → gems/gems/wycats-moneta-0.6.0}/LICENSE +0 -0
  182. data/vendor/{moneta → gems/gems/wycats-moneta-0.6.0}/README +1 -2
  183. data/vendor/{moneta → gems/gems/wycats-moneta-0.6.0}/Rakefile +0 -0
  184. data/vendor/{moneta → gems/gems/wycats-moneta-0.6.0}/TODO +0 -0
  185. data/vendor/{moneta → gems/gems/wycats-moneta-0.6.0}/lib/moneta/datamapper.rb +0 -0
  186. data/vendor/{moneta → gems/gems/wycats-moneta-0.6.0}/lib/moneta/file.rb +1 -1
  187. data/vendor/{moneta → gems/gems/wycats-moneta-0.6.0}/lib/moneta/memcache.rb +2 -3
  188. data/vendor/{moneta → gems/gems/wycats-moneta-0.6.0}/lib/moneta/memory.rb +0 -0
  189. data/vendor/{moneta → gems/gems/wycats-moneta-0.6.0}/lib/moneta/xattr.rb +0 -0
  190. data/vendor/{moneta → gems/gems/wycats-moneta-0.6.0}/lib/moneta.rb +0 -0
  191. data/vendor/gems/specifications/crack-0.1.1.gemspec +29 -0
  192. data/vendor/gems/specifications/fakeweb-1.2.5.gemspec +34 -0
  193. data/vendor/gems/specifications/json-1.1.3.gemspec +33 -0
  194. data/vendor/gems/specifications/rest-client-1.0.1.gemspec +30 -0
  195. data/vendor/gems/specifications/simple-rss-1.2.gemspec +27 -0
  196. data/vendor/{moneta/moneta.gemspec → gems/specifications/wycats-moneta-0.6.0.gemspec} +2 -5
  197. metadata +217 -290
  198. data/vendor/dependencies/README.markdown +0 -113
  199. data/vendor/dependencies/Rakefile +0 -5
  200. data/vendor/dependencies/bin/dep +0 -83
  201. data/vendor/dependencies/dependencies.gemspec +0 -15
  202. data/vendor/dependencies/dependencies.gemspec.erb +0 -27
  203. data/vendor/dependencies/lib/dependencies/dep.rb +0 -99
  204. data/vendor/dependencies/lib/dependencies.rb +0 -5
  205. data/vendor/dependencies/test/dependencies_test.rb +0 -228
  206. data/vendor/dependencies/test/foobaz-0.3.gem +0 -0
  207. data/vendor/moneta/benchmarks/various.rb +0 -234
  208. data/vendor/moneta/lib/moneta/basic_file.rb +0 -111
  209. data/vendor/moneta/lib/moneta/berkeley.rb +0 -53
  210. data/vendor/moneta/lib/moneta/couch.rb +0 -63
  211. data/vendor/moneta/lib/moneta/lmc.rb +0 -52
  212. data/vendor/moneta/lib/moneta/mongodb.rb +0 -58
  213. data/vendor/moneta/lib/moneta/redis.rb +0 -49
  214. data/vendor/moneta/lib/moneta/rufus.rb +0 -41
  215. data/vendor/moneta/lib/moneta/s3.rb +0 -162
  216. data/vendor/moneta/lib/moneta/sdbm.rb +0 -33
  217. data/vendor/moneta/lib/moneta/tyrant.rb +0 -58
  218. data/vendor/moneta/script/destroy +0 -14
  219. data/vendor/moneta/script/generate +0 -14
  220. data/vendor/moneta/spec/moneta_basic_file_spec.rb +0 -50
  221. data/vendor/moneta/spec/moneta_berkeley_spec.rb +0 -20
  222. data/vendor/moneta/spec/moneta_couch_spec.rb +0 -22
  223. data/vendor/moneta/spec/moneta_datamapper_spec.rb +0 -79
  224. data/vendor/moneta/spec/moneta_file_spec.rb +0 -21
  225. data/vendor/moneta/spec/moneta_lmc_spec.rb +0 -24
  226. data/vendor/moneta/spec/moneta_memcache_spec.rb +0 -16
  227. data/vendor/moneta/spec/moneta_memory_spec.rb +0 -12
  228. data/vendor/moneta/spec/moneta_mongodb_spec.rb +0 -16
  229. data/vendor/moneta/spec/moneta_redis_spec.rb +0 -16
  230. data/vendor/moneta/spec/moneta_rufus_spec.rb +0 -15
  231. data/vendor/moneta/spec/moneta_s3_spec.rb +0 -19
  232. data/vendor/moneta/spec/moneta_sdbm_spec.rb +0 -21
  233. data/vendor/moneta/spec/moneta_tyrant_spec.rb +0 -15
  234. data/vendor/moneta/spec/moneta_xattr_spec.rb +0 -21
  235. data/vendor/moneta/spec/shared.rb +0 -122
  236. data/vendor/moneta/spec/spec_helper.rb +0 -7
@@ -1,234 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'benchmark'
3
- require "rubygems"
4
-
5
- # Hacked arrays
6
- # Array modifications
7
- class HackedArray < Array
8
- # Random keys/values
9
- attr_reader :keys_used
10
- def random_key(no_repeat = true, clean_keys_used = false)
11
- @keys_used = [] if clean_keys_used or @keys_used.nil? or @keys_used.size == self.size
12
- begin key = rand(self.size) end while no_repeat and @keys_used.include?(key)
13
- @keys_used << key
14
- return key
15
- end
16
-
17
- def random_value(no_repeat = true, clean_keys_used = false)
18
- values_at(random_key(no_repeat, clean_keys_used)).first
19
- end
20
- alias_method :random, :random_value
21
-
22
- def random_subset(n, no_repeat = true, clean_keys_used = true)
23
- (1..n).map{|x| random_value(no_repeat, (clean_keys_used && x == 1))}
24
- end
25
-
26
- def self.new_from_string(str)
27
- res = new
28
- str.split('').each{|x| res << x}
29
- res
30
- end
31
- end
32
-
33
- require "../lib/moneta"
34
- require "moneta/memcache"
35
- require "moneta/tyrant"
36
- require "moneta/berkeley"
37
-
38
-
39
- stores = {
40
- 'Redis' => { },
41
- 'Memcached' => { :class_name => "Memcache", :server => "localhost:11211", :namespace => 'moneta_bench' },
42
- 'Tyrant' => { :host => 'localhost', :port => 1978 }, # Breaks for any n > 50 on my machine
43
- 'MongoDB' => { :host => 'localhost', :port => 27017, :db => 'moneta_bench' },
44
- 'LMC' => { :filename => "bench.lmc" },
45
- 'Berkeley' => { :file => "bench.bdb" },
46
- 'Rufus' => {:file => "bench.rufus"},
47
- 'Memory' => { },
48
- 'DataMapper' => { :setup => "sqlite3::memory:" },
49
- # 'Couch' => {:db => "couch_test"},
50
- 'TC (Tyrant)' =>
51
- {:name => "test.tieredtyrant", :backup => Moneta::Tyrant.new(:host => "localhost", :port => 1978), :class_name => "TieredCache"},
52
- 'TC (Memcached)' =>
53
- {:name => "test.tieredmc", :backup => Moneta::Memcache.new(:server => "localhost:11211", :namespace => "various"), :class_name => "TieredCache"}
54
- }
55
-
56
- stats, keys, data, errors, summary = {}, [], HackedArray.new, HackedArray.new, HackedArray.new
57
- dict = HackedArray.new_from_string 'abcdefghijklnopq123456789'
58
- n = ARGV[0] ? ARGV[0].to_i : 100
59
- m = ARGV[1] ? ARGV[1].to_i : 10
60
- c = ARGV[2] ? ARGV[2].to_i : 3
61
- vlen_min, vlen_max, vlen_ttl, vlen_avg = 99999, 0, 0, 0
62
- ds = dict.size
63
-
64
- puts "======================================================================"
65
- puts "Comparison of write/read between Moneta Stores"
66
- puts "======================================================================"
67
-
68
- puts "Data loading..."
69
- n.times do |x|
70
- klen = 6 + rand(3)
71
- vlen = (rand(m) + 1) * (rand(m) + rand(m) + 1)
72
- key = dict.random_subset(klen).join
73
- keys << key
74
- value = key * vlen
75
- data << [key, value]
76
- vs = value.size
77
- vlen_min = vs if vs < vlen_min
78
- vlen_max = vs if vs > vlen_max
79
- vlen_ttl = vlen_ttl + vs
80
- end
81
- vlen_avg = vlen_ttl / n
82
-
83
- puts "----------------------------------------------------------------------"
84
- #puts data.inspect
85
- puts "Total keys: #{keys.size}, unique: #{keys.uniq.size}"
86
- #puts keys.sort.inspect
87
-
88
- puts "----------------------------------------------------------------------"
89
- puts " Minimum Maximum Total Average xps "
90
- puts "----------------------------------------------------------------------"
91
- puts "Lenght Stats % 10i % 10i % 10i % 10i " % [vlen_min, vlen_max, vlen_ttl, vlen_avg]
92
-
93
- module Moneta
94
- class TieredCache
95
- include Moneta::Defaults
96
-
97
- def initialize(options)
98
- @bdb = Moneta::Berkeley.new(:file => File.join(File.dirname(__FILE__), options[:name]))
99
- @mc = options[:backup]
100
- # @mc = Moneta::Tyrant.new(:host => "localhost", :port => 1978)
101
- # @mc = Moneta::Memcache.new(:server => "localhost:11211", :namespace => options[:name])
102
- end
103
-
104
- def [](key)
105
- val = @bdb[key]
106
- unless val
107
- @bdb[key] = val if val = @mc[key]
108
- end
109
- val
110
- end
111
-
112
- def []=(key, val)
113
- @bdb[key] = val
114
- @mc[key] = val
115
- end
116
-
117
- def store(key, value, options = {})
118
- @bdb.store(key, value, options)
119
- @mc.store(key, value, options)
120
- end
121
-
122
- def delete(key)
123
- bdb_val = @bdb.delete(key)
124
- mc_val = @mc.delete(key)
125
- bdb_val || mc_val
126
- end
127
-
128
- def clear
129
- @mc.clear
130
- @bdb.clear
131
- end
132
-
133
- def update_key(name, options)
134
- @mc.update_key(name, options)
135
- @bdb.update_key(name, options)
136
- end
137
-
138
- def key?(key)
139
- @bdb.key?(key) || @mc.key?(key)
140
- end
141
- end
142
- end
143
-
144
- stores.each do |name, options|
145
- cname = options.delete(:class_name) || name
146
- puts "======================================================================"
147
- puts name
148
- puts "----------------------------------------------------------------------"
149
- begin
150
- require "../lib/moneta/#{cname.downcase}"
151
- rescue LoadError
152
- end
153
- klass = Moneta.const_get(cname)
154
- @cache = klass.new(options)
155
- stats[name] = {
156
- :writes => [],
157
- :reads => [],
158
- :totals => [],
159
- :avgs => [],
160
- }
161
- c.times do |round|
162
- @cache.clear
163
- print "[#{round + 1}] R"
164
- m1 = Benchmark.measure do
165
- n.times do
166
- key, value = data.random
167
-
168
- @cache[key] = value
169
- end
170
- end
171
- stats[name][:writes] << m1.real
172
- print "W "
173
- m2 = Benchmark.measure do
174
- n.times do
175
- key, value = data.random
176
- res = @cache[key]
177
- errors << [name, key, value, res] unless res == value
178
- end
179
- end
180
- stats[name][:reads] << m2.real
181
- stats[name][:totals] << (m1.real + m2.real)
182
- stats[name][:avgs] << (m1.real + m2.real)
183
- end
184
- print "\n"
185
- puts "----------------------------------------------------------------------"
186
- puts " Minimum Maximum Total Average xps "
187
- puts "----------------------------------------------------------------------"
188
- tcmin, tcmax, tctot, tcavg = 99999, 0, 0, 0
189
- [:writes, :reads].each do |sname|
190
- cmin, cmax, ctot, cavg = 99999, 0, 0, 0
191
- stats[name][sname].each do |val|
192
- cmin = val if val < cmin
193
- tcmin = val if val < tcmin
194
- cmax = val if val > cmax
195
- tcmax = val if val > tcmax
196
- ctot = ctot + val
197
- tctot = tctot + val
198
- end
199
- cavg = ctot / c
200
- puts "%-14.14s % 10.4f % 10.4f % 10.4f % 10.4f % 10.4f " % ["#{name} #{sname}", cmin, cmax, ctot, cavg, n / cavg]
201
- end
202
- tcavg = tctot / (c * 2)
203
- puts "%-14.14s % 10.4f % 10.4f % 10.4f % 10.4f % 10.4f " % ["#{name} avgs", tcmin, tcmax, tctot, tcavg, n / tcavg]
204
- summary << [name, tcmin, tcmax, tctot, tcavg, n / tcavg]
205
- end
206
- puts "----------------------------------------------------------------------"
207
- if errors.size > 0
208
- puts "Errors : #{errors.size}"
209
- # puts errors.inspect
210
- else
211
- puts "No errors in reading!"
212
- end
213
- puts "======================================================================"
214
- puts "Summary :: #{c} runs, #{n} keys"
215
- puts "======================================================================"
216
- puts " Minimum Maximum Total Average xps "
217
- puts "----------------------------------------------------------------------"
218
- summary.each do |sry|
219
- puts "%-14.14s % 10.4f % 10.4f % 10.4f % 10.4f % 10.4f " % sry
220
- end
221
- puts "======================================================================"
222
- puts "THE END"
223
- puts "======================================================================"
224
-
225
- #======================================================================
226
- #Summary :: 3 runs, 1000 keys
227
- #======================================================================
228
- # Minimum Maximum Total Average xps
229
- #----------------------------------------------------------------------
230
- #MemcacheDB 0.6202 2.7850 7.0099 1.1683 855.9366
231
- #Memcached 0.4483 0.6563 3.3251 0.5542 1804.4385
232
- #Redis 0.3282 0.5221 2.2965 0.3828 2612.6444
233
- #MongoDB 0.6660 1.0539 5.1667 0.8611 1161.2745
234
- #======================================================================
@@ -1,111 +0,0 @@
1
- #
2
- # Basic File Store
3
- # by Hampton Catlin
4
- #
5
- # This cache simply uses a directory that it creates
6
- # and manages to keep your file stores.
7
- #
8
- # Specify :skip_expires => true if you aren't using
9
- # expiration as this will slightly decrease your file size
10
- # and memory footprint of the library
11
- #
12
- # You can optionally also specify a :namespace
13
- # option that will create a subfolder.
14
- #
15
-
16
-
17
- require 'fileutils'
18
- require File.join(File.dirname(__FILE__), "..", "moneta.rb")
19
-
20
- module Moneta
21
- class BasicFile
22
- include Defaults
23
-
24
- def initialize(options = {})
25
- @namespace = options[:namespace]
26
- @directory = ::File.join(options[:path], @namespace.to_s)
27
-
28
- @expires = !options[:skip_expires]
29
-
30
- ensure_directory_created(@directory)
31
- end
32
-
33
- def key?(key)
34
- !self[key].nil?
35
- end
36
-
37
- alias has_key? key?
38
-
39
- def [](key)
40
- if ::File.exist?(path(key))
41
- data = raw_get(key)
42
- if @expires
43
- if data[:expires_at].nil? || data[:expires_at] > Time.now
44
- data[:value]
45
- else
46
- delete!(key)
47
- end
48
- end
49
- end
50
- end
51
-
52
- def raw_get(key)
53
- Marshal.load(::File.read(path(key)))
54
- end
55
-
56
- def []=(key, value)
57
- store(key, value)
58
- end
59
-
60
- def store(key, value, options = {})
61
- ensure_directory_created(::File.dirname(path(key)))
62
- ::File.open(path(key), "w") do |file|
63
- if @expires
64
- data = {:value => value}
65
- if options[:expires_in]
66
- data[:expires_at] = Time.now + options[:expires_in]
67
- end
68
- contents = Marshal.dump(data)
69
- else
70
- contents = Marshal.dump(value)
71
- end
72
- file.puts(contents)
73
- end
74
- end
75
-
76
- def update_key(key, options)
77
- store(key, self[key], options)
78
- end
79
-
80
- def delete!(key)
81
- FileUtils.rm(path(key))
82
- nil
83
- rescue Errno::ENOENT
84
- end
85
-
86
- def delete(key)
87
- value = self[key]
88
- delete!(key)
89
- value
90
- end
91
-
92
- def clear
93
- FileUtils.rm_rf(@directory)
94
- FileUtils.mkdir(@directory)
95
- end
96
-
97
- private
98
- def path(key)
99
- ::File.join(@directory, key.to_s)
100
- end
101
-
102
- def ensure_directory_created(directory_path)
103
- if ::File.file?(directory_path)
104
- raise StandardError, "The path you supplied #{directory_path} is a file"
105
- elsif !::File.exists?(directory_path)
106
- FileUtils.mkdir_p(directory_path)
107
- end
108
- end
109
-
110
- end
111
- end
@@ -1,53 +0,0 @@
1
- begin
2
- require 'bdb'
3
- rescue LoadError
4
- puts "You need bdb gem to use Bdb moneta store"
5
- exit
6
- end
7
-
8
- module Moneta
9
-
10
- class Berkeley
11
- include Defaults
12
-
13
- def initialize(options={})
14
- file = @file = options[:file]
15
- @db = Bdb::Db.new()
16
- @db.open(nil, file, nil, Bdb::Db::BTREE, Bdb::DB_CREATE, 0)
17
- unless options[:skip_expires]
18
- @expiration = Moneta::Berkeley.new(:file => "#{file}_expiration", :skip_expires => true )
19
- self.extend(StringExpires)
20
- end
21
- end
22
-
23
- module Implementation
24
- def key?(key)
25
- nil | self[key]
26
- end
27
-
28
- alias has_key? key?
29
-
30
- def []=(key,value)
31
- @db[key] = value
32
- end
33
-
34
- def [](key)
35
- @db[key]
36
- end
37
-
38
- def delete(key)
39
- value = self[key]
40
- @db.del(nil,key,0) if value
41
- value
42
- end
43
-
44
- def clear
45
- @db.truncate(nil)
46
- end
47
- end
48
-
49
- include Implementation
50
-
51
- end
52
-
53
- end
@@ -1,63 +0,0 @@
1
- begin
2
- require "couchrest"
3
- rescue LoadError
4
- puts "You need the couchrest gem to use the CouchDB store"
5
- exit
6
- end
7
-
8
- module Moneta
9
- class Couch
10
- include Defaults
11
-
12
- def initialize(options = {})
13
- @db = ::CouchRest.database!(options[:db])
14
- unless options[:skip_expires]
15
- @expiration = Moneta::Couch.new(:db => "#{options[:db]}_expiration", :skip_expires => true)
16
- self.extend(StringExpires)
17
- end
18
- end
19
-
20
- def key?(key)
21
- !self[key].nil?
22
- rescue RestClient::ResourceNotFound
23
- false
24
- end
25
-
26
- alias has_key? key?
27
-
28
- def [](key)
29
- @db.get(key)["data"]
30
- rescue RestClient::ResourceNotFound
31
- nil
32
- end
33
-
34
- def []=(key, value)
35
- @db.save_doc("_id" => key, :data => value)
36
- rescue RestClient::RequestFailed
37
- self[key]
38
- end
39
-
40
- def delete(key)
41
- value = @db.get(key)
42
- @db.delete_doc({"_id" => value["_id"], "_rev" => value["_rev"]}) if value
43
- value["data"]
44
- rescue RestClient::ResourceNotFound
45
- nil
46
- end
47
-
48
- def update_key(key, options = {})
49
- val = self[key]
50
- self.store(key, val, options)
51
- rescue RestClient::ResourceNotFound
52
- nil
53
- end
54
-
55
- def clear
56
- @db.recreate!
57
- end
58
-
59
- def delete_store
60
- @db.delete!
61
- end
62
- end
63
- end
@@ -1,52 +0,0 @@
1
- begin
2
- require "localmemcache"
3
- rescue LoadError
4
- puts "You need the localmemcache gem to use the LMC moneta store"
5
- exit
6
- end
7
-
8
- module Moneta
9
- class Expiration
10
- def initialize(hash)
11
- @hash = hash
12
- end
13
-
14
- def [](key) @hash["#{key}__!__expiration"] end
15
- def []=(key, value) @hash["#{key}__!__expiration"] = value end
16
-
17
- def delete(key)
18
- key = "#{key}__!__expiration"
19
- value = @hash[key]
20
- @hash.delete(key)
21
- value
22
- end
23
- end
24
-
25
- class LMC
26
- include Defaults
27
-
28
- module Implementation
29
- def initialize(options = {})
30
- @hash = LocalMemCache.new(:filename => options[:filename])
31
- @expiration = Expiration.new(@hash)
32
- end
33
-
34
- def [](key) @hash[key] end
35
- def []=(key, value) @hash[key] = value end
36
- def clear() @hash.clear end
37
-
38
- def key?(key)
39
- @hash.keys.include?(key)
40
- end
41
-
42
- def delete(key)
43
- value = @hash[key]
44
- @hash.delete(key)
45
- value
46
- end
47
- end
48
- include Implementation
49
- include StringExpires
50
-
51
- end
52
- end
@@ -1,58 +0,0 @@
1
- begin
2
- require "mongo"
3
- rescue LoadError
4
- puts "You need the mongo gem to use the MongoDB moneta store"
5
- exit
6
- end
7
-
8
- module Moneta
9
- class MongoDB
10
- include Defaults
11
-
12
- def initialize(options = {})
13
- options = {
14
- :host => ENV['MONGO_RUBY_DRIVER_HOST'] || 'localhost',
15
- :port => ENV['MONGO_RUBY_DRIVER_PORT'] || XGen::Mongo::Driver::Mongo::DEFAULT_PORT,
16
- :db => 'cache',
17
- :collection => 'cache'
18
- }.update(options)
19
- conn = XGen::Mongo::Driver::Mongo.new(options[:host], options[:port])
20
- @cache = conn.db(options[:db]).collection(options[:collection])
21
- end
22
-
23
- def key?(key)
24
- !!self[key]
25
- end
26
-
27
- def [](key)
28
- res = @cache.find_first('_id' => key)
29
- res = nil if res && res['expires'] && Time.now > res['expires']
30
- res && res['data']
31
- end
32
-
33
- def []=(key, value)
34
- store(key, value)
35
- end
36
-
37
- def delete(key)
38
- value = self[key]
39
- @cache.remove('_id' => key) if value
40
- value
41
- end
42
-
43
- def store(key, value, options = {})
44
- exp = options[:expires_in] ? (Time.now + options[:expires_in]) : nil
45
- @cache.repsert({ '_id' => key }, { '_id' => key, 'data' => value, 'expires' => exp })
46
- end
47
-
48
- def update_key(key, options = {})
49
- val = self[key]
50
- self.store(key, val, options)
51
- end
52
-
53
- def clear
54
- @cache.clear
55
- end
56
- end
57
- end
58
-
@@ -1,49 +0,0 @@
1
- begin
2
- require "redis"
3
- rescue LoadError
4
- puts "You need the redis gem to use the Redis store"
5
- exit
6
- end
7
-
8
- module Moneta
9
- class Redis
10
- include Defaults
11
-
12
- def initialize(options = {})
13
- @cache = ::Redis.new(options)
14
- end
15
-
16
- def key?(key)
17
- !@cache[key].nil?
18
- end
19
-
20
- alias has_key? key?
21
-
22
- def [](key)
23
- @cache.get(key)
24
- end
25
-
26
- def []=(key, value)
27
- store(key, value)
28
- end
29
-
30
- def delete(key)
31
- value = @cache[key]
32
- @cache.delete(key) if value
33
- value
34
- end
35
-
36
- def store(key, value, options = {})
37
- @cache.set(key, value, options[:expires_in])
38
- end
39
-
40
- def update_key(key, options = {})
41
- val = @cache[key]
42
- self.store(key, val, options)
43
- end
44
-
45
- def clear
46
- @cache.flush_db
47
- end
48
- end
49
- end
@@ -1,41 +0,0 @@
1
- begin
2
- require "rufus/tokyo"
3
- rescue LoadError
4
- puts "You need the rufus gem to use the Rufus moneta store"
5
- exit
6
- end
7
-
8
- module Moneta
9
- class BasicRufus < ::Rufus::Tokyo::Cabinet
10
- include Defaults
11
-
12
- def initialize(options = {})
13
- file = options[:file]
14
- super("#{file}.tch")
15
- end
16
-
17
- def key?(key)
18
- !!self[key]
19
- end
20
-
21
- def [](key)
22
- if val = super
23
- Marshal.load(val.unpack("m")[0])
24
- end
25
- end
26
-
27
- def []=(key, value)
28
- super(key, [Marshal.dump(value)].pack("m"))
29
- end
30
- end
31
-
32
- class Rufus < BasicRufus
33
- include Expires
34
-
35
- def initialize(options = {})
36
- file = options[:file]
37
- @expiration = BasicRufus.new(:file => "#{file}_expires")
38
- super
39
- end
40
- end
41
- end