plyom_user 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (265) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/plyom_user/version.rb +1 -1
  4. data/lib/plyom_user.rb +4 -3
  5. data/vendor/bundle/ruby/2.0.0/bin/httparty +23 -0
  6. data/vendor/bundle/ruby/2.0.0/bin/rake +23 -0
  7. data/vendor/bundle/ruby/2.0.0/build_info/httparty-0.11.0.info +1 -0
  8. data/vendor/bundle/ruby/2.0.0/build_info/multi_json-1.8.2.info +1 -0
  9. data/vendor/bundle/ruby/2.0.0/build_info/multi_xml-0.5.5.info +1 -0
  10. data/vendor/bundle/ruby/2.0.0/build_info/rake-10.1.1.info +1 -0
  11. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/.gitignore +10 -0
  12. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/.travis.yml +9 -0
  13. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/Gemfile +15 -0
  14. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/Guardfile +16 -0
  15. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/History +303 -0
  16. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/MIT-LICENSE +20 -0
  17. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/README.md +79 -0
  18. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/Rakefile +15 -0
  19. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/bin/httparty +114 -0
  20. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/cucumber.yml +1 -0
  21. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/examples/aaws.rb +32 -0
  22. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/examples/basic.rb +32 -0
  23. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/examples/crack.rb +19 -0
  24. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/examples/custom_parsers.rb +67 -0
  25. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/examples/delicious.rb +37 -0
  26. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/examples/google.rb +16 -0
  27. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/examples/headers_and_user_agents.rb +6 -0
  28. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/examples/nokogiri_html_parser.rb +22 -0
  29. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/examples/rubyurl.rb +14 -0
  30. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/examples/tripit_sign_in.rb +33 -0
  31. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/examples/twitter.rb +31 -0
  32. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/examples/whoismyrep.rb +10 -0
  33. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/features/basic_authentication.feature +20 -0
  34. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/features/command_line.feature +7 -0
  35. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/features/deals_with_http_error_codes.feature +26 -0
  36. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/features/digest_authentication.feature +20 -0
  37. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/features/handles_compressed_responses.feature +19 -0
  38. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/features/handles_multiple_formats.feature +34 -0
  39. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/features/steps/env.rb +22 -0
  40. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/features/steps/httparty_response_steps.rb +40 -0
  41. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/features/steps/httparty_steps.rb +27 -0
  42. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/features/steps/mongrel_helper.rb +94 -0
  43. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/features/steps/remote_service_steps.rb +69 -0
  44. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/features/supports_redirection.feature +22 -0
  45. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/features/supports_timeout_option.feature +13 -0
  46. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/httparty.gemspec +24 -0
  47. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/lib/httparty/connection_adapter.rb +134 -0
  48. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/lib/httparty/cookie_hash.rb +22 -0
  49. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/lib/httparty/core_extensions.rb +32 -0
  50. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/lib/httparty/exceptions.rb +26 -0
  51. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/lib/httparty/hash_conversions.rb +51 -0
  52. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/lib/httparty/module_inheritable_attributes.rb +56 -0
  53. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/lib/httparty/net_digest_auth.rb +84 -0
  54. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/lib/httparty/parser.rb +139 -0
  55. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/lib/httparty/request.rb +250 -0
  56. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/lib/httparty/response/headers.rb +31 -0
  57. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/lib/httparty/response.rb +67 -0
  58. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/lib/httparty/version.rb +3 -0
  59. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/lib/httparty.rb +534 -0
  60. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/delicious.xml +23 -0
  61. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/empty.xml +0 -0
  62. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/google.html +3 -0
  63. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/ssl/generate.sh +29 -0
  64. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/ssl/generated/1fe462c2.0 +16 -0
  65. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/ssl/generated/bogushost.crt +13 -0
  66. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/ssl/generated/ca.crt +16 -0
  67. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/ssl/generated/ca.key +15 -0
  68. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/ssl/generated/selfsigned.crt +14 -0
  69. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/ssl/generated/server.crt +13 -0
  70. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/ssl/generated/server.key +15 -0
  71. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/ssl/openssl-exts.cnf +9 -0
  72. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/twitter.json +1 -0
  73. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/twitter.xml +403 -0
  74. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/fixtures/undefined_method_add_node_for_nil.xml +2 -0
  75. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/httparty/connection_adapter_spec.rb +223 -0
  76. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/httparty/cookie_hash_spec.rb +76 -0
  77. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/httparty/net_digest_auth_spec.rb +115 -0
  78. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/httparty/parser_spec.rb +166 -0
  79. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/httparty/request_spec.rb +514 -0
  80. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/httparty/response_spec.rb +221 -0
  81. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/httparty/ssl_spec.rb +62 -0
  82. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/httparty_spec.rb +733 -0
  83. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/spec.opts +2 -0
  84. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/spec_helper.rb +30 -0
  85. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/support/ssl_test_helper.rb +47 -0
  86. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/support/ssl_test_server.rb +80 -0
  87. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/spec/support/stub_response.rb +43 -0
  88. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/website/css/common.css +47 -0
  89. data/vendor/bundle/ruby/2.0.0/gems/httparty-0.11.0/website/index.html +73 -0
  90. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/.document +5 -0
  91. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/.rspec +2 -0
  92. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/.travis.yml +16 -0
  93. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/.yardopts +6 -0
  94. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/CHANGELOG.md +185 -0
  95. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/CONTRIBUTING.md +46 -0
  96. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/Gemfile +30 -0
  97. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/LICENSE.md +20 -0
  98. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/README.md +108 -0
  99. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/Rakefile +25 -0
  100. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/adapter.rb +57 -0
  101. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/adapters/gson.rb +19 -0
  102. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/adapters/jr_jackson.rb +19 -0
  103. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/adapters/json_common.rb +25 -0
  104. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/adapters/json_gem.rb +11 -0
  105. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/adapters/json_pure.rb +11 -0
  106. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/adapters/nsjsonserialization.rb +34 -0
  107. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/adapters/oj.rb +24 -0
  108. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/adapters/ok_json.rb +24 -0
  109. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/adapters/yajl.rb +19 -0
  110. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/convertible_hash_keys.rb +43 -0
  111. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/load_error.rb +11 -0
  112. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/options.rb +48 -0
  113. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/vendor/okjson.rb +606 -0
  114. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json/version.rb +20 -0
  115. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/lib/multi_json.rb +159 -0
  116. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/multi_json.gemspec +22 -0
  117. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/spec/gson_adapter_spec.rb +10 -0
  118. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/spec/jr_jackson_adapter_spec.rb +10 -0
  119. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/spec/json_gem_adapter_spec.rb +9 -0
  120. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/spec/json_pure_adapter_spec.rb +9 -0
  121. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/spec/multi_json_spec.rb +193 -0
  122. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/spec/nsjsonserialization_adapter_spec.rb +10 -0
  123. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/spec/oj_adapter_spec.rb +10 -0
  124. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/spec/ok_json_adapter_spec.rb +7 -0
  125. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/spec/shared/adapter.rb +230 -0
  126. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/spec/shared/json_common_adapter.rb +30 -0
  127. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/spec/shared/options.rb +119 -0
  128. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/spec/spec_helper.rb +73 -0
  129. data/vendor/bundle/ruby/2.0.0/gems/multi_json-1.8.2/spec/yajl_adapter_spec.rb +10 -0
  130. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/.yardopts +8 -0
  131. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/CHANGELOG.md +93 -0
  132. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/CONTRIBUTING.md +49 -0
  133. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/LICENSE.md +20 -0
  134. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/README.md +97 -0
  135. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/Rakefile +21 -0
  136. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/lib/multi_xml/parsers/libxml.rb +30 -0
  137. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/lib/multi_xml/parsers/libxml2_parser.rb +74 -0
  138. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/lib/multi_xml/parsers/nokogiri.rb +32 -0
  139. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/lib/multi_xml/parsers/ox.rb +97 -0
  140. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/lib/multi_xml/parsers/rexml.rb +113 -0
  141. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/lib/multi_xml/version.rb +3 -0
  142. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/lib/multi_xml.rb +296 -0
  143. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/multi_xml.gemspec +24 -0
  144. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/spec/helper.rb +17 -0
  145. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/spec/multi_xml_spec.rb +43 -0
  146. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/spec/parser_shared_example.rb +694 -0
  147. data/vendor/bundle/ruby/2.0.0/gems/multi_xml-0.5.5/spec/speed.rb +63 -0
  148. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/.gemtest +0 -0
  149. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/CHANGES +530 -0
  150. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/MIT-LICENSE +21 -0
  151. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/README.rdoc +187 -0
  152. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/Rakefile +374 -0
  153. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/TODO +21 -0
  154. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/bin/rake +33 -0
  155. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/install.rb +80 -0
  156. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/alt_system.rb +108 -0
  157. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/application.rb +728 -0
  158. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/backtrace.rb +20 -0
  159. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/clean.rb +55 -0
  160. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/cloneable.rb +16 -0
  161. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/contrib/compositepublisher.rb +21 -0
  162. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/contrib/ftptools.rb +139 -0
  163. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/contrib/publisher.rb +73 -0
  164. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/contrib/rubyforgepublisher.rb +16 -0
  165. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/contrib/sshpublisher.rb +50 -0
  166. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/contrib/sys.rb +2 -0
  167. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/default_loader.rb +10 -0
  168. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/dsl_definition.rb +157 -0
  169. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/early_time.rb +18 -0
  170. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/ext/core.rb +28 -0
  171. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/ext/module.rb +0 -0
  172. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/ext/string.rb +166 -0
  173. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/ext/time.rb +15 -0
  174. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/file_creation_task.rb +24 -0
  175. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/file_list.rb +416 -0
  176. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/file_task.rb +46 -0
  177. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/file_utils.rb +116 -0
  178. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/file_utils_ext.rb +144 -0
  179. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/gempackagetask.rb +2 -0
  180. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/invocation_chain.rb +57 -0
  181. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/invocation_exception_mixin.rb +16 -0
  182. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/linked_list.rb +103 -0
  183. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/loaders/makefile.rb +40 -0
  184. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/multi_task.rb +13 -0
  185. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/name_space.rb +25 -0
  186. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/packagetask.rb +190 -0
  187. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/pathmap.rb +1 -0
  188. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/phony.rb +15 -0
  189. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/private_reader.rb +20 -0
  190. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/promise.rb +99 -0
  191. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/pseudo_status.rb +29 -0
  192. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/rake_module.rb +37 -0
  193. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/rake_test_loader.rb +22 -0
  194. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/rdoctask.rb +2 -0
  195. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/ruby182_test_unit_fix.rb +27 -0
  196. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/rule_recursion_overflow_error.rb +20 -0
  197. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/runtest.rb +22 -0
  198. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/scope.rb +42 -0
  199. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/task.rb +378 -0
  200. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/task_argument_error.rb +7 -0
  201. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/task_arguments.rb +89 -0
  202. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/task_manager.rb +297 -0
  203. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/tasklib.rb +22 -0
  204. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/testtask.rb +201 -0
  205. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/thread_history_display.rb +48 -0
  206. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/thread_pool.rb +161 -0
  207. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/trace_output.rb +22 -0
  208. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/version.rb +9 -0
  209. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake/win32.rb +56 -0
  210. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/lib/rake.rb +73 -0
  211. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/file_creation.rb +34 -0
  212. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/helper.rb +128 -0
  213. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/support/rakefile_definitions.rb +444 -0
  214. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/support/ruby_runner.rb +33 -0
  215. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_private_reader.rb +42 -0
  216. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake.rb +40 -0
  217. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_application.rb +517 -0
  218. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_application_options.rb +457 -0
  219. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_backtrace.rb +113 -0
  220. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_clean.rb +46 -0
  221. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_definitions.rb +79 -0
  222. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_directory_task.rb +57 -0
  223. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_dsl.rb +40 -0
  224. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_early_time.rb +31 -0
  225. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_extension.rb +59 -0
  226. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_file_creation_task.rb +56 -0
  227. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_file_list.rb +627 -0
  228. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_file_list_path_map.rb +8 -0
  229. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_file_task.rb +122 -0
  230. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_file_utils.rb +309 -0
  231. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_ftp_file.rb +74 -0
  232. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_functional.rb +466 -0
  233. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_invocation_chain.rb +64 -0
  234. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_linked_list.rb +84 -0
  235. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_makefile_loader.rb +46 -0
  236. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_multi_task.rb +58 -0
  237. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_name_space.rb +43 -0
  238. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_package_task.rb +79 -0
  239. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_path_map.rb +168 -0
  240. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_path_map_explode.rb +34 -0
  241. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_path_map_partial.rb +18 -0
  242. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_pseudo_status.rb +21 -0
  243. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_rake_test_loader.rb +20 -0
  244. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_reduce_compat.rb +26 -0
  245. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_require.rb +40 -0
  246. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_rules.rb +362 -0
  247. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_scope.rb +44 -0
  248. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_task.rb +376 -0
  249. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_task_argument_parsing.rb +103 -0
  250. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_task_arguments.rb +121 -0
  251. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_task_lib.rb +9 -0
  252. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_task_manager.rb +158 -0
  253. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_task_manager_argument_resolution.rb +19 -0
  254. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_task_with_arguments.rb +171 -0
  255. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_test_task.rb +119 -0
  256. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_thread_pool.rb +142 -0
  257. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_top_level_functions.rb +71 -0
  258. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_rake_win32.rb +72 -0
  259. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_thread_history_display.rb +101 -0
  260. data/vendor/bundle/ruby/2.0.0/gems/rake-10.1.1/test/test_trace_output.rb +52 -0
  261. data/vendor/bundle/ruby/2.0.0/specifications/httparty-0.11.0.gemspec +34 -0
  262. data/vendor/bundle/ruby/2.0.0/specifications/multi_json-1.8.2.gemspec +30 -0
  263. data/vendor/bundle/ruby/2.0.0/specifications/multi_xml-0.5.5.gemspec +30 -0
  264. data/vendor/bundle/ruby/2.0.0/specifications/rake-10.1.1.gemspec +34 -0
  265. metadata +262 -2
