Sha256: 7141d273e1c05e24bf57e4d6b77e5d83eeba304561364ea6daa395f02cf5328d

Contents?: true

Size: 618 Bytes

Versions: 4

Compression:

Stored size: 618 Bytes

Contents

module DuckPuncher
  module Hash
    # http://coryodaniel.com/index.php/2009/12/30/ruby-getting-deeply-nested-values-from-a-hash-in-one-line-of-code/
    def seek(*_keys_)
      last_level = self
      sought_value = nil

      _keys_.each_with_index do |_key_, _idx_|
        if last_level.is_a?(Hash) && last_level.has_key?(_key_)
          if _idx_ + 1 == _keys_.length
            sought_value = last_level[_key_]
          else
            last_level = last_level[_key_]
          end
        else
          break
        end
      end

      sought_value
    end
  end
end

Hash.send(:include, DuckPuncher::Hash)

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
duck_puncher-0.0.6 lib/duck_puncher/hash.rb
duck_puncher-0.0.4 lib/duck_puncher/hash.rb
duck_puncher-0.0.3 lib/duck_puncher/hash.rb
duck_puncher-0.0.2 lib/duck_puncher/hash.rb