Sha256: 7cd1125aac05467be2b64a88041623541edef9609ef3e4cda74d2b16397674f2

Contents?: true

Size: 987 Bytes

Versions: 3

Compression:

Stored size: 987 Bytes

Contents

#
# Core extensions to Hash.
#

class Hash

  # defined in ActiveSupport: #except, #except!

  # Returns hash containing only elements listed in +args+.
  #
  def only( *keys )
    self.select{|key,v| [*keys].include? key }
  end

  # Modifies and returns hash containing only elements listed in +args+.
  #
  def only!( *keys )
    self.select!{|key,v| [*keys].include? key }
    self
  end

  # Returns hash containing all elements except those with specified +keys+.
  #
  def except( *keys )
    dup.except!( *keys )
  end

  # Modifies and returns hash containing all elements except those with specified +keys+.
  #
  def except!( *keys )
    keys.each do |k|
      if String === k || Symbol === k
       delete k.to_sym
       delete k.to_s
      else
        delete k
      end
    end
    self
  end

  # Returns Hash converted to a string of HTML tag attributes.
  #
  def to_html_params
    self.map{|n, v| v.nil? ? "#{n}" : "#{n}=\"#{v}\""}.join(" ")
  end

end # class Array

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
aerogel-core-1.4.12 lib/aerogel/core/core_ext/hash.rb
aerogel-core-1.4.11 lib/aerogel/core/core_ext/hash.rb
aerogel-core-1.4.10 lib/aerogel/core/core_ext/hash.rb