Sha256: 211eb68b83bddc7754890983112f7a71102d5bb88b3974bcce30bfc5162cf356

Contents?: true

Size: 511 Bytes

Versions: 1

Compression:

Stored size: 511 Bytes

Contents

# frozen_string_literal: true

module KO
  class Children
    include Enumerable

    def initialize
      @store = Set.new
    end

    # TODO: use index
    def [](id) = @store.find { _1.id == id }

    def add(obj) = @store << obj

    def remove(obj)
      raise UnknownChildError unless @store.include?(obj)

      @store.delete(obj)
    end

    def inspect = to_a.inspect
    def pretty_inspect = to_a.pretty_inspect

    def each(...) = @store.each(...)
    def count(...) = @store.count(...)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ko-0.1.2 lib/ko/children.rb