Sha256: 3559985ba283b0eb2c48ee449708d7c95a4c219b9b8ad0e5bbd8a161798c19ab

Contents?: true

Size: 1.52 KB

Versions: 13

Compression:

Stored size: 1.52 KB

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.deep_symbolize_keys
    end

    def config
      return self.custom_config if self.methods(false).include?(:custom_config)
      @@config
    end

    def allow_filtering=(value)
      @allow_filtering = value
    end

    def allow_filtering
      @allow_filtering ||= false
    end

    def _key
      # todo only first key
      _keys.first
    end

    def _keys
      keys.tr('()','').gsub(/\s+/, "").split(',')
    end

    def keys=(value)
      @keys = value
    end

    def keys
      @keys ||= '(key)'
    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)
      # klass

      if (klass == Base || klass.superclass == Base) || (klass == BaseSchemaless || klass.superclass == BaseSchemaless) || (klass == BaseSchema || klass.superclass == BaseSchema) || (klass == BaseSchemalessDynamic || klass.superclass == BaseSchemalessDynamic)
        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

13 entries across 13 versions & 1 rubygems

Version Path
extendi-cassandra_object-1.1.1 lib/cassandra_object/model.rb
extendi-cassandra_object-1.1.0 lib/cassandra_object/model.rb
extendi-cassandra_object-1.0.20 lib/cassandra_object/model.rb
extendi-cassandra_object-1.0.19 lib/cassandra_object/model.rb
extendi-cassandra_object-1.0.18 lib/cassandra_object/model.rb
extendi-cassandra_object-1.0.17 lib/cassandra_object/model.rb
extendi-cassandra_object-1.0.16 lib/cassandra_object/model.rb
extendi-cassandra_object-1.0.15 lib/cassandra_object/model.rb
extendi-cassandra_object-1.0.14 lib/cassandra_object/model.rb
extendi-cassandra_object-1.0.13 lib/cassandra_object/model.rb
extendi-cassandra_object-1.0.12 lib/cassandra_object/model.rb
extendi-cassandra_object-1.0.11 lib/cassandra_object/model.rb
extendi-cassandra_object-1.0.10 lib/cassandra_object/model.rb