class Hash # Usage { :a => 1, :b => 2, :c => 3}.except(:a) -> { :b => 2, :c => 3} def except(*keys) self.reject { |k,v| keys.include? k.to_sym } end # Usage { :a => 1, :b => 2, :c => 3}.only(:a) -> {:a => 1} def only(*keys) self.dup.reject { |k,v| !keys.include? k.to_sym } end end