# File lib/mongoid/extensions/object_id/conversions.rb, line 33
        def convert(klass, args, reject_blank = true)
          return args if args.is_a?(BSON::ObjectId) || !klass.using_object_ids?
          case args
          when ::String
            return nil if args.blank?
            if args.unconvertable_to_bson?
              args
            else
              BSON::ObjectId.legal?(args) ? BSON::ObjectId.from_string(args) : args
            end
          when ::Array
            args.delete_if { |arg| arg.blank? } if reject_blank
            args.replace(args.map { |arg| convert(klass, arg, reject_blank) })
          when ::Hash
            args.tap do |hash|
              hash.each_pair do |key, value|
                next unless klass.object_id_field?(key)
                hash[key] = convert(klass, value, reject_blank)
              end
            end
          else
            args
          end
        end