lib/hamster/experimental/mutable_set.rb in hamster-0.4.3 vs lib/hamster/experimental/mutable_set.rb in hamster-1.0.0

- old
+ new

@@ -1,46 +1,39 @@ -require 'forwardable' -require 'hamster/set' -require 'hamster/experimental/read_copy_update' +require "hamster/set" +require "hamster/read_copy_update" module Hamster - def self.mutable_set(*items) MutableSet.new(set(*items)) end class MutableSet - - extend Forwardable - include ReadCopyUpdate def add(item) transform { |set| set.add(item) } end - def_delegator :self, :add, :<< + alias :<< :add def add?(item) added = false - transform { |set| + transform do |set| added = !set.include?(item) set.add(item) - } + end added end def delete(item) transform { |set| set.delete(item) } end def delete?(item) deleted = false - transform { |set| + transform do |set| deleted = set.include?(item) set.delete(item) - } + end deleted end - end - end