Module: CassandraObject::Associations::ClassMethods

Defined in:
lib/cassandra_object/associations.rb

Instance Method Summary collapse

Instance Method Details

#association(association_name, options = {}) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/cassandra_object/associations.rb', line 31

def association(association_name, options= {})
  if options[:unique]
    write_inheritable_hash(:associations, {association_name => OneToOne.new(association_name, self, options)})
  else
    write_inheritable_hash(:associations, {association_name => OneToMany.new(association_name, self, options)})
  end
end

#column_family_configurationObject



27
28
29
# File 'lib/cassandra_object/associations.rb', line 27

def column_family_configuration
  super << {:Name=>relationships_column_family, :CompareWith=>"UTF8Type", :CompareSubcolumnsWith=>"TimeUUIDType", :ColumnType=>"Super"}
end

#relationships_column_familyObject



23
24
25
# File 'lib/cassandra_object/associations.rb', line 23

def relationships_column_family
  @relationships_column_family || "#{name}Relationships"
end

#relationships_column_family=(column_family) ⇒ Object



19
20
21
# File 'lib/cassandra_object/associations.rb', line 19

def relationships_column_family=(column_family)
  @relationships_column_family = column_family
end

#remove(key) ⇒ Object



39
40
41
42
43
44
45
46
47
48
# File 'lib/cassandra_object/associations.rb', line 39

def remove(key)
  begin
    ActiveSupport::Notifications.instrument("remove.cassandra_object", column_family: relationships_column_family, key: key) do
      connection.remove(relationships_column_family, key.to_s, consistency: thrift_write_consistency)
    end
  rescue Cassandra::AccessError => e
    raise e unless e.message =~ /Invalid column family/
  end
  super
end