softlayer_api 1.0.3 → 1.0.4

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.
@@ -36,7 +36,7 @@
36
36
  #
37
37
 
38
38
  module SoftLayer
39
- VERSION = "1.0.3" # version history at the bottom of the file.
39
+ VERSION = "1.0.4" # version history at the bottom of the file.
40
40
 
41
41
  # The base URL of the SoftLayer API's REST-like endpoints available to the public internet.
42
42
  API_PUBLIC_ENDPOINT = 'https://api.softlayer.com/rest/v3/'
@@ -75,3 +75,5 @@ end # module SoftLayer
75
75
  # 1.0.3 - Added a request filter to add result limits to request. Submitted by
76
76
  # JN. Thanks!
77
77
  #
78
+ # 1.0.4 - Fixed a bug where the result_limit and result_offset object filters were just not working.
79
+ #
@@ -93,7 +93,6 @@ module SoftLayer
93
93
  self.parameters[:result_limit]
94
94
  end
95
95
 
96
-
97
96
  def result_offset(offset)
98
97
  self.parameters[:result_offset] = offset
99
98
  self
@@ -210,7 +209,13 @@ module SoftLayer
210
209
  def result_limit(limit)
211
210
  proxy = APIParameterFilter.new
212
211
  proxy.target = self
213
- return proxy.result_limit=limit
212
+ return proxy.result_limit(limit)
213
+ end
214
+
215
+ def result_offset(offset)
216
+ proxy = APIParameterFilter.new
217
+ proxy.target = self
218
+ return proxy.result_offset(offset)
214
219
  end
215
220
 
216
221
  # This is the primary mechanism by which requests are made. If you call
@@ -308,18 +313,18 @@ module SoftLayer
308
313
  # and create a Net::HTTP request of that type. This is intended
309
314
  # to be used in the internal processing of method_missing and
310
315
  # need not be called directly.
311
- def http_request_for_method(method_name, method_url, request_body)
316
+ def http_request_for_method(method_name, method_url, request_body = nil)
312
317
  content_type_header = {"Content-Type" => "application/json"}
313
318
 
314
319
  case method_name.to_s
315
320
  when /^get/
316
- # if the user has provided some arguments to the call, we
317
- # use a POST instead of a GET in spite of the method name.
318
- if request_body && !request_body.empty?
319
- url_request = Net::HTTP::Post.new(method_url.request_uri(), content_type_header)
320
- else
321
- url_request = Net::HTTP::Get.new(method_url.request_uri())
322
- end
321
+ # if the user has provided some arguments to the call, we
322
+ # use a POST instead of a GET in spite of the method name.
323
+ if request_body && !request_body.empty?
324
+ url_request = Net::HTTP::Post.new(method_url.request_uri(), content_type_header)
325
+ else
326
+ url_request = Net::HTTP::Get.new(method_url.request_uri())
327
+ end
323
328
  when /^edit/
324
329
  url_request = Net::HTTP::Put.new(method_url.request_uri(), content_type_header)
325
330
  when /^delete/
@@ -327,16 +332,16 @@ module SoftLayer
327
332
  when /^create/, /^add/, /^remove/, /^findBy/
328
333
  url_request = Net::HTTP::Post.new(method_url.request_uri(), content_type_header)
329
334
  else
330
- # The name doesn't match one of our expected patterns... Use GET if
331
- # there are no parameters, and POST if the user has given parameters.
332
- if request_body && !request_body.empty?
333
- url_request = Net::HTTP::Post.new(method_url.request_uri(), content_type_header)
334
- else
335
- url_request = Net::HTTP::Get.new(method_url.request_uri())
336
- end
335
+ # The name doesn't match one of our expected patterns... Use GET if
336
+ # there are no parameters, and POST if the user has given parameters.
337
+ if request_body && !request_body.empty?
338
+ url_request = Net::HTTP::Post.new(method_url.request_uri(), content_type_header)
339
+ else
340
+ url_request = Net::HTTP::Get.new(method_url.request_uri())
341
+ end
337
342
  end
338
343
 
339
- # This warning should be obsolete as we should be using POST if the user
344
+ # This warning should be obsolete as we should be using POST if the user
340
345
  # has provided parameters. I'm going to leave it in, however, on the off
