Sha256: 63af97cdf70db39067775aa52d5b8b7b2fe61d0ba10f7349ca8be16f915f3c9e

Contents?: true

Size: 388 Bytes

Versions: 23

Compression:

Stored size: 388 Bytes

Contents

# typed: true

module Kuby
  class TrailingHash < Hash
    def each(&block)
      return to_enum(T.must(__method__)) unless block_given?

      seen_keys = []
      keys_before = keys

      until keys_before.empty?
        keys_before.each do |k|
          yield k, T.must(self[k])
          seen_keys << k
        end

        keys_before = keys - seen_keys
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
kuby-core-0.17.0 lib/kuby/trailing_hash.rb
kuby-core-0.16.1 lib/kuby/trailing_hash.rb
kuby-core-0.16.0 lib/kuby/trailing_hash.rb
kuby-core-0.15.0 lib/kuby/trailing_hash.rb
kuby-core-0.14.0 lib/kuby/trailing_hash.rb
kuby-core-0.13.0 lib/kuby/trailing_hash.rb
kuby-core-0.12.0 lib/kuby/trailing_hash.rb
kuby-core-0.11.16 lib/kuby/trailing_hash.rb
kuby-core-0.11.15 lib/kuby/trailing_hash.rb
kuby-core-0.11.14 lib/kuby/trailing_hash.rb
kuby-core-0.11.13 lib/kuby/trailing_hash.rb
kuby-core-0.11.12 lib/kuby/trailing_hash.rb
kuby-core-0.11.11 lib/kuby/trailing_hash.rb
kuby-core-0.11.10 lib/kuby/trailing_hash.rb
kuby-core-0.11.9 lib/kuby/trailing_hash.rb
kuby-core-0.11.8 lib/kuby/trailing_hash.rb
kuby-core-0.11.7 lib/kuby/trailing_hash.rb
kuby-core-0.11.6 lib/kuby/trailing_hash.rb
kuby-core-0.11.4 lib/kuby/trailing_hash.rb
kuby-core-0.11.3 lib/kuby/trailing_hash.rb