httparty-responsibly 0.17.0.r1

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 (64) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +18 -0
  3. data/.gitignore +13 -0
  4. data/.rubocop.yml +92 -0
  5. data/.rubocop_todo.yml +124 -0
  6. data/.simplecov +1 -0
  7. data/.travis.yml +11 -0
  8. data/CONTRIBUTING.md +23 -0
  9. data/Changelog.md +502 -0
  10. data/Gemfile +23 -0
  11. data/Guardfile +16 -0
  12. data/MIT-LICENSE +20 -0
  13. data/README.md +78 -0
  14. data/Rakefile +10 -0
  15. data/bin/httparty +123 -0
  16. data/cucumber.yml +1 -0
  17. data/docs/README.md +106 -0
  18. data/examples/README.md +86 -0
  19. data/examples/aaws.rb +32 -0
  20. data/examples/basic.rb +28 -0
  21. data/examples/body_stream.rb +14 -0
  22. data/examples/crack.rb +19 -0
  23. data/examples/custom_parsers.rb +68 -0
  24. data/examples/delicious.rb +37 -0
  25. data/examples/google.rb +16 -0
  26. data/examples/headers_and_user_agents.rb +10 -0
  27. data/examples/logging.rb +36 -0
  28. data/examples/microsoft_graph.rb +52 -0
  29. data/examples/multipart.rb +22 -0
  30. data/examples/nokogiri_html_parser.rb +19 -0
  31. data/examples/peer_cert.rb +9 -0
  32. data/examples/rescue_json.rb +17 -0
  33. data/examples/rubyurl.rb +14 -0
  34. data/examples/stackexchange.rb +24 -0
  35. data/examples/stream_download.rb +26 -0
  36. data/examples/tripit_sign_in.rb +44 -0
  37. data/examples/twitter.rb +31 -0
  38. data/examples/whoismyrep.rb +10 -0
  39. data/httparty-responsibly.gemspec +27 -0
  40. data/lib/httparty.rb +684 -0
  41. data/lib/httparty/connection_adapter.rb +244 -0
  42. data/lib/httparty/cookie_hash.rb +21 -0
  43. data/lib/httparty/exceptions.rb +33 -0
  44. data/lib/httparty/hash_conversions.rb +69 -0
  45. data/lib/httparty/logger/apache_formatter.rb +45 -0
  46. data/lib/httparty/logger/curl_formatter.rb +91 -0
  47. data/lib/httparty/logger/logger.rb +28 -0
  48. data/lib/httparty/logger/logstash_formatter.rb +59 -0
  49. data/lib/httparty/module_inheritable_attributes.rb +56 -0
  50. data/lib/httparty/net_digest_auth.rb +136 -0
  51. data/lib/httparty/parser.rb +150 -0
  52. data/lib/httparty/request.rb +386 -0
  53. data/lib/httparty/request/body.rb +84 -0
  54. data/lib/httparty/request/multipart_boundary.rb +11 -0
  55. data/lib/httparty/response.rb +140 -0
  56. data/lib/httparty/response/headers.rb +33 -0
  57. data/lib/httparty/response_fragment.rb +19 -0
  58. data/lib/httparty/text_encoder.rb +70 -0
  59. data/lib/httparty/utils.rb +11 -0
  60. data/lib/httparty/version.rb +3 -0
  61. data/script/release +42 -0
  62. data/website/css/common.css +47 -0
  63. data/website/index.html +73 -0
  64. metadata +138 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: c9366a457655b713f32e9163acbfcf09e1aec5b8ad843664f1dafa02171ffda9
