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?
Dovrebbero essere visibili invece. Sono variabili locali e non ci
dovrebbero essere problemi. Mi sa che il problema sta da qualche altra
parte!
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.
ma se usi “msg” invece di “@msg” no?
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.
prova a mettere un buon vecchio “puts msg” come prima riga del blocco e
vedi
che ti dà
On 5/18/07, Mauro S. [email protected] wrote:
Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml
–
– Kia
therubymine.com | be a miner
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(“[email protected]”,“jhkj”,“[email protected]”,“il nome”,“senti un
po’”, “funzia?”)