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