esod-client 0.2.1 → 0.3.0

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 (39) hide show
  1. data/VERSION +1 -1
  2. data/command_line_options.rb +3 -6
  3. data/esod-client.gemspec +29 -27
  4. data/lib/esod_client/esod_client.rb +2 -2
  5. data/lib/rest-client-1.4.2/README.rdoc +243 -0
  6. data/lib/rest-client-1.4.2/Rakefile +60 -0
  7. data/lib/rest-client-1.4.2/VERSION +1 -0
  8. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/bin/restclient +0 -0
  9. data/lib/rest-client-1.4.2/history.md +54 -0
  10. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/lib/rest_client.rb +0 -0
  11. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/lib/restclient.rb +77 -21
  12. data/lib/rest-client-1.4.2/lib/restclient/abstract_response.rb +87 -0
  13. data/lib/rest-client-1.4.2/lib/restclient/exceptions.rb +146 -0
  14. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/lib/restclient/net_http_ext.rb +0 -0
  15. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/lib/restclient/payload.rb +15 -12
  16. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/lib/restclient/raw_response.rb +7 -6
  17. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/lib/restclient/request.rb +61 -89
  18. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/lib/restclient/resource.rb +11 -10
  19. data/lib/rest-client-1.4.2/lib/restclient/response.rb +46 -0
  20. data/lib/{rest-client-1.2.0/spec/mixin/response_spec.rb → rest-client-1.4.2/spec/abstract_response_spec.rb} +3 -12
  21. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/spec/base.rb +0 -0
  22. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/spec/exceptions_spec.rb +23 -9
  23. data/lib/rest-client-1.4.2/spec/integration_spec.rb +38 -0
  24. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/spec/master_shake.jpg +0 -0
  25. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/spec/payload_spec.rb +20 -6
  26. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/spec/raw_response_spec.rb +1 -1
  27. data/lib/rest-client-1.4.2/spec/request_spec.rb +518 -0
  28. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/spec/resource_spec.rb +24 -0
  29. data/lib/rest-client-1.4.2/spec/response_spec.rb +130 -0
  30. data/lib/{rest-client-1.2.0 → rest-client-1.4.2}/spec/restclient_spec.rb +21 -11
  31. metadata +38 -29
  32. data/lib/rest-client-1.2.0/README.rdoc +0 -102
  33. data/lib/rest-client-1.2.0/Rakefile +0 -57
  34. data/lib/rest-client-1.2.0/VERSION +0 -1
  35. data/lib/rest-client-1.2.0/lib/restclient/exceptions.rb +0 -89
  36. data/lib/rest-client-1.2.0/lib/restclient/mixin/response.rb +0 -48
  37. data/lib/rest-client-1.2.0/lib/restclient/response.rb +0 -20
  38. data/lib/rest-client-1.2.0/spec/request_spec.rb +0 -521
  39. data/lib/rest-client-1.2.0/spec/response_spec.rb +0 -21
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.3.0
@@ -10,10 +10,7 @@ Options:
10
10
  opt :property, "Property of the resource, dotted notation (ex: vm_configuration_parameters.first.name)", :type => :string, :required => false
11
11
  opt :api_token, "User authentication token", :type => :string, :required => true
12
12
  end
13
- if $options[:resource] || $options[:id]
13
+
14
+ if ( $options[:resource] || $options[:id] ) && $options[:resource_path]
14
15
  Trollop::die :resource_path, "cannot be specified if --resource and --id options are used. Use either --resource-path OR --resource and --id."
15
- elsif $options[:resource_path]
16
- if $options[:resource] || $options[:id]
17
- Trollop::die :resource, "cannot be specified if --resource-path option is used. Use either --resource-path OR --resource and --id."
18
- end
19
- end
16
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{esod-client}
8
- s.version = "0.2.1"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Yan Pritzker", "CohesiveFT"]
12
- s.date = %q{2010-01-13}
12
+ s.date = %q{2010-10-06}
13
13
  s.description = %q{Consume REST services from Elastic Server On Demand.}
14
14
  s.email = %q{support@elasticserver.com}
