Class: Riak::Crdt::Set
- Includes:
- Util::String
- Defined in:
- lib/riak/crdt/set.rb
Overview
A distributed set containing strings, using the Riak 2 Data Types feature.
Uses the Ruby standard library ‘::Set` frequently, so the full class names will be used frequently.
Defined Under Namespace
Classes: BatchSet
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
- #add(element, options = {}) ⇒ Object
- #batch {|batcher| ... } ⇒ Object
-
#empty? ⇒ Boolean
Check to see if this structure has any members.
-
#include?(candidate) ⇒ Boolean
Check to see if a given string is present in this data structure.
-
#initialize(bucket, key, bucket_type = nil, options = {}) ⇒ Set
constructor
Create a set instance.
-
#members ⇒ ::Set
(also: #value)
Gets the current set members from Riak if necessary, and return the stdlib ‘::Set` of them.
- #pretty_print(pp) ⇒ Object
- #remove(element, options = {}) ⇒ Object (also: #delete)
- #to_a ⇒ Array
Methods included from Util::String
Methods inherited from Base
#==, #context?, #dirty?, #inspect_name, #pretty_print_cycle, #reload
Methods included from Util::Translation
Constructor Details
#initialize(bucket, key, bucket_type = nil, options = {}) ⇒ Set
Create a set instance. The bucket type is determined by the first of these sources:
-
The ‘bucket_type` String argument
-
A BucketTyped::Bucket as the ‘bucket` argument
-
The ‘Crdt::Base::DEFAULT_BUCKET_TYPES` entry
25 26 27 |
# File 'lib/riak/crdt/set.rb', line 25 def initialize(bucket, key, bucket_type = nil, = {}) super(bucket, key, bucket_type || :set, ) end |
Instance Method Details
#add(element, options = {}) ⇒ Object
Add a String to the Riak::Crdt::Set
86 87 88 |
# File 'lib/riak/crdt/set.rb', line 86 def add(element, = {}) operate operation(:add, element), end |
#batch {|batcher| ... } ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/riak/crdt/set.rb', line 40 def batch batcher = BatchSet.new self yield batcher operate batcher.operations end |
#empty? ⇒ Boolean
Check to see if this structure has any members.
70 71 72 |
# File 'lib/riak/crdt/set.rb', line 70 def empty? members.empty? end |
#include?(candidate) ⇒ Boolean
Check to see if a given string is present in this data structure.
78 79 80 |
# File 'lib/riak/crdt/set.rb', line 78 def include?(candidate) members.any? { |m| equal_bytes?(m, candidate) } end |
#members ⇒ ::Set Also known as: value
Gets the current set members from Riak if necessary, and return the stdlib ‘::Set` of them.
53 54 55 56 |
# File 'lib/riak/crdt/set.rb', line 53 def members reload if dirty? @members end |
#pretty_print(pp) ⇒ Object
101 102 103 104 105 106 |
# File 'lib/riak/crdt/set.rb', line 101 def pretty_print(pp) super pp do pp.comma_breakable pp.pp to_a end end |
#remove(element, options = {}) ⇒ Object Also known as: delete
Remove a String from the Riak::Crdt::Set
94 95 96 97 |
# File 'lib/riak/crdt/set.rb', line 94 def remove(element, = {}) raise CrdtError::SetRemovalWithoutContextError unless context? operate operation(:remove, element), end |
#to_a ⇒ Array
Cast this Riak::Crdt::Set to a Ruby Array.
63 64 65 |
# File 'lib/riak/crdt/set.rb', line 63 def to_a members.to_a end |