Class: Cequel::Record::Set

Inherits:
Set
  • Object
show all
Includes:
Collection
Defined in:
lib/cequel/record/collection.rb

Overview

The value of a set column in a Cequel::Record instance. Contains an unordered, unique set of elements. Encapsulates and behaves like the ‘Set` type from the standard library.

See Also:

Since:

  • 1.0.0

Constant Summary collapse

NON_ATOMIC_MUTATORS =

These methods are not implemented because they cannot be expressed as a single CQL3 write operation.

Since:

  • 1.0.0

[
  :add?,
  :collect!,
  :delete?,
  :delete_if,
  :flatten!,
  :keep_if,
  :map!,
  :reject!,
  :select!
]

Instance Method Summary collapse

Methods included from Collection

#column_name, #initialize, #inspect, #loaded!, #loaded?, #persisted!

Methods included from Util::Forwardable

#delegate

Instance Method Details

#add(object) ⇒ Set Also known as: <<

Add an element to the set

Parameters:

  • object

    element to add

Returns:

  • (Set)

    self

Since:

  • 1.0.0



376
377
378
379
380
# File 'lib/cequel/record/collection.rb', line 376

def add(object)
  object = cast_element(object)
  to_update { updater.set_add(column_name, object) }
  to_modify { super }
end

#clearSet

Remove everything from the set. Equivalent to deleting the collection column from the record’s row.

Returns:

  • (Set)

    self

Since:

  • 1.0.0



389
390
391
392
# File 'lib/cequel/record/collection.rb', line 389

def clear
  to_update { deleter.delete_columns(column_name) }
  to_modify { super }
end

#delete(object) ⇒ Set

Remove a single element from the set

Parameters:

  • object

    element to remove

Returns:

  • (Set)

    self

Since:

  • 1.0.0



400
401
402
403
404
# File 'lib/cequel/record/collection.rb', line 400

def delete(object)
  object = cast_element(object)
  to_update { updater.set_remove(column_name, object) }
  to_modify { super }
end

#replace(set) ⇒ Set

Replace the entire contents of this set with another set

Parameters:

  • set (::Set)

    set containing new elements

Returns:

  • (Set)

    self

Since:

  • 1.0.0



412
413
414
415
416
# File 'lib/cequel/record/collection.rb', line 412

def replace(set)
  set = cast_collection(set)
  to_update { updater.set(column_name => set) }
  to_modify { super }
end