softlayer_api 1.0.4 → 1.0.5

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.4" # version history at the bottom of the file.
39
+ VERSION = "1.0.5" # 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/'
@@ -76,4 +76,6 @@ end # module SoftLayer
76
76
  # JN. Thanks!
77
77
  #
78
78
  # 1.0.4 - Fixed a bug where the result_limit and result_offset object filters were just not working.
79
+ #
80
+ # 1.0.5 - Fixed a bug where empty hashes and empty arrays would not generate meaningful object masks
79
81
  #
@@ -26,6 +26,8 @@
26
26
 
27
27
  class Hash
28
28
  def to_sl_object_mask(base = "")
29
+ return base if(self.empty?)
30
+
29
31
  # ask the children to convert themselves with the key as the base
30
32
  masked_children = self.map { |key, value| result = value.to_sl_object_mask(key); }.flatten
31
33
 
@@ -36,6 +38,7 @@ end
36
38
 
37
39
  class Array
38
40
  def to_sl_object_mask(base = "")
41
+ return base if self.empty?
39
42
  self.map { |item| item.to_sl_object_mask(base) }.flatten
40
43
  end
41
44
  end
@@ -28,7 +28,7 @@ $: << File.expand_path(File.join(File.dirname(__FILE__), "../lib"))
28
28
 
29
29
  require 'rubygems'
30
30
  require 'softlayer_api'
31
- require 'spec'
31
+ require 'rspec'
32
32
 
33
33
  describe SoftLayer::APIParameterFilter, "#object_with_id" do
34
34
  it "should intitialize with empty parameter values" do
@@ -28,8 +28,8 @@ $: << File.expand_path(File.join(File.dirname(__FILE__), "../lib"))
28
28
 
29
29
  require 'rubygems'
30
30
  require 'softlayer_api'
31
- require 'spec'
32
- require 'spec/autorun'
31
+ require 'rspec'
32
+ require 'rspec/autorun'
33
33
 
34
34
  describe SoftLayer::Service, "#new" do
35
35
  before(:each) do
@@ -28,8 +28,8 @@ $: << File.expand_path(File.join(File.dirname(__FILE__), "../lib"))
28
28
 
29
29
  require 'rubygems'
30
30
  require 'softlayer_api'
31
- require 'spec'
32
- require 'spec/autorun'
31
+ require 'rspec'
32
+ require 'rspec/autorun'
33
33
 
34
34
  describe String, "#to_sl_object_mask" do
35
35
  it "should echo back a string with no base" do
@@ -50,8 +50,8 @@ describe String, "#to_sl_object_mask" do
50
50
  end
51
51
 
52
52
  describe Array,"#to_sl_object_mask" do
53
- it "should return the empty array if run on an empty array" do
54
- [].to_sl_object_mask.should eql([])
53
+ it "should return and empty string if run on an empty array" do
54
+ [].to_sl_object_mask.should eql("")
55
55
  end
56
56
 
57
57
  it "should call to_sl_object_mask passing the base to all its elements" do
@@ -70,6 +70,10 @@ describe Array,"#to_sl_object_mask" do
70
70
  end
71
71
 
72
72
  describe Hash, "#to_sl_object_mask" do
73
+ it "should return an empty string if run on an empty hash" do
74
+ {}.to_sl_object_mask.should eql("")
75
+ end
76
+
73
77
  it "should call to_sl_object_mask on values with the key as the base" do
74
78
  proxy = "value"
75
79
  proxy.should_receive(:to_sl_object_mask).with("key").and_return("key.value")
@@ -80,4 +84,9 @@ describe Hash, "#to_sl_object_mask" do
80
84
  it "should resolve the mapped values with the base provided" do
81
85
  {"top" => [ "middle1", {"middle2" => "end"}]}.to_sl_object_mask.should eql(["top.middle1", "top.middle2.end"])
82
86
  end
87
+
88
+ it "should handle a complex hash object mask with an inner empty hash" do
89
+ { "ipAddress" => { "ipAddress" => {}}}.to_sl_object_mask.should eql(["ipAddress.ipAddress"])
90
+ end
91
+
83
92
  end
metadata CHANGED
@@ -1,43 +1,34 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: softlayer_api
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 0
8
- - 4
9
- version: 1.0.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.5
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - SoftLayer Development Team
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-09-20 00:00:00 -05:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-08-16 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: json
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
- version: "0"
16
+ requirement: &70161596543420 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
30
22
  type: :runtime
31
- version_requirements: *id001
32
- description: The softlayer_api gem offers a convenient mechanism for invoking the services of the SoftLayer API from Ruby.
23
+ prerelease: false
24
+ version_requirements: *70161596543420
25
+ description: The softlayer_api gem offers a convenient mechanism for invoking the
26
+ services of the SoftLayer API from Ruby.
33
27
  email: sldn@softlayer.com
34
28
  executables: []
35
-
36
29
  extensions: []
37
-
38
30
  extra_rdoc_files: []
39
-
40
- files:
31
+ files:
41
32
  - README.textile
42
33
  - LICENSE.textile
43
34
  - lib/softlayer/base.rb
@@ -51,35 +42,28 @@ files:
51
42
  - examples/createTicket.rb
52
43
  - examples/openTickets.rb
53
44
  - examples/ticket_info.rb
54
- has_rdoc: true
55
45
  homepage: http://sldn.softlayer.com/
56
46
  licenses: []
57
-
58
47
  post_install_message:
59
48
  rdoc_options: []
60
-
61
- require_paths:
49
+ require_paths:
62
50
  - lib
63
- required_ruby_version: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- segments:
68
- - 0
69
- version: "0"
70
- required_rubygems_version: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- segments:
75
- - 0
76
- version: "0"
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
77
63
  requirements: []
78
-
79
64
  rubyforge_project:
80
- rubygems_version: 1.3.6
65
+ rubygems_version: 1.8.11
81
66
  signing_key:
82
67
  specification_version: 3
83
68
  summary: Library for accessing the SoftLayer portal API
84
69
  test_files: []
85
-