Sha256: 5aed3ca02d71df1ae18b844ca648a77ac9ae1777036ed1cc4b35623184b57ae8

Contents?: true

Size: 913 Bytes

Versions: 10

Compression:

Stored size: 913 Bytes

Contents

module CassandraObject
  module Model
    def column_family=(column_family)
      @column_family = column_family
    end

    def column_family
      @column_family ||= base_class.name.pluralize
    end

    def base_class
      class_of_active_record_descendant(self)
    end

    def config=(config)
      @@config = config.is_a?(Hash) ? CassandraObject::Config.new(config) : config
    end

    def config
      @@config
    end

    private

    # Returns the class descending directly from ActiveRecord::Base or an
    # abstract class, if any, in the inheritance hierarchy.
    def class_of_active_record_descendant(klass)
      if klass == Base || klass.superclass == Base
        klass
      elsif klass.superclass.nil?
        raise "#{name} doesn't belong in a hierarchy descending from CassandraObject"
      else
        class_of_active_record_descendant(klass.superclass)
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
gotime-cassandra_object-4.12.1 lib/cassandra_object/model.rb
gotime-cassandra_object-4.12.0 lib/cassandra_object/model.rb
gotime-cassandra_object-4.11.6 lib/cassandra_object/model.rb
gotime-cassandra_object-4.11.5 lib/cassandra_object/model.rb
gotime-cassandra_object-4.11.4 lib/cassandra_object/model.rb
gotime-cassandra_object-4.11.3 lib/cassandra_object/model.rb
gotime-cassandra_object-4.11.2 lib/cassandra_object/model.rb
gotime-cassandra_object-4.11.1 lib/cassandra_object/model.rb
gotime-cassandra_object-4.11.0 lib/cassandra_object/model.rb
gotime-cassandra_object-4.10.5 lib/cassandra_object/model.rb