lib/twilio-ruby/framework/serialize.rb in twilio-ruby-5.0.0.rc5 vs lib/twilio-ruby/framework/serialize.rb in twilio-ruby-5.0.0.rc7
- old
+ new
@@ -14,6 +14,32 @@
def self.deserialize_iso8601(date)
unless date.nil?
Time.parse(date)
end
end
+
+ def self.flatten(map, result={}, previous=[])
+ map.each do |key, value|
+ if value.is_a? Hash
+ self.flatten(value, result, previous + [key])
+ else
+ result[(previous + [key]).join('.')] = value
+ end
+ end
+
+ result
+ end
+
+ def self.prefixed_collapsible_map(map, prefix)
+ result = {}
+ if map.is_a? Hash
+ flattened = self.flatten(map)
+ result = {}
+ flattened.each do |key, value|
+ result[prefix + '.' + key] = value
+ end
+ end
+
+ result
+ end
+
end