Module: Swirl::Helpers::Compactor
- Included in:
- AWS
- Defined in:
- lib/swirl/helpers.rb
Constant Summary collapse
- Lists =
[ "keySet", "groupSet", "blockDeviceMapping", "instancesSet", "reservationSet", "imagesSet", "ownersSet", "executableBySet", "securityGroupSet", "ipPermissions", "ipRanges", "groups", "securityGroupInfo", "add", "remove", "launchPermission", "productCodes", "availabilityZoneSet", "availabilityZoneInfo", "publicIpsSet", "addressesSet" ]
Class Method Summary collapse
Class Method Details
.compact(response) ⇒ Object
31 32 33 34 35 |
# File 'lib/swirl/helpers.rb', line 31 def compact(response) root_key = response.keys.first base = response[root_key] compact!(base) end |
.compact!(data) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/swirl/helpers.rb', line 38 def compact!(data) data.inject({}) do |com, (key, value)| if value.is_a?(Hash) converted = if value.has_key?("item") items = value["item"] items ||= [] items = items.is_a?(Array) ? items : [items] items.map {|item| compact!(item) } else [] end com[key] = converted elsif key == "xmlns" next(com) else com[key] = value end com end end |