lib/rack/tracker/extensions.rb in rack-tracker-0.2.5 vs lib/rack/tracker/extensions.rb in rack-tracker-0.2.6
- old
+ new
@@ -12,6 +12,22 @@
inject({}) do |options, (key, value)|
options[key] = value.to_s
options
end
end
+
+ def compact
+ select { |_, value| !value.nil? }
+ end
+
+ def deep_merge!(other_hash, &block)
+ other_hash.each_pair do |k,v|
+ tv = self[k]
+ if tv.is_a?(Hash) && v.is_a?(Hash)
+ self[k] = tv.deep_merge(v, &block)
+ else
+ self[k] = block && tv ? block.call(k, tv, v) : v
+ end
+ end
+ self
+ end
end