@@ -0,0 +1,733 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
2
+
3
+ describe HTTParty do
4
+ before(:each) do
5
+ @klass = Class.new
6
+ @klass.instance_eval { include HTTParty }
7
+ end
8
+
9
+ describe "AllowedFormats deprecated" do
10
+ before do
11
+ Kernel.stub(:warn)
12
+ end
13
+
14
+ it "warns with a deprecation message" do
15
+ Kernel.should_receive(:warn).with("Deprecated: Use HTTParty::Parser::SupportedFormats")
16
+ HTTParty::AllowedFormats
17
+ end
18
+
19
+ it "returns HTTPart::Parser::SupportedFormats" do
20
+ HTTParty::AllowedFormats.should == HTTParty::Parser::SupportedFormats
21
+ end
22
+ end
23
+
24
+ describe "pem" do
25
+ it 'should set the pem content' do
26
+ @klass.pem 'PEM-CONTENT'
27
+ @klass.default_options[:pem].should == 'PEM-CONTENT'
28
+ end
29
+
30
+ it "should set the password to nil if it's not provided" do
31
+ @klass.pem 'PEM-CONTENT'
32
+ @klass.default_options[:pem_password].should be_nil
33
+ end
34
+
35
+ it 'should set the password' do
36
+ @klass.pem 'PEM-CONTENT', 'PASSWORD'
37
+ @klass.default_options[:pem_password].should == 'PASSWORD'
38
+ end
39
+ end
40
+
41
+ describe 'ssl_version' do
42
+ it 'should set the ssl_version content' do
43
+ @klass.ssl_version :SSLv3
44
+ @klass.default_options[:ssl_version].should == :SSLv3
45
+ end
46
+ end
47
+
48
+ describe 'ciphers' do
49
+ it 'should set the ciphers content' do
50
+ @klass.default_options[:ciphers].should be_nil
51
+ @klass.ciphers 'RC4-SHA'
52
+ @klass.default_options[:ciphers].should == 'RC4-SHA'
53
+ end
54
+ end
55
+
56
+ describe 'http_proxy' do
57
+ it 'should set the address' do
58
+ @klass.http_proxy 'proxy.foo.com', 80
59
+ options = @klass.default_options
60
+ options[:http_proxyaddr].should == 'proxy.foo.com'
61
+ options[:http_proxyport].should == 80
62
+ end
63
+
64
+ it 'should set the proxy user and pass when they are provided' do
65
+ @klass.http_proxy 'proxy.foo.com', 80, 'user', 'pass'
66
+ options = @klass.default_options
67
+ options[:http_proxyuser].should == 'user'
68
+ options[:http_proxypass].should == 'pass'
69
+ end
70
+ end
71
+
72
+ describe "base uri" do
73
+ before(:each) do
74
+ @klass.base_uri('api.foo.com/v1')
75
+ end
76
+
77
+ it "should have reader" do
78
+ @klass.base_uri.should == 'http://api.foo.com/v1'
79
+ end
80
+
81
+ it 'should have writer' do
82
+ @klass.base_uri('http://api.foobar.com')
83
+ @klass.base_uri.should == 'http://api.foobar.com'
84
+ end
85
+
86
+ it 'should not modify the parameter during assignment' do
87
+ uri = 'http://api.foobar.com'
88
+ @klass.base_uri(uri)
89
+ uri.should == 'http://api.foobar.com'
90
+ end
91
+ end
92
+
93
+ describe ".disable_rails_query_string_format" do
94
+ it "sets the query string normalizer to HTTParty::Request::NON_RAILS_QUERY_STRING_NORMALIZER" do
95
+ @klass.disable_rails_query_string_format
96
+ @klass.default_options[:query_string_normalizer].should == HTTParty::Request::NON_RAILS_QUERY_STRING_NORMALIZER
97
+ end
98
+ end
99
+
100
+ describe ".normalize_base_uri" do
101
+ it "should add http if not present for non ssl requests" do
102
+ uri = HTTParty.normalize_base_uri('api.foobar.com')
103
+ uri.should == 'http://api.foobar.com'
104
+ end
105
+
106
+ it "should add https if not present for ssl requests" do
107
+ uri = HTTParty.normalize_base_uri('api.foo.com/v1:443')
108
+ uri.should == 'https://api.foo.com/v1:443'
109
+ end
110
+
111
+ it "should not remove https for ssl requests" do
112
+ uri = HTTParty.normalize_base_uri('https://api.foo.com/v1:443')
113
+ uri.should == 'https://api.foo.com/v1:443'
114
+ end
115
+
116
+ it 'should not modify the parameter' do
117
+ uri = 'http://api.foobar.com'
118
+ HTTParty.normalize_base_uri(uri)
119
+ uri.should == 'http://api.foobar.com'
120
+ end
121
+
122
+ it "should not treat uri's with a port of 4430 as ssl" do
123
+ uri = HTTParty.normalize_base_uri('http://api.foo.com:4430/v1')
124
+ uri.should == 'http://api.foo.com:4430/v1'
125
+ end
126
+ end
127
+
128
+ describe "headers" do
129
+ def expect_headers(header={})
130
+ HTTParty::Request.should_receive(:new) \
131
+ .with(anything, anything, hash_including({ :headers => header })) \
132
+ .and_return(mock("mock response", :perform => nil))
133
+ end
134
+
135
+ it "should default to empty hash" do
136
+ @klass.headers.should == {}
137
+ end
138
+
139
+ it "should be able to be updated" do
140
+ init_headers = {:foo => 'bar', :baz => 'spax'}
141
+ @klass.headers init_headers
142
+ @klass.headers.should == init_headers
143
+ end
144
+
145
+ it "uses the class headers when sending a request" do
146
+ expect_headers(:foo => 'bar')
147
+ @klass.headers(:foo => 'bar')
148
+ @klass.get('')
149
+ end
150
+
151
+ it "overwrites class headers when passing in headers" do
152
+ expect_headers(:baz => 'spax')
153
+ @klass.headers(:foo => 'bar')
154
+ @klass.get('', :headers => {:baz => 'spax'})
155
+ end
156
+
157
+ context "with cookies" do
158
+ it 'utilizes the class-level cookies' do
159
+ expect_headers(:foo => 'bar', 'cookie' => 'type=snickerdoodle')
160
+ @klass.headers(:foo => 'bar')
161
+ @klass.cookies(:type => 'snickerdoodle')
162
+ @klass.get('')
163
+ end
164
+
165
+ it 'adds cookies to the headers' do
166
+ expect_headers(:foo => 'bar', 'cookie' => 'type=snickerdoodle')
167
+ @klass.headers(:foo => 'bar')
168
+ @klass.get('', :cookies => {:type => 'snickerdoodle'})
169
+ end
170
+
171
+ it 'adds optional cookies to the optional headers' do
172
+ expect_headers(:baz => 'spax', 'cookie' => 'type=snickerdoodle')
173
+ @klass.get('', :cookies => {:type => 'snickerdoodle'}, :headers => {:baz => 'spax'})
174
+ end
175
+ end
176
+ end
177
+
178
+ describe "cookies" do
179
+ def expect_cookie_header(s)
180
+ HTTParty::Request.should_receive(:new) \
181
+ .with(anything, anything, hash_including({ :headers => { "cookie" => s } })) \
182
+ .and_return(mock("mock response", :perform => nil))
183
+ end
184
+
185
+ it "should not be in the headers by default" do
186
+ HTTParty::Request.stub!(:new).and_return(stub(nil, :perform => nil))
187
+ @klass.get("")
188
+ @klass.headers.keys.should_not include("cookie")
189
+ end
190
+
191
+ it "should raise an ArgumentError if passed a non-Hash" do
192
+ lambda do
193
+ @klass.cookies("nonsense")
194
+ end.should raise_error(ArgumentError)
195
+ end
196
+
197
+ it "should allow a cookie to be specified with a one-off request" do
198
+ expect_cookie_header "type=snickerdoodle"
199
+ @klass.get("", :cookies => { :type => "snickerdoodle" })
200
+ end
201
+
202
+ describe "when a cookie is set at the class level" do
203
+ before(:each) do
204
+ @klass.cookies({ :type => "snickerdoodle" })
205
+ end
206
+
207
+ it "should include that cookie in the request" do
208
+ expect_cookie_header "type=snickerdoodle"
209
+ @klass.get("")
210
+ end
211
+
212
+ it "should pass the proper cookies when requested multiple times" do
213
+ 2.times do
214
+ expect_cookie_header "type=snickerdoodle"
215
+ @klass.get("")
216
+ end
217
+ end
218
+
219
+ it "should allow the class defaults to be overridden" do
220
+ expect_cookie_header "type=chocolate_chip"
221
+
222
+ @klass.get("", :cookies => { :type => "chocolate_chip" })
223
+ end
224
+ end
225
+
226
+ describe "in a class with multiple methods that use different cookies" do
227
+ before(:each) do
228
+ @klass.instance_eval do
229
+ def first_method
230
+ get("first_method", :cookies => { :first_method_cookie => "foo" })
231
+ end
232
+
233
+ def second_method
234
+ get("second_method", :cookies => { :second_method_cookie => "foo" })
235
+ end
236
+ end
237
+ end
238
+
239
+ it "should not allow cookies used in one method to carry over into other methods" do
240
+ expect_cookie_header "first_method_cookie=foo"
241
+ @klass.first_method
242
+
243
+ expect_cookie_header "second_method_cookie=foo"
244
+ @klass.second_method
245
+ end
246
+ end
247
+ end
248
+
249
+ describe "default params" do
250
+ it "should default to empty hash" do
251
+ @klass.default_params.should == {}
252
+ end
253
+
254
+ it "should be able to be updated" do
255
+ new_defaults = {:foo => 'bar', :baz => 'spax'}
256
+ @klass.default_params new_defaults
257
+ @klass.default_params.should == new_defaults
258
+ end
259
+ end
260
+
261
+ describe "default timeout" do
262
+ it "should default to nil" do
263
+ @klass.default_options[:timeout].should == nil
264
+ end
265
+
266
+ it "should support updating" do
267
+ @klass.default_timeout 10
268
+ @klass.default_options[:timeout].should == 10
269
+ end
270
+
271
+ it "should support floats" do
272
+ @klass.default_timeout 0.5
273
+ @klass.default_options[:timeout].should == 0.5
274
+ end
275
+ end
276
+
277
+ describe "debug_output" do
278
+ it "stores the given stream as a default_option" do
279
+ @klass.debug_output $stdout
280
+ @klass.default_options[:debug_output].should == $stdout
281
+ end
282
+
283
+ it "stores the $stderr stream by default" do
284
+ @klass.debug_output
285
+ @klass.default_options[:debug_output].should == $stderr
286
+ end
287
+ end
288
+
289
+ describe "basic http authentication" do
290
+ it "should work" do
291
+ @klass.basic_auth 'foobar', 'secret'
292
+ @klass.default_options[:basic_auth].should == {:username => 'foobar', :password => 'secret'}
293
+ end
294
+ end
295
+
296
+ describe "digest http authentication" do
297
+ it "should work" do
298
+ @klass.digest_auth 'foobar', 'secret'
299
+ @klass.default_options[:digest_auth].should == {:username => 'foobar', :password => 'secret'}
300
+ end
301
+ end
302
+
303
+ describe "parser" do
304
+ class CustomParser
305
+ def self.parse(body)
306
+ return {:sexy => true}
307
+ end
308
+ end
309
+
310
+ let(:parser) do
311
+ Proc.new{ |data, format| CustomParser.parse(data) }
312
+ end
313
+
314
+ it "should set parser options" do
315
+ @klass.parser parser
316
+ @klass.default_options[:parser].should == parser
317
+ end
318
+
319
+ it "should be able parse response with custom parser" do
320
+ @klass.parser parser
321
+ FakeWeb.register_uri(:get, 'http://twitter.com/statuses/public_timeline.xml', :body => 'tweets')
322
+ custom_parsed_response = @klass.get('http://twitter.com/statuses/public_timeline.xml')
323
+ custom_parsed_response[:sexy].should == true
324
+ end
325
+
326
+ it "raises UnsupportedFormat when the parser cannot handle the format" do
327
+ @klass.format :json
328
+ class MyParser < HTTParty::Parser
329
+ SupportedFormats = {}
330
+ end unless defined?(MyParser)
331
+ expect do
332
+ @klass.parser MyParser
333
+ end.to raise_error(HTTParty::UnsupportedFormat)
334
+ end
335
+
336
+ it 'does not validate format whe custom parser is a proc' do
337
+ expect do
338
+ @klass.format :json
339
+ @klass.parser lambda {|body, format|}
340
+ end.to_not raise_error(HTTParty::UnsupportedFormat)
341
+ end
342
+ end
343
+
344
+ describe "connection_adapter" do
345
+ let(:uri) { 'http://google.com/api.json' }
346
+ let(:connection_adapter) { mock('CustomConnectionAdapter') }
347
+
348
+ it "should set the connection_adapter" do
349
+ @klass.connection_adapter connection_adapter
350
+ @klass.default_options[:connection_adapter].should be connection_adapter
351
+ end
352
+
353
+ it "should set the connection_adapter_options when provided" do
354
+ options = {:foo => :bar}
355
+ @klass.connection_adapter connection_adapter, options
356
+ @klass.default_options[:connection_adapter_options].should be options
357
+ end
358
+
359
+ it "should not set the connection_adapter_options when not provided" do
360
+ @klass.connection_adapter connection_adapter
361
+ @klass.default_options[:connection_adapter_options].should be_nil
362
+ end
363
+
364
+ it "should process a request with a connection from the adapter" do
365
+ connection_adapter_options = {:foo => :bar}
366
+ connection_adapter.should_receive(:call) do |u,o|
367
+ o[:connection_adapter_options].should == connection_adapter_options
368
+ HTTParty::ConnectionAdapter.call(u,o)
369
+ end.with(URI.parse(uri), kind_of(Hash))
370
+ FakeWeb.register_uri(:get, uri, :body => 'stuff')
371
+ @klass.connection_adapter connection_adapter, connection_adapter_options
372
+ @klass.get(uri).should == 'stuff'
373
+ end
374
+ end
375
+
376
+ describe "format" do
377
+ it "should allow xml" do
378
+ @klass.format :xml
379
+ @klass.default_options[:format].should == :xml
380
+ end
381
+
382
+ it "should allow json" do
383
+ @klass.format :json
384
+ @klass.default_options[:format].should == :json
385
+ end
386
+
387
+ it "should allow plain" do
388
+ @klass.format :plain
389
+ @klass.default_options[:format].should == :plain
390
+ end
391
+
392
+ it 'should not allow funky format' do
393
+ lambda do
394
+ @klass.format :foobar
395
+ end.should raise_error(HTTParty::UnsupportedFormat)
396
+ end
397
+
398
+ it 'should only print each format once with an exception' do
399
+ lambda do
400
+ @klass.format :foobar
401
+ end.should raise_error(HTTParty::UnsupportedFormat, "':foobar' Must be one of: html, json, plain, xml")
402
+ end
403
+
404
+ it 'sets the default parser' do
405
+ @klass.default_options[:parser].should be_nil
406
+ @klass.format :json
407
+ @klass.default_options[:parser].should == HTTParty::Parser
408
+ end
409
+
410
+ it 'does not reset parser to the default parser' do
411
+ my_parser = lambda {}
412
+ @klass.parser my_parser
413
+ @klass.format :json
414
+ @klass.parser.should == my_parser
415
+ end
416
+ end
417
+
418
+ describe "#no_follow" do
419
+ it "sets no_follow to false by default" do
420
+ @klass.no_follow
421
+ @klass.default_options[:no_follow].should be_false
422
+ end
423
+
424
+ it "sets the no_follow option to true" do
425
+ @klass.no_follow true
426
+ @klass.default_options[:no_follow].should be_true
427
+ end
428
+ end
429
+
430
+ describe "#maintain_method_across_redirects" do
431
+ it "sets maintain_method_across_redirects to true by default" do
432
+ @klass.maintain_method_across_redirects
433
+ @klass.default_options[:maintain_method_across_redirects].should be_true
434
+ end
435
+
436
+ it "sets the maintain_method_across_redirects option to false" do
437
+ @klass.maintain_method_across_redirects false
438
+ @klass.default_options[:maintain_method_across_redirects].should be_false
439
+ end
440
+ end
441
+
442
+ describe ".follow_redirects" do
443
+ it "sets follow redirects to true by default" do
444
+ @klass.follow_redirects
445
+ @klass.default_options[:follow_redirects].should be_true
446
+ end
447
+
448
+ it "sets the follow_redirects option to false" do
449
+ @klass.follow_redirects false
450
+ @klass.default_options[:follow_redirects].should be_false
451
+ end
452
+ end
453
+
454
+ describe ".query_string_normalizer" do
455
+ it "sets the query_string_normalizer option" do
456
+ normalizer = proc {}
457
+ @klass.query_string_normalizer normalizer
458
+ @klass.default_options[:query_string_normalizer].should == normalizer
459
+ end
460
+ end
461
+
462
+ describe "with explicit override of automatic redirect handling" do
463
+ before do
464
+ @request = HTTParty::Request.new(Net::HTTP::Get, 'http://api.foo.com/v1', :format => :xml, :no_follow => true)
465
+ @redirect = stub_response 'first redirect', 302
466
+ @redirect['location'] = 'http://foo.com/bar'
467
+ HTTParty::Request.stub(:new => @request)
468
+ end
469
+
470
+ it "should fail with redirected GET" do
471
+ lambda do
472
+ @error = @klass.get('/foo', :no_follow => true)
473
+ end.should raise_error(HTTParty::RedirectionTooDeep) {|e| e.response.body.should == 'first redirect'}
474
+ end
475
+
476
+ it "should fail with redirected POST" do
477
+ lambda do
478
+ @klass.post('/foo', :no_follow => true)
479
+ end.should raise_error(HTTParty::RedirectionTooDeep) {|e| e.response.body.should == 'first redirect'}
480
+ end
481
+
482
+ it "should fail with redirected PATCH" do
483
+ lambda do
484
+ @klass.patch('/foo', :no_follow => true)
485
+ end.should raise_error(HTTParty::RedirectionTooDeep) {|e| e.response.body.should == 'first redirect'}
486
+ end
487
+
488
+ it "should fail with redirected DELETE" do
489
+ lambda do
490
+ @klass.delete('/foo', :no_follow => true)
491
+ end.should raise_error(HTTParty::RedirectionTooDeep) {|e| e.response.body.should == 'first redirect'}
492
+ end
493
+
494
+ it "should fail with redirected MOVE" do
495
+ lambda do
496
+ @klass.move('/foo', :no_follow => true)
497
+ end.should raise_error(HTTParty::RedirectionTooDeep) {|e| e.response.body.should == 'first redirect'}
498
+ end
499
+
500
+ it "should fail with redirected COPY" do
501
+ lambda do
502
+ @klass.copy('/foo', :no_follow => true)
503
+ end.should raise_error(HTTParty::RedirectionTooDeep) {|e| e.response.body.should == 'first redirect'}
504
+ end
505
+
506
+ it "should fail with redirected PUT" do
507
+ lambda do
508
+ @klass.put('/foo', :no_follow => true)
509
+ end.should raise_error(HTTParty::RedirectionTooDeep) {|e| e.response.body.should == 'first redirect'}
510
+ end
511
+
512
+ it "should fail with redirected HEAD" do
513
+ lambda do
514
+ @klass.head('/foo', :no_follow => true)
515
+ end.should raise_error(HTTParty::RedirectionTooDeep) {|e| e.response.body.should == 'first redirect'}
516
+ end
517
+
518
+ it "should fail with redirected OPTIONS" do
519
+ lambda do
520
+ @klass.options('/foo', :no_follow => true)
521
+ end.should raise_error(HTTParty::RedirectionTooDeep) {|e| e.response.body.should == 'first redirect'}
522
+ end
523
+ end
524
+
525
+ describe "with multiple class definitions" do
526
+ before(:each) do
527
+ @klass.instance_eval do
528
+ base_uri "http://first.com"
529
+ default_params :one => 1
530
+ end
531
+
532
+ @additional_klass = Class.new
533
+ @additional_klass.instance_eval do
534
+ include HTTParty
535
+ base_uri "http://second.com"
536
+ default_params :two => 2
537
+ end
538
+ end
539
+
540
+ it "should not run over each others options" do
541
+ @klass.default_options.should == { :base_uri => 'http://first.com', :default_params => { :one => 1 } }
542
+ @additional_klass.default_options.should == { :base_uri => 'http://second.com', :default_params => { :two => 2 } }
543
+ end
544
+ end
545
+
546
+ describe "two child classes inheriting from one parent" do
547
+ before(:each) do
548
+ @parent = Class.new do
549
+ include HTTParty
550
+ def self.name
551
+ "Parent"
552
+ end
553
+ end
554
+
555
+ @child1 = Class.new(@parent)
556
+ @child2 = Class.new(@parent)
557
+ end
558
+
559
+ it "does not modify each others inherited attributes" do
560
+ @child1.default_params :joe => "alive"
561
+ @child2.default_params :joe => "dead"
562
+
563
+ @child1.default_options.should == { :default_params => {:joe => "alive"} }
564
+ @child2.default_options.should == { :default_params => {:joe => "dead"} }
565
+
566
+ @parent.default_options.should == { }
567
+ end
568
+
569
+ it "inherits default_options from the superclass" do
570
+ @parent.basic_auth 'user', 'password'
571
+ @child1.default_options.should == {:basic_auth => {:username => 'user', :password => 'password'}}
572
+ @child1.basic_auth 'u', 'p' # modifying child1 has no effect on child2
573
+ @child2.default_options.should == {:basic_auth => {:username => 'user', :password => 'password'}}
574
+ end
575
+
576
+ it "doesn't modify the parent's default options" do
577
+ @parent.basic_auth 'user', 'password'
578
+
579
+ @child1.basic_auth 'u', 'p'
580
+ @child1.default_options.should == {:basic_auth => {:username => 'u', :password => 'p'}}
581
+
582
+ @child1.basic_auth 'email', 'token'
583
+ @child1.default_options.should == {:basic_auth => {:username => 'email', :password => 'token'}}
584
+
585
+ @parent.default_options.should == {:basic_auth => {:username => 'user', :password => 'password'}}
586
+ end
587
+
588
+ it "doesn't modify hashes in the parent's default options" do
589
+ @parent.headers 'Accept' => 'application/json'
590
+ @child1.headers 'Accept' => 'application/xml'
591
+
592
+ @parent.default_options[:headers].should == {'Accept' => 'application/json'}
593
+ @child1.default_options[:headers].should == {'Accept' => 'application/xml'}
594
+ end
595
+
596
+ it "works with lambda values" do
597
+ @child1.default_options[:imaginary_option] = lambda { "This is a new lambda "}
598
+ @child1.default_options[:imaginary_option].should be_a Proc
599
+ end
600
+
601
+ it 'should dup the proc on the child class' do
602
+ imaginary_option = lambda { 2 * 3.14 }
603
+ @parent.default_options[:imaginary_option] = imaginary_option
604
+ @parent.default_options[:imaginary_option].call.should == imaginary_option.call
605
+ @child1.default_options[:imaginary_option]
606
+ @child1.default_options[:imaginary_option].call.should == imaginary_option.call
607
+ @child1.default_options[:imaginary_option].should_not be_equal imaginary_option
608
+ end
609
+
610
+ it "inherits default_cookies from the parent class" do
611
+ @parent.cookies 'type' => 'chocolate_chip'
612
+ @child1.default_cookies.should == {"type" => "chocolate_chip"}
613
+ @child1.cookies 'type' => 'snickerdoodle'
614
+ @child1.default_cookies.should == {"type" => "snickerdoodle"}
615
+ @child2.default_cookies.should == {"type" => "chocolate_chip"}
616
+ end
617
+
618
+ it "doesn't modify the parent's default cookies" do
619
+ @parent.cookies 'type' => 'chocolate_chip'
620
+
621
+ @child1.cookies 'type' => 'snickerdoodle'
622
+ @child1.default_cookies.should == {"type" => "snickerdoodle"}
623
+
624
+ @parent.default_cookies.should == {"type" => "chocolate_chip"}
625
+ end
626
+ end
627
+
628
+ describe "grand parent with inherited callback" do
629
+ before do
630
+ @grand_parent = Class.new do
631
+ def self.inherited(subclass)
632
+ subclass.instance_variable_set(:@grand_parent, true)
633
+ end
634
+ end
635
+ @parent = Class.new(@grand_parent) do
636
+ include HTTParty
637
+ end
638
+ end
639
+ it "continues running the #inherited on the parent" do
640
+ child = Class.new(@parent)
641
+ child.instance_variable_get(:@grand_parent).should be_true
642
+ end
643
+ end
644
+
645
+ describe "#get" do
646
+ it "should be able to get html" do
647
+ stub_http_response_with('google.html')
648
+ HTTParty.get('http://www.google.com').should == file_fixture('google.html')
649
+ end
650
+
651
+ it "should be able to get chunked html" do
652
+ chunks = ["Chunk1", "Chunk2", "Chunk3", "Chunk4"]
653
+ stub_chunked_http_response_with(chunks)
654
+
655
+ HTTParty.get('http://www.google.com') do |fragment|
656
+ chunks.should include(fragment)
657
+ end.should == chunks.join
658
+ end
659
+
660
+ it "should be able parse response type json automatically" do
661
+ stub_http_response_with('twitter.json')
662
+ tweets = HTTParty.get('http://twitter.com/statuses/public_timeline.json')
663
+ tweets.size.should == 20
664
+ tweets.first['user'].should == {
665
+ "name" => "Pyk",
666
+ "url" => nil,
667
+ "id" => "7694602",
668
+ "description" => nil,
669
+ "protected" => false,
670
+ "screen_name" => "Pyk",
671
+ "followers_count" => 1,
672
+ "location" => "Opera Plaza, California",
673
+ "profile_image_url" => "http://static.twitter.com/images/default_profile_normal.png"
674
+ }
675
+ end
676
+
677
+ it "should be able parse response type xml automatically" do
678
+ stub_http_response_with('twitter.xml')
679
+ tweets = HTTParty.get('http://twitter.com/statuses/public_timeline.xml')
680
+ tweets['statuses'].size.should == 20
681
+ tweets['statuses'].first['user'].should == {
682
+ "name" => "Magic 8 Bot",
683
+ "url" => nil,
684
+ "id" => "17656026",
685
+ "description" => "ask me a question",
686
+ "protected" => "false",
687
+ "screen_name" => "magic8bot",
688
+ "followers_count" => "90",
689
+ "profile_image_url" => "http://s3.amazonaws.com/twitter_production/profile_images/65565851/8ball_large_normal.jpg",
690
+ "location" => nil
691
+ }
692
+ end
693
+
694
+ it "should not get undefined method add_node for nil class for the following xml" do
695
+ stub_http_response_with('undefined_method_add_node_for_nil.xml')
696
+ result = HTTParty.get('http://foobar.com')
697
+ result.should == {"Entities"=>{"href"=>"https://s3-sandbox.parature.com/api/v1/5578/5633/Account", "results"=>"0", "total"=>"0", "page_size"=>"25", "page"=>"1"}}
698
+ end
699
+
700
+ it "should parse empty response fine" do
701
+ stub_http_response_with('empty.xml')
702
+ result = HTTParty.get('http://foobar.com')
703
+ result.should be_nil
704
+ end
705
+
706
+ it "should accept http URIs" do
707
+ stub_http_response_with('google.html')
708
+ lambda do
709
+ HTTParty.get('http://google.com')
710
+ end.should_not raise_error(HTTParty::UnsupportedURIScheme)
711
+ end
712
+
713
+ it "should accept https URIs" do
714
+ stub_http_response_with('google.html')
715
+ lambda do
716
+ HTTParty.get('https://google.com')
717
+ end.should_not raise_error(HTTParty::UnsupportedURIScheme)
718
+ end
719
+
720
+ it "should accept webcal URIs" do
721
+ stub_http_response_with('google.html')
722
+ lambda do
723
+ HTTParty.get('webcal://google.com')
724
+ end.should_not raise_error(HTTParty::UnsupportedURIScheme)
725
+ end
726
+
727
+ it "should raise an InvalidURIError on URIs that can't be parsed at all" do
728
+ lambda do
729
+ HTTParty.get("It's the one that says 'Bad URI'")
730
+ end.should raise_error(URI::InvalidURIError)
731
+ end
732
+ end
733
+ end