X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=vendor%2Frails%2Factivesupport%2Flib%2Factive_support%2Fcore_ext%2Fhash%2Fexcept.rb;fp=vendor%2Frails%2Factivesupport%2Flib%2Factive_support%2Fcore_ext%2Fhash%2Fexcept.rb;h=949976d7413ef6c8e710c4ab9376ac14988f9620;hb=d115f2e23823271635bad69229a42cd8ac68debe;hp=0000000000000000000000000000000000000000;hpb=37cb670bf3ddde90b214e591f100ed4446469484;p=depot.git diff --git a/vendor/rails/activesupport/lib/active_support/core_ext/hash/except.rb b/vendor/rails/activesupport/lib/active_support/core_ext/hash/except.rb new file mode 100644 index 0000000..949976d --- /dev/null +++ b/vendor/rails/activesupport/lib/active_support/core_ext/hash/except.rb @@ -0,0 +1,25 @@ +require 'set' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + # Return a hash that includes everything but the given keys. This is useful for + # limiting a set of parameters to everything but a few known toggles: + # + # @person.update_attributes(params[:person].except(:admin)) + module Except + # Returns a new hash without the given keys. + def except(*keys) + dup.except!(*keys) + end + + # Replaces the hash without the given keys. + def except!(*keys) + keys.map! { |key| convert_key(key) } if respond_to?(:convert_key) + keys.each { |key| delete(key) } + self + end + end + end + end +end