Includere librerie esterne in Rails (was: Re: [ruby-it] Invio di un
file (http) con Ruby)
Ashkey
ashkey80 a gmail.com
Mer 21 Feb 2007 12:25:49 CET
Risolto... è stato sufficente copiare i files di Curb (i files curb.rb
ed il compilato curb_core.bundle) nella cartella /lib della mia
applicazione. In pratica lasciando tutto nel percorso standard di gems
caricava il primo (che creava il modulo, quindi non avevo il
NameError) ma non trovava il bundle...
Ora funziona perfettamente, e scaricare un file è veramente facile:
Curl::Easy.download('http://www.rubi-lang.org',
'/Users/julespiccotti/Desktop/ruby_index.html')
mentre per fare il post http di un file è stato sufficente questo script:
c = Curl::Easy.new
c.url = 'http://mediaingestion.dv-lnx.esperia.com/upload.php'
c.multipart_form_post = true
c.http_post(Curl::PostField.file('Filedata',
'/Users/julespiccotti/file.zip'))
@body = c.body_str
@headers = c.headers_str
@http_code = c.response_code
Mitico!
Jules Piccotti
Il 20/02/07, Ashkey<ashkey80 a gmail.com> ha scritto:
> Ciò che mi lascia perplesso è che non ho un NameError (che ottengo se
> tolgo il require dal controller), quindi la libreria viene caricata...
> ma qualcosa non va' come dovrebbe, dato che non vede i metodi.
>
> Mi cheido quale sia la causa...
>
> J
>
> Il 20/02/07, Ashkey<ashkey80 a gmail.com> ha scritto:
> > Sono riuscito a farlo funzionare dalla console, ed è una figata.
> > Riesco ad eseguire post, get, e molte altre operazioni http senza
> > problemi.
> >
> > A questo indirizzo le istruzioni: http://curb.rubyforge.org/files/README.html
> >
> > Se lo uso in un controller Rails invece sembra darmi qualche
> > problema... Ecco il codice incriminato:
> >
> > require 'curb'
> >
> > class CurlController < ApplicationController
> > def test
> > c = Curl::Easy.perform("http://www.google.co.uk")
> > @res = c.body_str
> > end
> > end
> >
> > Mi da l'ormai odiata eccezione:
> > NoMethodError in VideosController#upload
> > undefined method `perform' for Curl::Easy:Class
> >
> > Dalla console invece:
> >
> > >> require 'curb'
> > => []
> > >> c = Curl::Easy.perform("http://www.google.co.uk")
> > => #<Curl::Easy:0x33684ec>
> > >> c.body_str
> > => "<html><head><meta http-equiv=\"conten............
> >
> > Cosa può essere?
> >
> >
> >
> > Il 20/02/07, david<david.palm a iperbole.bologna.it> ha scritto:
> > >
> > > >
> > > > E' ciò che stavo valutando ma ho trovato di meglio:
> > > >
> > > > http://curb.rubyforge.org/
> > > >
> > > > gem install curb :-)
> > > >
> > > > Ora ci gioco un po' e vi faccio sapere...
> > > >
> > > He he... avrai risolto allora!
> > >
> > > :-)
> > >
> > > --
> > > "Ce qui compte, ce n'est pas le bonheur de tout le monde, c'est le bonheur de chacun." - Boris Vian
> > >
> > > _______________________________________________
> > > Ml mailing list
> > > Ml a lists.ruby-it.org
> > > http://lists.ruby-it.org/mailman/listinfo/ml
> > >
> >
> >
> > --
> > Ashkey < Jules Piccotti
> >
>
>
> --
> Ashkey < Jules Piccotti
>
Maggiori informazioni sulla lista
Ml