Sha256: f24ea457303481a8d3aa8f650d5cebd31da10b6cf73e1093c6c10c14e2bbce6c
Contents?: true
Size: 1.64 KB
Versions: 2
Compression:
Stored size: 1.64 KB
Contents
module CassandraObject module Associations extend ActiveSupport::Concern extend ActiveSupport::Autoload # TODO: is this the convention? include ActiveRecord::Reflection include ActiveRecord::Associations include ActiveRecord::AutosaveAssociation autoload :OneToMany autoload :OneToOne autoload :AutosaveAssociation included do class_inheritable_hash :associations end module ClassMethods def relationships_column_family=(column_family) @relationships_column_family = column_family end def relationships_column_family @relationships_column_family || "#{name}Relationships" end def column_family_configuration super << {:Name=>relationships_column_family, :CompareWith=>"UTF8Type", :CompareSubcolumnsWith=>"TimeUUIDType", :ColumnType=>"Super"} end 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 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 end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sessionm-cassandra_object-2.2.36 | lib/cassandra_object/associations.rb |
sessionm-cassandra_object-2.2.33 | lib/cassandra_object/associations.rb |