341
346
  # chance that it catches a case we aren't expecting.
342
347
  if request_body && !url_request.request_body_permitted?
@@ -245,13 +245,6 @@ describe SoftLayer::Service, "#call_softlayer_api_with_params" do
245
245
  service.call_softlayer_api_with_params(:getObject, SoftLayer::APIParameterFilter.new.object_mask("cow ", " duck", "chicken", "bull dog"), []);
246
246
  end
247
247
 
248
- it "should warn about calling a get method with arguments" do
249
- service = SoftLayer::Service.new("SoftLayer_Account", :username => "sample_username", :api_key => "blah")
250
- service.should_receive(:issue_http_request).with(any_args())
251
- $stderr.should_receive(:puts).with("Warning - The HTTP request for getObject does not allow arguments to be passed to the server")
252
- service.getObject("Hello", "Bindigo")
253
- end
254
-
255
248
  it "should return the parsed JSON when completing successfully" do
256
249
  service = SoftLayer::Service.new("SoftLayer_Account", :username => "sample_username", :api_key => "blah")
257
250
  service.should_receive(:issue_http_request).with(any_args()).and_return('{"successful":"Yipeee!", "array":[1,2,3], "bool":true}')
@@ -288,6 +281,28 @@ describe SoftLayer::Service, "#object_mask" do
288
281
  end
289
282
  end
290
283
 
284
+ describe SoftLayer::Service, "#result_limit" do
285
+ it "should return an APIParameterFilter with itself as the target" do
286
+ service = SoftLayer::Service.new("SoftLayer_Account", :username => "sample_username", :api_key => "blah")
287
+ filter = service.result_limit(10)
288
+
289
+ filter.should_not be_nil
290
+ filter.target.should === service
291
+ filter.server_result_limit.should == 10
292
+ end
293
+ end
294
+
295
+ describe SoftLayer::Service, "#result_offset" do
296
+ it "should return an APIParameterFilter with itself as the target" do
297
+ service = SoftLayer::Service.new("SoftLayer_Account", :username => "sample_username", :api_key => "blah")
298
+ filter = service.result_offset(5)
299
+
300
+ filter.should_not be_nil
301
+ filter.target.should === service
302
+ filter.server_result_offset.should == 5
303
+ end
304
+ end
305
+
291
306
  describe SoftLayer::Service, "#http_request_for_method" do
292
307
  it "should generate a GET request for methods staring with get" do
293
308
  service = SoftLayer::Service.new("SoftLayer_Account", :username => "sample_username", :api_key => "blah")
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: softlayer_api
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
5
4
  prerelease: false
6
5
  segments:
7
6
  - 1
8
7
  - 0
9
- - 3
10
- version: 1.0.3
8
+ - 4
9
+ version: 1.0.4
11
10
  platform: ruby
12
11
  authors:
13
12
  - SoftLayer Development Team
@@ -15,18 +14,16 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2011-01-31 00:00:00 -06:00
17
+ date: 2011-09-20 00:00:00 -05:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: json
23
22
  prerelease: false
24
23
  requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
24
  requirements:
27
25
  - - ">="
28
26
  - !ruby/object:Gem::Version
29
- hash: 3
30
27
  segments:
31
28
  - 0
32
29
  version: "0"
@@ -64,27 +61,23 @@ rdoc_options: []
64
61
  require_paths:
65
62
  - lib
66
63
  required_ruby_version: !ruby/object:Gem::Requirement
67
- none: false
68
64
  requirements:
69
65
  - - ">="
70
66
  - !ruby/object:Gem::Version
71
- hash: 3
72
67
  segments:
73
68
  - 0
74
69
  version: "0"
75
70
  required_rubygems_version: !ruby/object:Gem::Requirement
76
- none: false
77
71
  requirements:
78
72
  - - ">="
79
73
  - !ruby/object:Gem::Version
80
- hash: 3
81
74
  segments:
82
75
  - 0
83
76
  version: "0"
84
77
  requirements: []
85
78
 
86
79
  rubyforge_project:
87
- rubygems_version: 1.3.7
80
+ rubygems_version: 1.3.6
88
81
  signing_key:
89
82
  specification_version: 3
90
83
  summary: Library for accessing the SoftLayer portal API