Sha256: b41e10a832a08ae26287007d4cc69f5768be3c09813af83ea81ad5fdecc4266b

Contents?: true

Size: 1.46 KB

Versions: 6

Compression:

Stored size: 1.46 KB

Contents

require 'cassandra/0.7'
require 'set'

require 'cassandra_object/log_subscriber'

module CassandraObject
  class Base
    class_inheritable_accessor :connection
    class_inheritable_writer :connection_class

    def self.connection_class
      read_inheritable_attribute(:connection_class) || Cassandra
    end

    module ConnectionManagement
      def establish_connection(*args)
        self.connection = connection_class.new(*args)
      end
    end
    extend ConnectionManagement

    module Naming
      def column_family=(column_family)
        @column_family = column_family
      end

      def column_family
        @column_family || name.pluralize
      end
    end
    extend Naming
    
    extend ActiveModel::Naming
    extend ActiveSupport::DescendantsTracker
    
    include Callbacks
    include Identity
    include Attributes
    include Persistence
    include Indexes
    include Dirty
    include Validation
    include Associations
    include FindEach
    include FindWithIds

    attr_reader :attributes
    attr_accessor :key

    include Serialization
    include Migrations
    include Mocking

    def initialize(attributes={})
      @key = attributes.delete(:key)
      @new_record = true
      @destroyed = false
      @attributes = {}.with_indifferent_access
      self.attributes = attributes
      @schema_version = self.class.current_schema_version
    end

    def to_model
      self
    end
    
  end
end

require 'cassandra_object/type_registration'

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
gotime-cassandra_object-0.8.6 lib/cassandra_object/base.rb
gotime-cassandra_object-0.8.5 lib/cassandra_object/base.rb
gotime-cassandra_object-0.8.4 lib/cassandra_object/base.rb
gotime-cassandra_object-0.8.3 lib/cassandra_object/base.rb
gotime-cassandra_object-0.8.2 lib/cassandra_object/base.rb
gotime-cassandra_object-0.8.1 lib/cassandra_object/base.rb