lib/pacto/extensions.rb in pacto-0.3.0.pre vs lib/pacto/extensions.rb in pacto-0.3.0
- old
+ new
@@ -1,18 +1,32 @@
module Pacto
module Extensions
- module HashSubsetOf
- def subset_of?(other)
- (to_a - other.to_a).empty?
+ # Adapted from Faraday
+ HeaderKeyMap = Hash.new do |map, key|
+ split_char = key.to_s.include?('-') ? '-' : '_'
+ map[key] = key.to_s.split(split_char). # :user_agent => %w(user agent)
+ each { |w| w.capitalize! }. # => %w(User Agent)
+ join('-') # => "User-Agent"
+ end
+ HeaderKeyMap[:etag] = 'ETag'
+
+ def self.normalize_header_keys(headers)
+ headers.reduce({}) do |normalized, (key, value)|
+ normalized[HeaderKeyMap[key]] = value
+ normalized
end
+ end
+ module HashSubsetOf
+ # FIXME: Only used by HashMergeProcessor, which I'd like to deprecate
def normalize_keys
- inject({}) do |normalized, (key, value)|
+ reduce({}) do |normalized, (key, value)|
normalized[key.to_s.downcase] = value
normalized
end
end
end
end
end
+# FIXME: Let's not extend Hash...
Hash.send(:include, Pacto::Extensions::HashSubsetOf)