# File lib/dm-redis-adapter/adapter.rb, line 39
      def read(query)
        storage_name = query.model.storage_name
        records = records_for(query)
        records.each do |record|
          record_data = @redis.hgetall("#{storage_name}:#{record[redis_key_for(query.model)]}")

          query.fields.each do |property|
            next if query.model.key.include?(property) and query.model.key.size == 1

            name = property.name.to_s
            value = record_data[name]

            # Integers are stored as Strings in Redis. If there's a
            # string coming out that should be an integer, convert it
            # now. All other typecasting is handled by datamapper
            # separately.
            record[name] = [Integer, Date].include?(property.primitive) ? property.typecast( value ) : value
            record
          end
        end
        query.filter_records(records)
      end