Sha256: 93bd21504a68859dad58cfe44daf6c9c9528596b94d13c05f00e95c8eb56dfea

Contents?: true

Size: 419 Bytes

Versions: 3

Compression:

Stored size: 419 Bytes

Contents

require "forwardable"

class Hash
  def stringify_keys
    r = []
    each { |k,v| r << k.to_s << v }
    Hash[*r]
  end

  def symbolize_keys
    r = []
    each { |k,v| r << k.to_sym << v }
    Hash[*r]
  end
end

class Hash
  extend Forwardable
  delegate [:uid64, :crc32, :md5] => :calculate_stable_hashable
  
  def calculate_stable_hashable
    map { |k,v| "#{k.inspect}:#{v.inspect}" }.sort.join("//")
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
radiospiel-app-0.2.2 lib/core-extensions/hash_ext.rb
radiospiel-app-0.2.1 lib/core-extensions/hash_ext.rb
radiospiel-app-0.2.0 lib/core-extensions/hash_ext.rb