File: except.rb

package info (click to toggle)
ruby-buff-extensions 2.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 212 kB
  • sloc: ruby: 506; makefile: 3
file content (25 lines) | stat: -rw-r--r-- 698 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
module Buff
  module Extensions::Hash
    # Borrowd and modified from
    # {https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/hash/except.rb}
    module Except
      # 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(params[:person].except(:admin))
      def except(*keys)
        dup.except!(*keys)
      end

      # Replaces the hash without the given keys.
      def except!(*keys)
        keys.each { |key| delete(key) }
        self
      end
    end
  end
end

class Hash
  include Buff::Extensions::Hash::Except
end