# File lib/dm-core/model.rb, line 326
    def last(*args)
      last_arg = args.last

      limit      = args.first if args.first.kind_of?(Integer)
      with_query = last_arg.respond_to?(:merge) && !last_arg.blank?

      query = with_query ? last_arg : {}

      query = if query.kind_of?(Query)
        query.slice(0, limit || 1).reverse!
      else
        offset = query.fetch(:offset, 0)
        query  = query.except(:offset)
        scoped_query(query).slice(offset, limit || 1).reverse!
      end

      if limit
        all(query)
      else
        query.repository.read(query).last
      end
    end