4
+ data.tar.gz: fb62c7d8f4192454f5312d7cd2f2540f365fb6ff22d6794da1e6f9ab460d2529
5
+ SHA512:
6
+ metadata.gz: 2797c8d27fd23fc0d86ea2335388d37649782bf395c59fcda6b4fa45dc6766038291b79be44614077f02c1a966911d03f845e76f615ee60315918df40ef0ed65
7
+ data.tar.gz: 217f9ba516f18298080a69ae914c4aba037ae1b2622ed4ca58694888d583872b198f82f767e069e6ccdfed70e2a3a56f19c81b7bc03fa0cd1787e03e959447a0
@@ -0,0 +1,18 @@
1
+ ; This file is for unifying the coding style for different editors and IDEs.
2
+ ; More information at http://EditorConfig.org
3
+
4
+ root = true
5
+ [*]
6
+ end_of_line = lf
7
+ trim_trailing_whitespace = true
8
+
9
+ [**.rb]
10
+ indent_size = 2
11
+ indent_style = spaces
12
+ insert_final_newline = true
13
+
14
+ [**.xml]
15
+ trim_trailing_whitespace = false
16
+
17
+ [**.html]
18
+ trim_trailing_whitespace = false
@@ -0,0 +1,13 @@
1
+ Gemfile.lock
2
+ .DS_Store
3
+ .yardoc/
4
+ doc/
5
+ tmp/
6
+ log/
7
+ pkg/
8
+ *.swp
9
+ /.bundle
10
+ .rvmrc
11
+ coverage
12
+ *.gem
13
+ .idea
@@ -0,0 +1,92 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ # Offense count: 963
4
+ # Cop supports --auto-correct.
5
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
6
+ Style/StringLiterals:
7
+ Enabled: false
8
+
9
+ # Offense count: 327
10
+ # Cop supports --auto-correct.
11
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SupportedStyles.
12
+ Style/SpaceInsideHashLiteralBraces:
13
+ Enabled: false
14
+
15
+ # Offense count: 33
16
+ # Cop supports --auto-correct.
17
+ # Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
18
+ Style/SpaceInsideBlockBraces:
19
+ Enabled: false
20
+
21
+ # Offense count: 1
22
+ # Cop supports --auto-correct.
23
+ Style/SpaceBeforeSemicolon:
24
+ Enabled: false
25
+
26
+ # Offense count: 20
27
+ # Cop supports --auto-correct.
28
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
29
+ Style/SignalException:
30
+ Enabled: false
31
+
32
+ # Offense count: 1
33
+ # Configuration parameters: Methods.
34
+ Style/SingleLineBlockParams:
35
+ Enabled: false
36
+
37
+ # Offense count: 6
38
+ # Cop supports --auto-correct.
39
+ Style/PerlBackrefs:
40
+ Enabled: false
41
+
42
+ # Offense count: 2
43
+ # Cop supports --auto-correct.
44
+ # Configuration parameters: AllowAsExpressionSeparator.
45
+ Style/Semicolon:
46
+ Enabled: false
47
+
48
+ # Offense count: 77
49
+ # Cop supports --auto-correct.
50
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
51
+ Style/BracesAroundHashParameters:
52
+ Enabled: false
53
+
54
+ # Offense count: 36
55
+ Style/Documentation:
56
+ Enabled: false
57
+
58
+ # Offense count: 6
59
+ # Cop supports --auto-correct.
60
+ # Configuration parameters: EnforcedStyle, SupportedStyles, AllowInnerSlashes.
61
+ Style/RegexpLiteral:
62
+ Enabled: false
63
+
64
+ # Offense count: 5
65
+ # Cop supports --auto-correct.
66
+ Style/NumericLiterals:
67
+ MinDigits: 6
68
+
69
+ # Offense count: 4
70
+ # Cop supports --auto-correct.
71
+ Lint/UnusedMethodArgument:
72
+ Enabled: false
73
+
74
+ # Offense count: 11
75
+ # Cop supports --auto-correct.
76
+ Lint/UnusedBlockArgument:
77
+ Enabled: false
78
+
79
+ # Offense count: 1
80
+ Lint/Void:
81
+ Enabled: false
82
+
83
+ # Offense count: 22
84
+ # Cop supports --auto-correct.
85
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
86
+ Style/IndentHash:
87
+ Enabled: false
88
+
89
+ # Offense count: 7
90
+ # Configuration parameters: MinBodyLength.
91
+ Style/GuardClause:
92
+ Enabled: false
@@ -0,0 +1,124 @@
1
+ # This configuration was generated by `rubocop --auto-gen-config`
2
+ # on 2015-04-24 07:22:28 +0200 using RuboCop version 0.30.0.
3
+ # The point is for the user to remove these configuration records
4
+ # one by one as the offenses are removed from the code base.
5
+ # Note that changes in the inspected code, or installation of new
6
+ # versions of RuboCop, may require this file to be generated again.
7
+
8
+ # Offense count: 33
9
+ Lint/AmbiguousRegexpLiteral:
10
+ Enabled: false
11
+
12
+ # Offense count: 1
13
+ # Configuration parameters: AlignWith, SupportedStyles.
14
+ Lint/EndAlignment:
15
+ Enabled: false
16
+
17
+ # Offense count: 1
18
+ Lint/HandleExceptions:
19
+ Enabled: false
20
+
21
+ # Offense count: 5
22
+ Lint/UselessAssignment:
23
+ Enabled: false
24
+
25
+ # Offense count: 23
26
+ Metrics/AbcSize:
27
+ Max: 86
28
+
29
+ # Offense count: 1
30
+ # Configuration parameters: CountComments.
31
+ Metrics/ClassLength:
32
+ Max: 285
33
+
34
+ # Offense count: 8
35
+ Metrics/CyclomaticComplexity:
36
+ Max: 17
37
+
38
+ # Offense count: 332
39
+ # Configuration parameters: AllowURI, URISchemes.
40
+ Metrics/LineLength:
41
+ Max: 266
42
+
43
+ # Offense count: 17
44
+ # Configuration parameters: CountComments.
45
+ Metrics/MethodLength:
46
+ Max: 39
47
+
48
+ # Offense count: 8
49
+ Metrics/PerceivedComplexity:
50
+ Max: 20
51
+
52
+ # Offense count: 1
53
+ Style/AccessorMethodName:
54
+ Enabled: false
55
+
56
+ # Offense count: 1
57
+ Style/AsciiComments:
58
+ Enabled: false
59
+
60
+ # Offense count: 14
61
+ # Cop supports --auto-correct.
62
+ # Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods, FunctionalMethods, IgnoredMethods.
63
+ Style/BlockDelimiters:
64
+ Enabled: false
65
+
66
+ # Offense count: 2
67
+ Style/CaseEquality:
68
+ Enabled: false
69
+
70
+ # Offense count: 3
71
+ # Configuration parameters: IndentWhenRelativeTo, SupportedStyles, IndentOneStep.
72
+ Style/CaseIndentation:
73
+ Enabled: false
74
+
75
+ # Offense count: 4
76
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
77
+ Style/ClassAndModuleChildren:
78
+ Enabled: false
79
+
80
+ # Offense count: 7
81
+ Style/ConstantName:
82
+ Enabled: false
83
+
84
+ # Offense count: 2
85
+ Style/EachWithObject:
86
+ Enabled: false
87
+
88
+ # Offense count: 2
89
+ # Cop supports --auto-correct.
90
+ Style/ElseAlignment:
91
+ Enabled: false
92
+
93
+ # Offense count: 3
94
+ # Cop supports --auto-correct.
95
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
96
+ Style/FirstParameterIndentation:
97
+ Enabled: false
98
+
99
+ # Offense count: 2
100
+ # Cop supports --auto-correct.
101
+ # Configuration parameters: EnforcedStyle, SupportedStyles, UseHashRocketsWithSymbolValues.
102
+ Style/HashSyntax:
103
+ Enabled: false
104
+
105
+ # Offense count: 7
106
+ # Cop supports --auto-correct.
107
+ # Configuration parameters: MaxLineLength.
108
+ Style/IfUnlessModifier:
109
+ Enabled: false
110
+
111
+ # Offense count: 11
112
+ # Cop supports --auto-correct.
113
+ Style/Lambda:
114
+ Enabled: false
115
+
116
+ # Offense count: 1
117
+ # Configuration parameters: EnforcedStyle, MinBodyLength, SupportedStyles.
118
+ Style/Next:
119
+ Enabled: false
120
+
121
+ # Offense count: 2
122
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
123
+ Style/RaiseArgs:
124
+ Enabled: false
@@ -0,0 +1 @@
1
+ SimpleCov.start "test_frameworks"
@@ -0,0 +1,11 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 2.1.10
5
+ - 2.2.10
6
+ - 2.3.8
7
+ - 2.4.5
8
+ - 2.5.3
9
+ - 2.6.1
10
+ bundler_args: --without development
11
+ before_install: gem install bundler -v '< 2'
@@ -0,0 +1,23 @@
1
+ # Contributing
2
+
3
+ * Contributions will not be accepted without tests.
4
+ * Please post unconfirmed bugs to the mailing list first: https://groups.google.com/forum/#!forum/httparty-gem
5
+ * Don't change the version. The maintainers will handle that when they release.
6
+ * Always provide as much information and reproducibility as possible when filing an issue or submitting a pull request.
7
+
8
+ ## Workflow
9
+
10
+ * Fork the project.
11
+ * Run `bundle`
12
+ * Run `bundle exec rake`
13
+ * Make your feature addition or bug fix.
14
+ * Add tests for it. This is important so I don't break it in a future version unintentionally.
15
+ * Run `bundle exec rake` (No, REALLY :))
16
+ * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself in another branch so I can ignore when I pull)
17
+ * Send me a pull request. Bonus points for topic branches.
18
+
19
+ ## Help and Docs
20
+
21
+ * https://groups.google.com/forum/#!forum/httparty-gem
22
+ * http://stackoverflow.com/questions/tagged/httparty
23
+ * http://rdoc.info/projects/jnunemaker/httparty
@@ -0,0 +1,502 @@
1
+ ## 0.17.0
2
+
3
+ * [Fix encoding of streamed chunk](https://github.com/jnunemaker/httparty/pull/644)
4
+ * [Avoid modifying frozen strings](https://github.com/jnunemaker/httparty/pull/649)
5
+ * [Expose .connection on fragment block param](https://github.com/jnunemaker/httparty/pull/648)
6
+ * [Add support for `Net::HTTP#write_timeout` method (Ruby 2.6.0)](https://github.com/jnunemaker/httparty/pull/647)
7
+
8
+ ## 0.16.4
9
+ * [Add support for Ruby 2.6](https://github.com/jnunemaker/httparty/pull/636)
10
+ * [Fix a few multipart issues](https://github.com/jnunemaker/httparty/pull/626)
11
+ * [Improve a memory usage for https requests](https://github.com/jnunemaker/httparty/pull/625)
12
+ * [Add response code to streamed body](https://github.com/jnunemaker/httparty/pull/588)
13
+
14
+ ## 0.16.3
15
+ * [Add Logstash-compatible formatter](https://github.com/jnunemaker/httparty/pull/612)
16
+ * [Add support for headers specified with symbols](https://github.com/jnunemaker/httparty/pull/622)
17
+ * [Fix response object marshalling](https://github.com/jnunemaker/httparty/pull/618)
18
+ * [Add ability to send multipart, without passing file](https://github.com/jnunemaker/httparty/pull/615)
19
+ * [Fix detection of content_type for multipart payload](https://github.com/jnunemaker/httparty/pull/616)
20
+ * [Process dynamic headers before making actual request](https://github.com/jnunemaker/httparty/pull/606)
21
+ * [Fix multipart uploads with ActionDispatch::Http::UploadedFile TempFile by using original_filename](https://github.com/jnunemaker/httparty/pull/598)
22
+ * [Added support for lock and unlock http requests](https://github.com/jnunemaker/httparty/pull/596)
23
+
24
+ ## 0.16.2
25
+
26
+ * [Support ActionDispatch::Http::UploadedFile again](https://github.com/jnunemaker/httparty/pull/585)
27
+
28
+ ## 0.16.1
29
+
30
+ * [Parse content with application/hal+json content type as JSON](https://github.com/jnunemaker/httparty/pull/573)
31
+ * [Convert objects to string when concatenating in multipart stuff](https://github.com/jnunemaker/httparty/pull/575)
32
+ * [Fix multipart to set its header even when other headers are provided](https://github.com/jnunemaker/httparty/pull/576)
33
+
34
+ ## 0.16.0
35
+
36
+ * [Add multipart support](https://github.com/jnunemaker/httparty/pull/569)
37
+
38
+ ## 0.15.7
39
+
40
+ Fixed
41
+
42
+ * [Add Response#pretty_print | Restore documented behavior](https://github.com/jnunemaker/httparty/pull/570)
43
+ * [Add ability to parse response from JSONAPI ](https://github.com/jnunemaker/httparty/pull/553)
44
+
45
+ ## 0.15.6
46
+
47
+ Fixed
48
+
49
+ * [Encoding and content type stuff](https://github.com/jnunemaker/httparty/pull/543)
50
+
51
+ ## 0.15.5
52
+
53
+ Fixed
54
+
55
+ * [Use non-destructive gsub](https://github.com/jnunemaker/httparty/pull/540)
56
+
57
+ ## 0.15.4
58
+
59
+ Fixed
60
+
61
+ * Prevent gsub errors with different encodings.
62
+ * Prevent passing nil to encode_body.
63
+
64
+ ## 0.15.3
65
+
66
+ Fixed
67
+
68
+ * [Fix processing nil body for HEAD requests](https://github.com/jnunemaker/httparty/pull/530).
69
+ * Add missing require to headers.rb (33439a8).
70
+
71
+ ## 0.15.2
72
+
73
+ Fixed
74
+
75
+ * Remove symlink from specs. It was reportedly still getting bundled with gem.
76
+
77
+ ## 0.15.1
78
+
79
+ Fixed
80
+
81
+ * Stop including test files in gem. Fixes installation issues on windows due to symlink in spec dir.
82
+
83
+ ## 0.15.0
84
+
85
+ Breaking Changes
86
+
87
+ * require Ruby >= 2.0.0
88
+
89
+ Fixed
90
+
91
+ * [fix numerous bugs](https://github.com/jnunemaker/httparty/pull/513)
92
+ * [handle utf-8 bom for json parsing](https://github.com/jnunemaker/httparty/pull/520)
93
+ * [do not overwrite default headers unless specified](https://github.com/jnunemaker/httparty/pull/518)
94
+
95
+ ## 0.14.0
96
+
97
+ Breaking Changes
98
+
99
+ * None
100
+
101
+ Added
102
+
103
+ * [added status predicate methods to Response#respond_to?](https://github.com/jnunemaker/httparty/pull/482)
104
+ * [support for MKCOL method](https://github.com/jnunemaker/httparty/pull/465)
105
+ * one fewer dependency: [remove json gem from gemspec](https://github.com/jnunemaker/httparty/pull/464)
106
+ * [optional raising exception on certain status codes](https://github.com/jnunemaker/httparty/pull/455)
107
+
108
+ Fixed
109
+
110
+ * [allow empty array to be used as param](https://github.com/jnunemaker/httparty/pull/477)
111
+ * [stop mutating cookie hash](https://github.com/jnunemaker/httparty/pull/460)
112
+
113
+ ## 0.13.7 aka "party not as hard"
114
+ * remove post install emoji as it caused installation issues for some people
115
+
116
+ ## 0.13.6
117
+ * avoid calling String#strip on invalid Strings
118
+ * preserve request method on 307 and 308 redirects
119
+ * output version with --version for command line bin
120
+ * maintain head request method across redirects by default
121
+ * add support for RFC2617 MD5-sess algorithm type
122
+ * add party popper emoji to post install message
123
+
124
+ ## 0.13.5
125
+ * allow setting a custom URI adapter
126
+
127
+ ## 0.13.4
128
+ * correct redirect url for redirect paths without leading slash
129
+ * remove core_extensions.rb as backwards compat for ruby 1.8 not needed
130
+ * replace URI.encode with ERB::Util.url_encode
131
+ * allow the response to be tapped
132
+
133
+ ## 0.13.3
134
+ * minor improvement
135
+ * added option to allow for streaming large files without loading them into memory (672cdae)
136
+
137
+ ## 0.13.2
138
+ * minor improvement
139
+ * [Set correct path on redirect to filename](https://github.com/jnunemaker/httparty/pull/337)
140
+ * ensure logger works with curl format
141
+
142
+ ## 0.13.1 2014-04-08
143
+ * new
144
+ * [Added ability to specify a body_stream in HttpRequest](https://github.com/jnunemaker/httparty/pull/275)
145
+ * [Added read_timeout and open_timeout options](https://github.com/jnunemaker/httparty/pull/278)
146
+ * change
147
+ * [Initialize HTTParty requests with an URI object and a String](https://github.com/jnunemaker/httparty/pull/274)
148
+ * minor improvement
149
+ * [Add stackexchange API example](https://github.com/jnunemaker/httparty/pull/280)
150
+
151
+ ## 0.13.0 2014-02-14
152
+ * new
153
+ * [Add CSV support](https://github.com/jnunemaker/httparty/pull/269)
154
+ * [Allows PKCS12 client certificates](https://github.com/jnunemaker/httparty/pull/246)
155
+ * bug fix
156
+ * [Digest auth no longer fails when multiple headers are sent by the server](https://github.com/jnunemaker/httparty/pull/272)
157
+ * [Use 'Basement.copy' when calling 'HTTParty.copy'](https://github.com/jnunemaker/httparty/pull/268)
158
+ * [No longer appends ampersand when queries are embedded in paths](https://github.com/jnunemaker/httparty/pull/252)
159
+ * change
160
+ * [Merge - instead of overwrite - default headers with request provided headers](https://github.com/jnunemaker/httparty/pull/270)
161
+ * [Modernize respond_to implementations to support second param](https://github.com/jnunemaker/httparty/pull/264)
162
+ * [Sort query parameters by key before processing](https://github.com/jnunemaker/httparty/pull/245)
163
+ * minor improvement
164
+ * [Add HTTParty::Error base class](https://github.com/jnunemaker/httparty/pull/260)
165
+
166
+ ## 0.12.0 2013-10-10
167
+ * new
168
+ * [Added initial logging support](https://github.com/jnunemaker/httparty/pull/243)
169
+ * [Add support for local host and port binding](https://github.com/jnunemaker/httparty/pull/238)
170
+ * [content_type_charset_support](https://github.com/jnunemaker/httparty/commit/82e351f0904e8ecc856015ff2854698a2ca47fbc)
171
+ * bug fix
172
+ * [No longer attempt to decompress the body on HEAD requests](https://github.com/jnunemaker/httparty/commit/f2b8cc3d49e0e9363d7054b14f30c340d7b8e7f1)
173
+ * [Adding java check in aliasing of multiple choices](https://github.com/jnunemaker/httparty/pull/204/commits)
174
+ * change
175
+ * [MIME-type files of javascript are returned as a string instead of JSON](https://github.com/jnunemaker/httparty/pull/239)
176
+ * [Made SSL connections use the system certificate store by default](https://github.com/jnunemaker/httparty/pull/226)
177
+ * [Do not pass proxy options to Net::HTTP connection if not specified](https://github.com/jnunemaker/httparty/pull/222)
178
+ * [Replace multi_json with stdlib json](https://github.com/jnunemaker/httparty/pull/214)
179
+ * [Require Ruby >= 1.9.3]
180
+ * [Response returns array of returned cookie strings](https://github.com/jnunemaker/httparty/pull/218)
181
+ * [Allow '=' within value of a cookie]
182
+ * minor improvements
183
+ * [Improve documentation of ssl_ca_file, ssl_ca_path](https://github.com/jnunemaker/httparty/pull/223)
184
+ * [Fix example URLs](https://github.com/jnunemaker/httparty/pull/232)
185
+
186
+ ## 0.11.0 2013-04-10
187
+ * new
188
+ * [Add COPY http request handling](https://github.com/jnunemaker/httparty/pull/190)
189
+ * [Ruby 2.0 tests](https://github.com/jnunemaker/httparty/pull/194)
190
+ * [Ruby >= 2.0.0 support both multiple_choice? and multiple_choices?]
191
+ * bug fix
192
+ * [Maintain blocks passed to 'perform' in redirects](https://github.com/jnunemaker/httparty/pull/191)
193
+ * [Fixed nc value being quoted, this was against spec](https://github.com/jnunemaker/httparty/pull/196)
194
+ * [Request#uri no longer duplicates non-relative-path params](https://github.com/jnunemaker/httparty/pull/189)
195
+ * change
196
+ * [Client-side-only cookie attributes are removed: case-insensitive](https://github.com/jnunemaker/httparty/pull/188)
197
+
198
+ ## 0.10.2 2013-01-26
199
+ * bug fix
200
+ * [hash_conversions misnamed variable](https://github.com/jnunemaker/httparty/pull/187)
201
+
202
+ ## 0.10.1 2013-01-26
203
+ * new
204
+ * [Added support for MOVE requests](https://github.com/jnunemaker/httparty/pull/183)
205
+ * [Bump multi xml version](https://github.com/jnunemaker/httparty/pull/181)
206
+
207
+ ## 0.10.0 2013-01-10
208
+ * changes
209
+ * removed yaml support because of security risk (see rails yaml issues)
210
+
211
+ ## 0.9.0 2012-09-07
212
+ * new
213
+ * [support for connection adapters](https://github.com/jnunemaker/httparty/pull/157)
214
+ * [allow ssl_version on ruby 1.9](https://github.com/jnunemaker/httparty/pull/159)
215
+ * bug fixes
216
+ * [don't treat port 4430 as ssl](https://github.com/jnunemaker/httparty/commit/a296b1c97f83d7dcc6ef85720a43664c265685ac)
217
+ * [deep clone default options](https://github.com/jnunemaker/httparty/commit/f74227d30f9389b4b23a888c9af49fb9b8248e1f)
218
+ * a few net digest auth fixes
219
+
220
+ ## 0.8.3 2012-04-21
221
+ * new
222
+ * [lazy parsing of responses](https://github.com/jnunemaker/httparty/commit/9fd5259c8dab00e426082b66af44ede2c9068f45)
223
+ * [add support for PATCH requests](https://github.com/jnunemaker/httparty/commit/7ab6641e37a9e31517e46f6124f38c615395d38a)
224
+ * bug fixes
225
+ * [subclasses no longer override superclass options](https://github.com/jnunemaker/httparty/commit/682af8fbf672e7b3009e650da776c85cdfe78d39)
226
+
227
+ ## 0.8.2 2012-04-12
228
+ * new
229
+ * add -r to make CLI return failure code if status >= 400
230
+ * allow blank username from CLI
231
+ * bug fixes
232
+ * return nil for null body
233
+ * automatically deflate responses with a Content-Encoding: x-gzip header
234
+ * Do not HEAD on POST request with digest authentication
235
+ * add support for proxy authentication
236
+ * fix posting data with CLI
237
+ * require rexml/document if xml format from CLI
238
+ * support for fragmented responses
239
+
240
+ ## 0.8.1 2011-10-05
241
+ * bug fixes
242
+ * content-encoding header should be removed when automatically inflating the body
243
+
244
+ ## 0.8.0 2011-09-13
245
+ * new
246
+ * switch to multi json/xml for parsing by default
247
+ * bug fixes
248
+ * fix redirects to relative uri's
249
+
250
+ ## 0.7.8 2011-06-06
251
+ * bug fix
252
+ * Make response honor respond to
253
+ * net http timeout can also be a float
254
+
255
+ ## 0.7.7 2011-04-16
256
+ * bug fix
257
+ * Fix NoMethodError when using the NON_RAILS_QUERY_STRING_NORMALIZER with a hash whose key is a symbol and value is nil
258
+
259
+ ## 0.7.5 2011-04-16
260
+ * bug fix
261
+ * caused issue with latest rubygems
262
+
263
+ ## 0.7.4 2011-02-13
264
+ * bug fixes
265
+ * Set VERIFY_NONE when using https. Ruby 1.9.2 no longer sets this for us. gh-67
266
+
267
+ ## 0.7.3 2011-01-20
268
+ * bug fixes
269
+ * Fix digest auth for unspecified quality of protection (bjoernalbers, mtrudel, dwo)
270
+
271
+ ## 0.7.2 2011-01-20
272
+ * bug fixes
273
+ * Fix gem dependencies
274
+
275
+ ## 0.7.1 2011-01-19
276
+ * bug fixes
277
+ * Fix uninitialized constant HTTParty::Response::Net in 1.9.2 (cap10morgan)
278
+ * Other fixes for 1.9.2, full suite still fails (cap10morgan)
279
+
280
+ ## 0.7.0 2011-01-18
281
+ * minor enhancements
282
+ * Added query methods for HTTP status codes, i.e. response.success?
283
+ response.created? (thanks citizenparker)
284
+ * Added support for ssl_ca_file and ssl_ca_path (dlitz)
285
+ * Allow custom query string normalization. gh-8
286
+ * Unlock private keys with password (freerange)
287
+ * Added high level request documentation (phildarnowsky)
288
+ * Added basic post example (pbuckley)
289
+ * Response object has access to its corresponding request object
290
+ * Added example of siginin into tripit.com
291
+ * Added option to follow redirects (rkj). gh-56
292
+ * bug fixes
293
+ * Fixed superclass mismatch exception while running tests
294
+ (thanks dlitz http://github.com/dlitz/httparty/commit/48224f0615b32133afcff4718ad426df7a4b401b)
295
+
296
+ ## 0.6.1 2010-07-07
297
+ * minor enhancements
298
+ * updated to crack 0.1.8
299
+ * bug fixes
300
+ * subclasses always merge into the parent's default_options and
301
+ default_cookies (l4rk).
302
+ * subclasses play nicely with grand parents. gh-49
303
+
304
+ ## 0.6.0 2010-06-13
305
+ * major enhancements
306
+ * Digest Auth (bartiaco, sbecker, gilles, and aaronrussell)
307
+ * Maintain HTTP method across redirects (bartiaco and sbecker)
308
+ * HTTParty::Response#response returns the Net::HTTPResponse object
309
+ * HTTParty::Response#headers returns a HTTParty::Response::Headers object
310
+ which quacks like a Hash + Net::HTTPHeader. The #headers method continues
311
+ to be backwards-compatible with the old Hash return value but may become
312
+ deprecated in the future.
313
+
314
+ * minor enhancements
315
+ * Update crack requirement to version 0.1.7
316
+ You may still get a warning because Crack's version constant is out of date
317
+ * Timeout option can be set for all requests using HTTParty.default_timeout (taazza)
318
+ * Closed #38 "headers hash should downcase keys so canonical header name can be used"
319
+ * Closed #40 "Gzip response" wherein gziped and deflated responses are
320
+ automatically inflated. (carsonmcdonald)
321
+
322
+ ## 0.5.2 2010-01-31
323
+ * minor enhancements
324
+ * Update crack requirement to version 0.1.6
325
+
326
+ ## 0.5.1 2010-01-30
327
+ * bug fixes
328
+ * Handle 304 response correctly by returning the HTTParty::Response object instead of redirecting (seth and hellvinz)
329
+ * Only redirect 300 responses if the header contains a Location
330
+ * Don't append empty query strings to the uri. Closes #31
331
+ * When no_follow is enabled, only raise the RedirectionTooDeep exception when a response tries redirecting. Closes #28
332
+
333
+ * major enhancements
334
+ * Removed rubygems dependency. I suggest adding rubygems to RUBYOPT if this causes problems for you.
335
+ $ export RUBYOPT='rubygems'
336
+ * HTTParty#debug_output prints debugging information for the current request (iwarshak)
337
+ * HTTParty#no_follow now available as a class-level option. Sets whether or not to follow redirects.
338
+
339
+ * minor enhancements
340
+ * HTTParty::VERSION now available
341
+ * Update crack requirement to version 0.1.5
342
+
343
+ ## 0.5.0 2009-12-07
344
+ * bug fixes
345
+ * inheritable attributes no longer mutable by subclasses (yyyc514)
346
+ * namespace BasicObject within HTTParty to avoid class name collisions (eric)
347
+
348
+ * major enhancements
349
+ * Custom Parsers via class or proc
350
+ * Deprecation warning on HTTParty::AllowedFormats
351
+ moved to HTTParty::Parser::SupportedFormats
352
+
353
+ * minor enhancements
354
+ * Curl inspired output when using the binary in verbose mode (alexvollmer)
355
+ * raise UnsupportedURIScheme when scheme is not HTTP or HTTPS (djspinmonkey)
356
+ * Allow SSL for ports other than 443 when scheme is HTTPS (stefankroes)
357
+ * Accept PEM certificates via HTTParty#pem (chrislo)
358
+ * Support HEAD and OPTION verbs (grempe)
359
+ * Verify SSL certificates when providing a PEM file (collectiveidea/danielmorrison)
360
+
361
+ ## 0.4.5 2009-09-12
362
+ * bug fixes
363
+ * Fixed class-level headers overwritten by cookie management code. Closes #19
364
+ * Fixed "superclass mismatch for class BlankSlate" error. Closes #20
365
+ * Fixed reading files as post data from the command line (vesan)
366
+
367
+ * minor enhancements
368
+ * Timeout option added; will raise a Timeout::Error after the timeout has elapsed (attack). Closes #17
369
+ HTTParty.get "http://github.com", timeout: 1
370
+ * Building gem with Jeweler
371
+
372
+ ## 0.4.4 2009-07-19
373
+ * 2 minor update
374
+ * :query no longer sets form data. Use body and set content type to application/x-www-form-urlencoded if you need it. :query was wrong for that.
375
+ * Fixed a bug in the cookies class method that caused cookies to be forgotten after the first request.
376
+ * Also, some general cleanup of tests and such.
377
+
378
+ ## 0.4.3 2009-04-23
379
+ * 1 minor update
380
+ * added message to the response object
381
+
382
+ ## 0.4.2 2009-03-30
383
+ * 2 minor changes
384
+ * response code now returns an integer instead of a string (jqr)
385
+ * rubyforge project setup for crack so i'm now depending on that instead of jnunemaker-crack
386
+
387
+ ## 0.4.1 2009-03-29
388
+ * 1 minor fix
389
+ * gem 'jnunemaker-crack' instead of gem 'crack'
390
+
391
+ ## 0.4.0 2009-03-29
392
+ * 1 minor change
393
+ * Switched xml and json parsing to crack (same code as before just moved to gem for easier reuse in other projects)
394
+
395
+ ## 0.3.1 2009-02-10
396
+ * 1 minor fix, 1 minor enhancement
397
+ * Fixed unescaping umlauts (siebertm)
398
+ * Added yaml response parsing (Miha Filej)
399
+
400
+ ## 0.3.0 2009-01-31
401
+ * 1 major enhancement, 1 bug fix
402
+ * JSON gem no longer a requirement. It was conflicting with rails json stuff so I just stole ActiveSupport's json decoding and bundled it with HTTParty.
403
+ * Fixed bug where query strings were being duplicated on redirects
404
+ * Added a bunch of specs and moved some code around.
405
+
406
+ ## 0.2.10 2009-01-29
407
+ * 1 minor enhancement
408
+ * Made encoding on query parameters treat everything except URI::PATTERN::UNRESERVED as UNSAFE to force encoding of '+' character (Julian Russell)
409
+
410
+ ## 0.2.9 2009-01-29
411
+ * 3 minor enhancements
412
+ * Added a 'headers' accessor to the response with a hash of any HTTP headers. (Don Peterson)
413
+ * Add support for a ":cookies" option to be used at the class level, or as an option on any individual call. It should be passed a hash, which will be converted to the proper format and added to the request headers when the call is made. (Don Peterson)
414
+ * Refactored several specs and added a full suite of cucumber features (Don Peterson)
415
+
416
+ ## 0.2.8 2009-01-28
417
+ * 1 major fix
418
+ * fixed major bug with response where it wouldn't iterate or really work at all with parsed responses
419
+
420
+ ## 0.2.7 2009-01-28
421
+ * 2 minor fixes, 2 minor enhancements, 2 major enhancements
422
+ * fixed undefined method add_node for nil class error that occasionally happened (juliocesar)
423
+ * Handle nil or unexpected values better when typecasting. (Brian Landau)
424
+ * More robust handling of mime types (Alex Vollmer)
425
+ * Fixed support for specifying headers and added support for basic auth to CLI. (Alex Vollmer)
426
+ * Added first class response object that includes original body and status code (Alex Vollmer)
427
+ * Now parsing all response types as some non-200 responses provide important information, this means no more exception raising (Alex Vollmer)
428
+
429
+ ## 0.2.6 2009-01-05
430
+ * 1 minor bug fix
431
+ * added explicit require of time as Time#parse failed outside of rails (willcodeforfoo)
432
+
433
+ ## 0.2.5 2009-01-05
434
+ * 1 major enhancement
435
+ * Add command line interface to HTTParty (Alex Vollmer)
436
+
437
+ ## 0.2.4 2008-12-23
438
+ * 1 bug fix
439
+ * Fixed that mimetype detection was failing if no mimetype was returned from service (skippy)
440
+ ## 0.2.3 2008-12-23
441
+ * 1 bug fix
442
+ * Fixed typecasting class variable naming issue
443
+
444
+ ## 0.2.2 2008-12-08
445
+ * 1 bug fix
446
+ * Added the missing core extension hash method to_xml_attributes
447
+
448
+ ## 0.2.1 2008-12-08
449
+ * 1 bug fix
450
+ * Fixed that HTTParty was borking ActiveSupport and as such Rails (thanks to Rob Sanheim)
451
+
452
+ ## 0.2.0 2008-12-07
453
+ * 1 major enhancement
454
+ * Removed ActiveSupport as a dependency. Now requires json gem for json deserialization and uses an included class to do the xml parsing.
455
+
456
+ ## 0.1.8 2008-11-30
457
+ * 3 major enhancements
458
+ * Moved base_uri normalization into request class and out of httparty module, fixing
459
+ the problem where base_uri was not always being normalized.
460
+ * Stupid simple support for HTTParty.get/post/put/delete. (jqr)
461
+ * Switched gem management to Echoe from newgem.
462
+
463
+ ## 0.1.7 2008-11-30
464
+ * 1 major enhancement
465
+ * fixed multiple class definitions overriding each others options
466
+
467
+ ## 0.1.6 2008-11-26
468
+ * 1 major enhancement
469
+ * now passing :query to set_form_data if post request to avoid content length errors
470
+
471
+ ## 0.1.5 2008-11-14
472
+ * 2 major enhancements
473
+ * Refactored send request method out into its own object.
474
+ * Added :html format if you just want to do that.
475
+
476
+ ## 0.1.4 2008-11-08
477
+ * 3 major enhancements:
478
+ * Removed some cruft
479
+ * Added ability to follow redirects automatically and turn that off (Alex Vollmer)
480
+
481
+ ## 0.1.3 2008-08-22
482
+
483
+ * 3 major enhancements:
484
+ * Added http_proxy key for setting proxy server and port (francxk@gmail.com)
485
+ * Now raises exception when http error occurs (francxk@gmail.com)
486
+ * Changed auto format detection from file extension to response content type (Jay Pignata)
487
+
488
+ ## 0.1.2 2008-08-09
489
+
490
+ * 1 major enhancement:
491
+ * default_params were not being appended to query string if option[:query] was blank
492
+
493
+ ## 0.1.1 2008-07-30
494
+
495
+ * 2 major enhancement:
496
+ * Added :basic_auth key for options when making a request
497
+ * :query and :body both now work with query string or hash
498
+
499
+ ## 0.1.0 2008-07-27
500
+
501
+ * 1 major enhancement:
502
+ * Initial release