Forum: Italian Ruby user group scope delle variabili.

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
09f38ff69d24a477bd0bc340eeeda432?d=identicon&s=25 Mauro Sanna (Guest)
on 2007-05-18 11:35
(Received via mailing list)
Anteponendo una @ la variabile e' visibile da tutti i metodi all'interno
della classe.
Se volessi che una variabile sia visibile solo all'interno di un metodo
escludendo tutti gli altri?

def sendMail(from, from_alias, to, to_alias, subject, message)
    msg = <<END_OF_MESSAGE
From: #{from_alias} <#{from}>
To: #{to_alias} <#{to}>
Subject: #{subject}

#{message}
END_OF_MESSAGE
    Net::SMTP.start('mail') do |smtp|
      smtp.send_message msg, from, to
    end
  end

questo metodo non funziona perche' le variabili msg, from e to non sono
visibili all'interno del blocco smtp.
L'unica soluzione sarebbe quella di rendere msg @msg e assegnare from e
to ad altre variabili con scope di classe?
Aea9ee14e387a68f5cd63048a0ba9266?d=identicon&s=25 david (Guest)
on 2007-05-18 11:42
(Received via mailing list)
Dovrebbero essere visibili invece. Sono variabili locali e non ci
dovrebbero essere problemi. Mi sa che il problema sta da qualche altra
parte!
09f38ff69d24a477bd0bc340eeeda432?d=identicon&s=25 Mauro Sanna (Guest)
on 2007-05-18 11:44
(Received via mailing list)
Il giorno ven, 18/05/2007 alle 11.42 +0200, david ha scritto:
> Dovrebbero essere visibili invece. Sono variabili locali e non ci
> dovrebbero essere problemi. Mi sa che il problema sta da qualche altra
> parte!
>

ho provato con @msg anziche' msg e dando al from e al to dei valori e
cosi' funziona.
Aea9ee14e387a68f5cd63048a0ba9266?d=identicon&s=25 david (Guest)
on 2007-05-18 11:47
(Received via mailing list)
ma se usi "msg" invece di "@msg" no?
09f38ff69d24a477bd0bc340eeeda432?d=identicon&s=25 Mauro Sanna (Guest)
on 2007-05-18 11:49
(Received via mailing list)
Il giorno ven, 18/05/2007 alle 11.46 +0200, david ha scritto:
> ma se usi "msg" invece di "@msg" no?
>

a quanto pare no.
fatto usando irb funziona, se invece inserisco tutto il codice dentro un
metodo che viene richiamato da un altro metodo all'interno della stessa
classe devo usare @msg per farlo funzionare.
D8fb06dfc08a477ecb0a76ffdbff3475?d=identicon&s=25 Chiaro Scuro (chiaroscuro)
on 2007-05-18 11:57
(Received via mailing list)
prova a mettere un buon vecchio "puts msg" come prima riga del blocco e
vedi
che ti dà

On 5/18/07, Mauro Sanna <mauro.sanna@comune.cagliari.it> wrote:
>
> _______________________________________________
> Ml mailing list
> Ml@lists.ruby-it.org
> http://lists.ruby-it.org/mailman/listinfo/ml
>
>


--
-- Kia

therubymine.com | be a miner
Aea9ee14e387a68f5cd63048a0ba9266?d=identicon&s=25 david (Guest)
on 2007-05-18 12:16
(Received via mailing list)
Boh, senti, non so che dire. Ripeto che secondo me hai qualcosa altro
che non ti va. Lo scope non c'entra nulla. A me questo funziona:

#!/usr/bin/env ruby
require 'net/smtp'
class Mailerino
   def sendMail(from="defSender",from_alias="",
to="defReciever",to_alias="in nome", subject="aSubject", message =
"aMessage")
  msg = <<-THEMAIL
From: #{from_alias} <#{from}>
To:#{to_alias} <#{to}>
Subject:#{subject}

#{message}
THEMAIL

  Net::SMTP.start('mail') do |smtp|
          smtp.send_message msg, from, to
  end
    end
end

m  =  Mailerino.new
m.sendMail("uno@uno.it","jhkj","pippo@gmail.com","il nome","senti un
po'", "funzia?")
This topic is locked and can not be replied to.