class ROM::Cassandra::Relation

Relation subclass of Cassandra adapter

@example

class Users < ROM::Relation[:cassandra]
  def last_ten_admins
    select(:id, :name)
      .where(role: "admin")
      .using(consistency: :quorum)
      .order(:name, :desc)
      .limit(10)
  end
end

@api public

Attributes

source[R]

@!attribute [r] source

@return [ROM::Cassandra::Dataset]

The source dataset before `get` method has been applied

Public Class Methods

new(*) click to toggle source

@private

Calls superclass method
# File lib/rom/cassandra/relation.rb, line 33
def initialize(*)
  super
  return if (@source = options[:source])
  @source  = dataset
  @dataset = dataset.get
end

Public Instance Methods

batch_query() click to toggle source

Returns the relation whose source is restricted by ‘#delete` lazy query

@return [ROM::Cassandra::Relation]

# File lib/rom/cassandra/relation.rb, line 68
def batch_query
  reload source.batch
end
delete_query() click to toggle source

Returns the relation whose source is restricted by ‘#delete` lazy query

@return [ROM::Cassandra::Relation]

# File lib/rom/cassandra/relation.rb, line 60
def delete_query
  reload source.delete
end
insert_query() click to toggle source

Returns the relation whose source is restricted by ‘#insert` lazy query

@return [ROM::Cassandra::Relation]

# File lib/rom/cassandra/relation.rb, line 44
def insert_query
  reload source.insert
end
update_query() click to toggle source

Returns the relation whose source is restricted by ‘#update` lazy query

@return [ROM::Cassandra::Relation]

# File lib/rom/cassandra/relation.rb, line 52
def update_query
  reload source.update
end

Private Instance Methods

method_missing(name, *args) click to toggle source
# File lib/rom/cassandra/relation.rb, line 78
def method_missing(name, *args)
  reload dataset.public_send(name, *args)
end
reload(dataset) click to toggle source
# File lib/rom/cassandra/relation.rb, line 82
def reload(dataset)
  Relation.new dataset, source: source
end
respond_to_missing?(name, *) click to toggle source
# File lib/rom/cassandra/relation.rb, line 74
def respond_to_missing?(name, *)
  dataset.respond_to? name
end