Sha256: f2817ae21e1a57496b75010c8d561c1ae7938b85afa56879db1d3df212a1c5fb

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

require 'cassandra/0.8'
require 'set'

require 'cassandra_object/log_subscriber'

module CassandraObject
  class Base
    module Naming
      def column_family=(column_family)
        @column_family = column_family
      end

      def column_family
        @column_family || name.pluralize
      end
    end
    extend Naming

    class << self
      def base_class
        klass = self
        while klass.superclass != Base
          klass = klass.superclass
        end
        klass
      end
    end

    extend ActiveModel::Naming
    extend ActiveSupport::DescendantsTracker
    
    include Connection
    include Callbacks
    include Identity
    include Attributes
    include Persistence
    include Indexes
    include Dirty
    include Validation
    include Associations
    include Batches
    include FinderMethods

    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

1 entries across 1 versions & 1 rubygems

Version Path
gotime-cassandra_object-2.0.0 lib/cassandra_object/base.rb