On Dec 9, 6:26 am, dbl... / wobblini.net wrote:
> On Sat, 9 Dec 2006, 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
> > endTry this (or something like it in case I've mistyped anything):
>
>    def simulate_cgi_upload(mime_type = 'image/jpeg')
>      cgi_file = Tempfile.new('simulate-cgi')
>      (class << cgi_file; self; end).class_eval do
>        define_method("content_type") { mime_type }
>      end
>      cgi_file
>    end

Excactly what I was looking for; compact and fairly elegant.

Thanks for the very quick response David and good morning to you.

-pachl