Tempfile, StringIO, and TestUploadedFile

When a multipart post is sent to Rails, the framework creates a "modified Tempfile" which is a Tempfile object but with two extra methods: content_type and original_filename (sometimes if the file being upload is small enough Rails will give you a modified StringIO class).

Helpfully the framework provides ActionController::TestUploadedFile to allow users to mimic this behavior in unit tests.

I'm finding myself hacking around Rail's behavior - trying to pass uploaded files to my models requires type checks: one action for Tempfile, one for StringIO, and for testing one for TestUploadedFile. Of course, I could just be passing the raw data to my file; but I don't want to fill up my RAM.

Why this design? Why not simply an ActionController::UploadedFile?

Thanks, Ryan Dahl

ps I'm having some problems with google groups - hopefully I haven't sent this message multiple times to the list. If so, sorry.