15
15
  s.extra_rdoc_files = [
@@ -78,36 +78,38 @@ Gem::Specification.new do |s|
78
78
  "lib/mime-types-1.16/setup.rb",
79
79
  "lib/mime-types-1.16/test/test_mime_type.rb",
80
80
  "lib/mime-types-1.16/test/test_mime_types.rb",
81
- "lib/rest-client-1.2.0/README.rdoc",
82
- "lib/rest-client-1.2.0/Rakefile",
83
- "lib/rest-client-1.2.0/VERSION",
84
- "lib/rest-client-1.2.0/bin/restclient",
85
- "lib/rest-client-1.2.0/lib/rest_client.rb",
86
- "lib/rest-client-1.2.0/lib/restclient.rb",
87
- "lib/rest-client-1.2.0/lib/restclient/exceptions.rb",
88
- "lib/rest-client-1.2.0/lib/restclient/mixin/response.rb",
89
- "lib/rest-client-1.2.0/lib/restclient/net_http_ext.rb",
90
- "lib/rest-client-1.2.0/lib/restclient/payload.rb",
91
- "lib/rest-client-1.2.0/lib/restclient/raw_response.rb",
92
- "lib/rest-client-1.2.0/lib/restclient/request.rb",
93
- "lib/rest-client-1.2.0/lib/restclient/resource.rb",
94
- "lib/rest-client-1.2.0/lib/restclient/response.rb",
95
- "lib/rest-client-1.2.0/spec/base.rb",
96
- "lib/rest-client-1.2.0/spec/exceptions_spec.rb",
97
- "lib/rest-client-1.2.0/spec/master_shake.jpg",
98
- "lib/rest-client-1.2.0/spec/mixin/response_spec.rb",
99
- "lib/rest-client-1.2.0/spec/payload_spec.rb",
100
- "lib/rest-client-1.2.0/spec/raw_response_spec.rb",
101
- "lib/rest-client-1.2.0/spec/request_spec.rb",
102
- "lib/rest-client-1.2.0/spec/resource_spec.rb",
103
- "lib/rest-client-1.2.0/spec/response_spec.rb",
104
- "lib/rest-client-1.2.0/spec/restclient_spec.rb",
81
+ "lib/rest-client-1.4.2/README.rdoc",
82
+ "lib/rest-client-1.4.2/Rakefile",
83
+ "lib/rest-client-1.4.2/VERSION",
84
+ "lib/rest-client-1.4.2/bin/restclient",
85
+ "lib/rest-client-1.4.2/history.md",
86
+ "lib/rest-client-1.4.2/lib/rest_client.rb",
87
+ "lib/rest-client-1.4.2/lib/restclient.rb",
88
+ "lib/rest-client-1.4.2/lib/restclient/abstract_response.rb",
89
+ "lib/rest-client-1.4.2/lib/restclient/exceptions.rb",
90
+ "lib/rest-client-1.4.2/lib/restclient/net_http_ext.rb",
91
+ "lib/rest-client-1.4.2/lib/restclient/payload.rb",
92
+ "lib/rest-client-1.4.2/lib/restclient/raw_response.rb",
93
+ "lib/rest-client-1.4.2/lib/restclient/request.rb",
94
+ "lib/rest-client-1.4.2/lib/restclient/resource.rb",
95
+ "lib/rest-client-1.4.2/lib/restclient/response.rb",
96
+ "lib/rest-client-1.4.2/spec/abstract_response_spec.rb",
97
+ "lib/rest-client-1.4.2/spec/base.rb",
98
+ "lib/rest-client-1.4.2/spec/exceptions_spec.rb",
99
+ "lib/rest-client-1.4.2/spec/integration_spec.rb",
100
+ "lib/rest-client-1.4.2/spec/master_shake.jpg",
101
+ "lib/rest-client-1.4.2/spec/payload_spec.rb",
102
+ "lib/rest-client-1.4.2/spec/raw_response_spec.rb",
103
+ "lib/rest-client-1.4.2/spec/request_spec.rb",
104
+ "lib/rest-client-1.4.2/spec/resource_spec.rb",
105
+ "lib/rest-client-1.4.2/spec/response_spec.rb",
106
+ "lib/rest-client-1.4.2/spec/restclient_spec.rb",
105
107
  "lib/trollop.rb"
106
108
  ]
