# File lib/thinking_sphinx/property.rb, line 5
    def initialize(source, columns, options = {})
      @source       = source
      @model        = source.model
      @columns      = Array(columns)
      @associations = {}

      raise "Cannot define a field or attribute in #{source.model.name} with no columns. Maybe you are trying to index a field with a reserved name (id, name). You can fix this error by using a symbol rather than a bare name (:id instead of id)." if @columns.empty? || @columns.any? { |column| !column.respond_to?(:__stack) }
      
      @alias        = options[:as]
      @faceted      = options[:facet]
      @admin        = options[:admin]
      @sortable     = options[:sortable] || false
      @value_source = options[:value]
      
      @alias    = @alias.to_sym unless @alias.blank?
      
      @columns.each { |col|
        @associations[col] = association_stack(col.__stack.clone).each { |assoc|
          assoc.join_to(source.base)
        }
      }
    end