On Sat, Dec 09, 2006 at 10:10:09PM +0900, pachl wrote:
} I'm not sure how to explain what I'm looking for so I will show you:
} 
} # this works, but not quite the functionality I need
} 
} def simulate_cgi_upload
}   class << cgi_file = Tempfile.new('simulate-cgi')
}     def content_type() 'image/jpeg' end
}   end
}   cgi_file
} end
} 
} 
} # this does NOT work, but has the functionality I need
} # i.e.: dynamically defining content_type's return value using
} # the argument from simulate_cgi_upload method.
} 
} def simulate_cgi_upload(mime_type = 'image/jpeg')
}   class << cgi_file = Tempfile.new('simulate-cgi')
}     def content_type() mime_type end
}   end
}   cgi_file
} end

For what I think you're trying to do, try this:

def simulate_cgi_upload(mime_type = 'image/jpeg')
  cgi_file = Tempfile.new('simulate-cgi')
  (class << cgi_file; self; end).send(:attr_accessor, :content_type)
  cgi_file.content_type = mime_type
  cgi_file
end

} -pachl
--Greg