swirl 1.7.3 → 1.7.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.
@@ -108,6 +108,9 @@ module Swirl
108
108
  end
109
109
 
110
110
  def call!(action, query={}, &blk)
111
+ log "Action: #{action}"
112
+ log "Query: #{query.inspect}"
113
+
111
114
  # Hard coding this here until otherwise needed
112
115
  method = "POST"
113
116
 
@@ -122,9 +125,8 @@ module Swirl
122
125
  body += "&" + ["Signature", compile_signature(method, body)].join("=")
123
126
 
124
127
  post(body) do |code, xml|
125
- if ENV["SWIRL_LOG"]
126
- puts response.body
127
- end
128
+ log "HTTP Response Code: #{code}"
129
+ log xml.gsub("\n", "\n[swirl] ")
128
130
 
129
131
  data = Crack::XML.parse(xml)
130
132
  blk.call(code, data)
@@ -149,6 +151,12 @@ module Swirl
149
151
  "<#{self.class.name} version: #{@version} url: #{@url} aws_access_key_id: #{@aws_access_key_id}>"
150
152
  end
151
153
 
154
+ def log(msg)
155
+ if ENV["SWIRL_LOG"]
156
+ $stderr.puts "[swirl] #{msg}"
157
+ end
158
+ end
159
+
152
160
  end
153
161
 
154
162
  end
@@ -5,30 +5,35 @@ module Swirl
5
5
  module Compactor
6
6
 
7
7
  def compact(response)
8
- root_key = response.keys.first
9
- base = response[root_key]
10
- compact!(base)
8
+ compact!(response.shift.last)
11
9
  end
12
10
  module_function :compact
13
11
 
14
- def compact!(data)
15
- data.inject({}) do |com, (key, value)|
16
- if value.is_a?(Hash)
17
- converted = if value.has_key?("item") || value.has_key?("member")
18
- items = value["item"] || value ["member"]
19
- items ||= []
20
- items = items.is_a?(Array) ? items : [items]
21
- items.map {|item| compact!(item) }
22
- else
12
+ def compact!(value)
13
+ case value
14
+ when Hash
15
+ # We don't need to stink'n xmlns!
16
+ value.delete("xmlns")
17
+
18
+ if value.has_key?("member") || value.has_key?("item")
19
+ value = value["member"] || value["item"]
20
+
21
+ if value == nil
23
22
  []
23
+ else
24
+ value = compact!(value)
25
+ # Can't use Array() here. :(
26
+ value.is_a?(Array) ? value : [value]
24
27
  end
25
- com[key] = converted
26
- elsif key == "xmlns"
27
- next(com)
28
28
  else
29
- com[key] = value
29
+ value.inject({}) do |m, (k, v)|
30
+ m[k] = compact!(v) ; m
31
+ end
30
32
  end
31
- com
33
+ when Array
34
+ value.map {|v| compact!(v) }
35
+ else
36
+ value
32
37
  end
33
38
  end
34
39
  module_function :compact!
@@ -48,12 +48,14 @@ class CompactorTest < Test::Unit::TestCase
48
48
 
49
49
  test "traverses list values and compacts" do
50
50
  response = {
51
- "Foo" => {
52
- "groupSet" => {
53
- "item" => {
54
- "ipPermissions" => {
55
- "item" => {
56
- "proto" => "tcp"
51
+ "Bar" => {
52
+ "Foo" => {
53
+ "groupSet" => {
54
+ "item" => {
55
+ "ipPermissions" => {
56
+ "item" => {
57
+ "proto" => "tcp"
58
+ }
57
59
  }
58
60
  }
59
61
  }
@@ -62,9 +64,11 @@ class CompactorTest < Test::Unit::TestCase
62
64
  }
63
65
 
64
66
  expected = {
65
- "groupSet" => [
66
- { "ipPermissions" => [ { "proto" => "tcp" } ] }
67
- ]
67
+ "Foo" => {
68
+ "groupSet" => [
69
+ { "ipPermissions" => [ { "proto" => "tcp" } ] }
70
+ ]
71
+ }
68
72
  }
69
73
 
70
74
  assert_equal expected, Compactor.compact(response)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swirl
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 7
9
- - 3
10
- version: 1.7.3
9
+ - 4
10
+ version: 1.7.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Blake Mizerany