# File lib/thinking_sphinx/attribute_types.rb, line 12
  def call
    return {} unless File.exist?(configuration_file)

    realtime_indices.each { |index|
      map_types_with_prefix index, :rt,
        [:uint, :bigint, :float, :timestamp, :string, :bool, :json]

      index.rt_attr_multi.each     { |name| attributes[name] << :uint }
      index.rt_attr_multi_64.each  { |name| attributes[name] << :bigint }
    }

    plain_sources.each { |source|
      map_types_with_prefix source, :sql,
        [:uint, :bigint, :float, :timestamp, :string, :bool, :json]

      source.sql_attr_str2ordinal    { |name| attributes[name] << :uint }
      source.sql_attr_str2wordcount  { |name| attributes[name] << :uint }
      source.sql_attr_multi.each { |setting|
        type, name, *ignored = setting.split(/\s+/)
        attributes[name] << type.to_sym
      }
    }

    attributes.values.each &:uniq!
    attributes
  end