Module: CassandraObject::Associations::ClassMethods
- Defined in:
- lib/cassandra_object/associations.rb
Instance Method Summary collapse
- #association(association_name, options = {}) ⇒ Object
- #column_family_configuration ⇒ Object
- #dangerous_attribute_method?(name) ⇒ Boolean
- #generated_association_methods ⇒ Object
- #relationships_column_family ⇒ Object
- #relationships_column_family=(column_family) ⇒ Object
- #remove(key) ⇒ Object
Instance Method Details
#association(association_name, options = {}) ⇒ Object
45 46 47 48 49 50 51 52 |
# File 'lib/cassandra_object/associations.rb', line 45 def association(association_name, = {}) self.association = self.association.dup if [:unique] self.associations[association_name] = OneToOne.new(association_name, self, ) else self.associations[association_name] = OneToMany.new(association_name, self, ) end end |
#column_family_configuration ⇒ Object
29 30 31 |
# File 'lib/cassandra_object/associations.rb', line 29 def column_family_configuration super << {:Name=>relationships_column_family, :CompareWith=>"UTF8Type", :CompareSubcolumnsWith=>"TimeUUIDType", :ColumnType=>"Super"} end |
#dangerous_attribute_method?(name) ⇒ Boolean
33 34 35 |
# File 'lib/cassandra_object/associations.rb', line 33 def dangerous_attribute_method?(name) false end |
#generated_association_methods ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/cassandra_object/associations.rb', line 37 def generated_association_methods @generated_association_methods ||= begin mod = const_set(:GeneratedAssociationMethods, Module.new) include mod mod end end |
#relationships_column_family ⇒ Object
25 26 27 |
# File 'lib/cassandra_object/associations.rb', line 25 def relationships_column_family @relationships_column_family || "#{name}Relationships" end |
#relationships_column_family=(column_family) ⇒ Object
21 22 23 |
# File 'lib/cassandra_object/associations.rb', line 21 def relationships_column_family=(column_family) @relationships_column_family = column_family end |
#remove(key) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/cassandra_object/associations.rb', line 54 def remove(key) if connection.has_table?(relationships_column_family) begin CassandraObject::Base.with_connection(key, :write) do 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 end rescue Cassandra::Errors::InvalidError => e # pretty sure this is not the correct message for cassandra-driver gem, will need to investigate the actual message raise e unless e. =~ /unconfigured columnfamily/i end end super end |