Sha256: 0c925c440b0ea9dcf826de63cb81370ab00f7744bc9ecb19f68238d053e86bf3

Contents?: true

Size: 566 Bytes

Versions: 4

Compression:

Stored size: 566 Bytes

Contents

require 'sugar-high/arguments'

class Hash

  # http://www.dweebd.com/ruby/hash-key-rewrite/
  def rewrite mapping
    inject({}) do |rewritten_hash, (original_key, value)|
      rewritten_hash[mapping.fetch(original_key, original_key)] = value
      rewritten_hash
    end
  end

  def hash_revert
    r = Hash.new {|h,k| h[k] = []}
    each {|k,v| r[v] << k}
    r
  end

  def try_keys *keys
    option = last_option keys
    keys.flatten.each do |key|
      return self[key] if self[key]
    end
    return option[:default] if option[:default]
    nil
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sugar-high-0.7.3 lib/sugar-high/hash.rb
sugar-high-0.7.2 lib/sugar-high/hash.rb
sugar-high-0.7.1 lib/sugar-high/hash.rb
sugar-high-0.7.0 lib/sugar-high/hash.rb