Class: Riak::Crdt::Set::BatchSet

Inherits:
GrowOnlySet::BatchGrowOnlySet show all
Defined in:
lib/riak/crdt/set.rb

Instance Method Summary collapse

Methods inherited from GrowOnlySet::BatchGrowOnlySet

#add, #context?, #empty?, #include?, #to_a

Constructor Details

#initialize(base) ⇒ BatchSet

Returns a new instance of BatchSet.



97
98
99
100
# File 'lib/riak/crdt/set.rb', line 97

def initialize(base)
  super(base)
  @removes = ::Set.new
end

Instance Method Details

#membersObject Also known as: value



109
110
111
# File 'lib/riak/crdt/set.rb', line 109

def members
  (@base + @adds).subtract @removes
end

#operationsObject



115
116
117
118
119
120
# File 'lib/riak/crdt/set.rb', line 115

def operations
  Operation::Update.new.tap do |op|
    op.type = :set
    op.value = {add: @adds.to_a, remove: @removes.to_a}
  end
end

#remove(element) ⇒ Object Also known as: delete



102
103
104
105
# File 'lib/riak/crdt/set.rb', line 102

def remove(element)
  raise CrdtError::SetRemovalWithoutContextError.new unless context?
  @removes.add element
end