Module: CassandraObject::Associations::ClassMethods
- Defined in:
- lib/cassandra_object/associations.rb
Instance Method Summary collapse
- #association(association_name, options = {}) ⇒ Object
- #column_family_configuration ⇒ Object
- #relationships_column_family ⇒ Object
- #relationships_column_family=(column_family) ⇒ Object
- #remove(key) ⇒ Object
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, = {}) if [:unique] write_inheritable_hash(:associations, {association_name => OneToOne.new(association_name, self, )}) else write_inheritable_hash(:associations, {association_name => OneToMany.new(association_name, self, )}) end end |
#column_family_configuration ⇒ Object
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_family ⇒ Object
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. =~ /Invalid column family/ end super end |