107
109
  s.homepage = %q{http://github.com/cohesive/esod-client}
108
110
  s.rdoc_options = ["--charset=UTF-8"]
109
111
  s.require_paths = ["lib"]
110
- s.rubygems_version = %q{1.3.5}
112
+ s.rubygems_version = %q{1.3.6}
111
113
  s.summary = %q{ESOD REST Client}
112
114
 
113
115
  if s.respond_to? :specification_version then
@@ -14,7 +14,7 @@ class ESODClient
14
14
  end
15
15
 
16
16
  def get_path(path)
17
- response = RestClient.get("#{@url}/#{path}.xml?key=#{@token}").to_s
17
+ response = RestClient.get(URI.join(@url, "#{path}.xml?key=#{@token}").to_s).to_s
18
18
  response_hash = Hash.from_xml(response)
19
19
  end
20
- end
20
+ end
@@ -0,0 +1,243 @@
1
+ = REST Client -- simple DSL for accessing HTTP and REST resources
2
+
3
+ A simple HTTP and REST client for Ruby, inspired by the Sinatra's microframework style
4
+ of specifying actions: get, put, post, delete.
5
+
6
+ == Usage: Raw URL
7
+
8
+ require 'rest_client'
9
+
10
+ RestClient.get 'http://example.com/resource'
11
+
12
+ RestClient.get 'https://user:password@example.com/private/resource'
13
+
14
+ RestClient.post 'http://example.com/resource', :param1 => 'one', :nested => { :param2 => 'two' }
15
+
16
+ RestClient.post "http://example.com/resource", { 'x' => 1 }.to_json, :content_type => :json, :accept => :json
17
+
18
+ RestClient.delete 'http://example.com/resource'
19
+
20
+ == Multipart
21
+
22
+ Yeah, that's right! This does multipart sends for you!
23
+
24
+ RestClient.post '/data', :myfile => File.new("/path/to/image.jpg")
25
+
26
+ This does two things for you:
27
+
28
+ * Auto-detects that you have a File value sends it as multipart
29
+ * Auto-detects the mime of the file and sets it in the HEAD of the payload for each entry
30
+
31
+ If you are sending params that do not contain a File object but the payload needs to be multipart then:
32
+
33
+ RestClient.post '/data', :foo => 'bar', :multipart => true
34
+
35
+ == Usage: ActiveResource-Style
36
+
37
+ resource = RestClient::Resource.new 'http://example.com/resource'
38
+ resource.get
39
+
40
+ private_resource = RestClient::Resource.new 'https://example.com/private/resource', 'user', 'pass'
41
+ private_resource.put File.read('pic.jpg'), :content_type => 'image/jpg'
42
+
43
+ See RestClient::Resource module docs for details.
44
+
45
+ == Usage: Resource Nesting
46
+
47
+ site = RestClient::Resource.new('http://example.com')
48
+ site['posts/1/comments'].post 'Good article.', :content_type => 'text/plain'
49
+
50
+ See RestClient::Resource docs for details.
51
+
52
+ == Exceptions (see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html)
53
+
54
+ * for results code between 200 and 206 a RestClient::Response will be returned
55
+ * for results code 301 and 302 the redirection will be followed if the request is a get or a head
56
+ * for result code 303 the redirection will be followed and the request transformed into a get
57
+ * for other cases a RestClient::Exception holding the Response will be raised, a specific exception class will be thrown for know error codes
58
+
59
+ RestClient.get 'http://example.com/resource'
60
+ ➔ RestClient::ResourceNotFound: RestClient::ResourceNotFound
61
+
62
+ begin
63
+ RestClient.get 'http://example.com/resource'
64
+ rescue => e
65
+ e.response
66
+ end
67
+ ➔ 404 Resource Not Found | text/html 282 bytes
68
+
69
+ == Result handling
70
+
71
+ A block can be passed to the RestClient method, this block will then be called with the Response.
72
+ Response.return! can be called to invoke the default response's behavior.
73
+
74
+ # Don't raise exceptions but return the response
75
+ RestClient.get('http://example.com/resource'){|response| response }
76
+ ➔ 404 Resource Not Found | text/html 282 bytes
77
+
78
+ # Manage a specific error code
79
+ RestClient.get('http://my-rest-service.com/resource'){ |response, &block|
80
+ case response.code
81
+ when 200
82
+ p "It worked !"
83
+ response
84
+ when 423
85
+ raise SomeCustomExceptionIfYouWant
86
+ else
87
+ response.return! &block
88
+ end
89
+ }
90
+
91
+ # Follow redirections for all request types and not only for get and head
92
+ # RFC : "If the 301 (or 302) status code is received in response to a request other than GET or HEAD,
93
+ # the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user,
94
+ # since this might change the conditions under which the request was issued."
95
+ RestClient.get('http://my-rest-service.com/resource'){ |response, &block|
96
+ if [301, 302].include? response.code
97
+ response.follow_redirection &block
98
+ else
99
+ response.return! &block
100
+ end
101
+ }
102
+
103
+ == Non-normalized URIs.
104
+
105
+ If you want to use non-normalized URIs, you can normalize them with the addressable gem (http://addressable.rubyforge.org/api/).
106
+
107
+ require 'addressable/uri'
108
+ RestClient.get(Addressable::URI.parse("http://www.詹姆斯.com/").normalize.to_str)
109
+
110
+ == Lower-level access
111
+
112
+ For cases not covered by the general API, you can use the RestClient::Resource class which provide a lower-level API, see the class' rdoc for more information.
113
+
114
+ == Shell
115
+
116
+ The restclient shell command gives an IRB session with RestClient already loaded:
117
+
118
+ $ restclient
119
+ >> RestClient.get 'http://example.com'
120
+
121
+ Specify a URL argument for get/post/put/delete on that resource:
122
+
123
+ $ restclient http://example.com
124
+ >> put '/resource', 'data'
125
+
126
+ Add a user and password for authenticated resources:
127
+
128
+ $ restclient https://example.com user pass
129
+ >> delete '/private/resource'
130
+
131
+ Create ~/.restclient for named sessions:
132
+
133
+ sinatra:
134
+ url: http://localhost:4567
135
+ rack:
136
+ url: http://localhost:9292
137
+ private_site:
138
+ url: http://example.com
139
+ username: user
140
+ password: pass
141
+
142
+ Then invoke:
143
+
144
+ $ restclient private_site
145
+
146
+ Use as a one-off, curl-style:
147
+
148
+ $ restclient get http://example.com/resource > output_body
149
+
150
+ $ restclient put http://example.com/resource < input_body
151
+
152
+ == Logging
153
+
154
+ To enable logging you can
155
+
156
+ * set RestClient.log with a ruby Logger
157
+ * or set an environment variable to avoid modifying the code (in this case you can use a file name, "stdout" or "stderr"):
158
+
159
+ $ RESTCLIENT_LOG=stdout path/to/my/program
160
+
161
+ Either produces logs like this:
162
+
163
+ RestClient.get "http://some/resource"
164
+ # => 200 OK | text/html 250 bytes
165
+ RestClient.put "http://some/resource", "payload"
166
+ # => 401 Unauthorized | application/xml 340 bytes
167
+
168
+ Note that these logs are valid Ruby, so you can paste them into the restclient
169
+ shell or a script to replay your sequence of rest calls.
170
+
171
+ == Proxy
172
+
173
+ All calls to RestClient, including Resources, will use the proxy specified by
174
+ RestClient.proxy:
175
+
176
+ RestClient.proxy = "http://proxy.example.com/"
177
+ RestClient.get "http://some/resource"
178
+ # => response from some/resource as proxied through proxy.example.com
179
+
180
+ Often the proxy url is set in an environment variable, so you can do this to
181
+ use whatever proxy the system is configured to use:
182
+
183
+ RestClient.proxy = ENV['http_proxy']
184
+
185
+ == Cookies
186
+
187
+ Request and Response objects know about HTTP cookies, and will automatically
188
+ extract and set headers for them as needed:
189
+
190
+ response = RestClient.get 'http://example.com/action_which_sets_session_id'
191
+ response.cookies
192
+ # => {"_applicatioN_session_id" => "1234"}
193
+
194
+ response2 = RestClient.post(
195
+ 'http://localhost:3000/',
196
+ {:param1 => "foo"},
197
+ {:cookies => {:session_id => "1234"}}
198
+ )
199
+ # ...response body
200
+
201
+ == SSL Client Certificates
202
+
203
+ RestClient::Resource.new(
204
+ 'https://example.com',
205
+ :ssl_client_cert => OpenSSL::X509::Certificate.new(File.read("cert.pem")),
206
+ :ssl_client_key => OpenSSL::PKey::RSA.new(File.read("key.pem"), "passphrase, if any"),
207
+ :ssl_ca_file => "ca_certificate.pem",
208
+ :verify_ssl => OpenSSL::SSL::VERIFY_PEER
209
+ ).get
210
+
211
+ Self-signed certificates can be generated with the openssl command-line tool.
212
+
213
+ == Hook
214
+
215
+ RestClient.add_before_execution_proc add a Proc to be called before each execution, it's handy if you need a direct access to the http request.
216
+
217
+ Example:
218
+
219
+ # Add oath support using the oauth gem
220
+ require 'oauth'
221
+ access_token = ...
222
+
223
+ RestClient.add_before_execution_proc do |req, params|
224
+ access_token.sign! req
225
+ end
226
+
227
+ RestClient.get 'http://example.com'
228
+
229
+ == Meta
230
+
231
+ Written by Adam Wiggins, major modifications by Blake Mizerany, maintained by Julien Kirch
232
+
233
+ Patches contributed by many, including Chris Anderson, Greg Borenstein, Ardekantur, Pedro Belo, Rafael Souza, Rick Olson, Aman Gupta, François Beausoleil and Nick Plante.
234
+
235
+ Released under the MIT License: http://www.opensource.org/licenses/mit-license.php
236
+
237
+ Main page: http://github.com/archiloque/rest-client
238
+
239
+ Rdoc: http://rdoc.info/projects/archiloque/rest-client
240
+
241
+ Mailing list: rest.client@librelist.com (send a mail to subscribe).
242
+
243
+ IRC: #rest-client at freenode
@@ -0,0 +1,60 @@
1
+ require 'rake'
2
+
3
+ require 'jeweler'
4
+
5
+ Jeweler::Tasks.new do |s|
6
+ s.name = "rest-client"
7
+ s.description = "A simple HTTP and REST client for Ruby, inspired by the Sinatra microframework style of specifying actions: get, put, post, delete."
8
+ s.summary = "Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions."
9
+ s.author = "Adam Wiggins"
10
+ s.email = "rest.client@librelist.com"
11
+ s.homepage = "http://github.com/archiloque/rest-client"
12
+ s.rubyforge_project = "rest-client"
13
+ s.has_rdoc = true
14
+ s.files = FileList["[A-Z]*", "{bin,lib,spec}/**/*"]
15
+ s.executables = %w(restclient)
16
+ s.add_dependency("mime-types", ">= 1.16")
17
+ s.add_development_dependency("webmock", ">= 0.9.1")
18
+ s.add_development_dependency("rspec")
19
+ end
20
+
21
+ Jeweler::RubyforgeTasks.new
22
+
23
+ ############################
24
+
25
+ require 'spec/rake/spectask'
26
+
27
+ desc "Run all specs"
28
+ Spec::Rake::SpecTask.new('spec') do |t|
29
+ t.spec_opts = ['--colour --format progress --loadby mtime --reverse']
30
+ t.spec_files = FileList['spec/*_spec.rb']
31
+ end
32
+
33
+ desc "Print specdocs"
34
+ Spec::Rake::SpecTask.new(:doc) do |t|
35
+ t.spec_opts = ["--format", "specdoc", "--dry-run"]
36
+ t.spec_files = FileList['spec/*_spec.rb']
37
+ end
38
+
39
+ desc "Run all examples with RCov"
40
+ Spec::Rake::SpecTask.new('rcov') do |t|
41
+ t.spec_files = FileList['spec/*_spec.rb']
42
+ t.rcov = true
43
+ t.rcov_opts = ['--exclude', 'examples']
44
+ end
45
+
46
+ task :default => :spec
47
+
48
+ ############################
49
+
50
+ require 'rake/rdoctask'
51
+
52
+ Rake::RDocTask.new do |t|
53
+ t.rdoc_dir = 'rdoc'
54
+ t.title = "rest-client, fetch RESTful resources effortlessly"
55
+ t.options << '--line-numbers' << '--inline-source' << '-A cattr_accessor=object'
56
+ t.options << '--charset' << 'utf-8'
57
+ t.rdoc_files.include('README.rdoc')
58
+ t.rdoc_files.include('lib/*.rb')
59
+ end
60
+
@@ -0,0 +1 @@
1
+ 1.4.2
@@ -0,0 +1,54 @@
1
+ # 1.4.2
2
+
3
+ - fixed RestClient.add_before_execution_proc (patch provided by Nicholas Wieland)
4
+ - fixed error when an exception is raised without a response (patch provided by Caleb Land)
5
+
6
+ # 1.4.1
7
+
8
+ - fixed parameters managment when using hash
9
+
10
+ # 1.4.0
11
+
12
+ - Response is no more a String, and the mixin is replaced by an abstract_response, existing calls are redirected to response body with a warning.
13
+ - enable repeated parameters RestClient.post 'http://example.com/resource', :param1 => ['one', 'two', 'three'], => :param2 => 'foo' (patch provided by Rodrigo Panachi)
14
+ - fixed the redirect code concerning relative path and query string combination (patch provided by Kevin Read)
15
+ - redirection code moved to Response so redirection can be customized using the block syntax
16
+ - only get and head redirections are now followed by default, as stated in the specification
17
+ - added RestClient.add_before_execution_proc to hack the http request, like for oauth
18
+
19
+ The response change may be breaking in rare cases.
20
+
21
+ # 1.3.1
22
+
23
+ - added compatibility to enable responses in exception to act like Net::HTTPResponse
24
+
25
+ # 1.3.0
26
+
27
+ - a block can be used to process a request's result, this enable to handle custom error codes or paththrought (design by Cyril Rohr)
28
+ - cleaner log API, add a warning for some cases but should be compatible
29
+ - accept multiple "Set-Cookie" headers, see http://www.ietf.org/rfc/rfc2109.txt (patch provided by Cyril Rohr)
30
+ - remove "Content-Length" and "Content-Type" headers when following a redirection (patch provided by haarts)
31
+ - all http error codes have now a corresponding exception class and all of them contain the Reponse -> this means that the raised exception can be different
32
+ - changed "Content-Disposition: multipart/form-data" to "Content-Disposition: form-data" per RFC 2388 (patch provided by Kyle Crawford)
33
+
34
+ The only breaking change should be the exception classes, but as the new classes inherits from the existing ones, the breaking cases should be rare.
35
+
36
+ # 1.2.0
37
+
38
+ - formatting changed from tabs to spaces
39
+ - logged requests now include generated headers
40
+ - accept and content-type headers can now be specified using extentions: RestClient.post "http://example.com/resource", { 'x' => 1 }.to_json, :content_type => :json, :accept => :json
41
+ - should be 1.1.1 but renamed to 1.2.0 because 1.1.X versions has already been packaged on Debian
42
+
43
+ # 1.1.0
44
+
45
+ - new maintainer: Archiloque, the working repo is now at http://github.com/archiloque/rest-client
46
+ - a mailing list has been created at rest.client@librelist.com and an freenode irc channel #rest-client
47
+ - François Beausoleil' multipart code from http://github.com/francois/rest-client has been merged
48
+ - ability to use hash in hash as payload
49
+ - the mime-type code now rely on the mime-types gem http://mime-types.rubyforge.org/ instead of an internal partial list
50
+ - 204 response returns a Response instead of nil (patch provided by Elliott Draper)
51
+
52
+ All changes exept the last one should be fully compatible with the previous version.
53
+
54
+ NOTE: due to a dependency problem and to the last change, heroku users should update their heroku gem to >= 1.5.3 to be able to use this version.