RUBY keeps complaining about my "end" statement


#1

When I try and run a script that has this as part of it, RUBY keeps
complaining about my “end” statement. Can someone please help me with
this? What’s its problem with it?

Thanks.

ps2kfiles =
Dir.glob("{aacmc7,acm059,acm061,acmc59,acmt59,adc064,adm064,cbncc7,
cgmpr,cpslit,cpsmco,edc131,edt131,eeomc7,emgc15,hcc201,hcci01,hct201,hcti01,
hla020,hlai20,hlb020,hlbi20,hltc20,hlti20,ierc78,itc101,jsc047,lrc013,lrfl21,
lrnm21,lrrc21,lrrc22,lrrc24,lrrc37,lrrc49,lrrc74,lrrmc6,lrrt37,mopc68,mopd68,
mopec8,mopt68,pgc117,pslc45,psvc45,rt013,rtc129,uln007}*.pdf")
ps2kfiles.each do |ps2kfile|
ftp = Net::FTP.open(‘quark.bna.com’)
ftp.login(‘pb4072’,‘retep1’)
ftp.chdir(’/home/pb4072’)
#ftp.chdir(’/prod/data/pdf/index-wip’)
ftp.putbinaryfile(#{ps2kfile})
end


#2

On Jun 13, 2006, at 4:06 PM, Peter B. wrote:

ftp.putbinaryfile(#{ps2kfile})

Someone forgot quotes around his string interpolation. Of course its
not really needed here

ftp.putbinaryfile(ps2kfile)


#3

On 6/13/06, Peter B. removed_email_address@domain.invalid wrote:

cgmpr,cpslit,cpsmco,edc131,edt131,eeomc7,emgc15,hcc201,hcci01,hct201,hcti01,
hla020,hlai20,hlb020,hlbi20,hltc20,hlti20,ierc78,itc101,jsc047,lrc013,lrfl21,
lrnm21,lrrc21,lrrc22,lrrc24,lrrc37,lrrc49,lrrc74,lrrmc6,lrrt37,mopc68,mopd68,
mopec8,mopt68,pgc117,pslc45,psvc45,rt013,rtc129,uln007}*.pdf")
ps2kfiles.each do |ps2kfile|
ftp = Net::FTP.open(‘quark.bna.com’)
ftp.login(‘pb4072’,‘retep1’)
ftp.chdir(’/home/pb4072’)
#ftp.chdir(’/prod/data/pdf/index-wip’)
ftp.putbinaryfile(#{ps2kfile})

Just staring at it, perhaps you meant:
ftp.putbinaryfile("#{ps2kfile}")

Les


#4

Peter B. wrote:

cgmpr,cpslit,cpsmco,edc131,edt131,eeomc7,emgc15,hcc201,hcci01,hct201,hcti01,
hla020,hlai20,hlb020,hlbi20,hltc20,hlti20,ierc78,itc101,jsc047,lrc013,lrfl21,
lrnm21,lrrc21,lrrc22,lrrc24,lrrc37,lrrc49,lrrc74,lrrmc6,lrrt37,mopc68,mopd68,
mopec8,mopt68,pgc117,pslc45,psvc45,rt013,rtc129,uln007}*.pdf")
ps2kfiles.each do |ps2kfile|
ftp = Net::FTP.open(‘quark.bna.com’)
ftp.login(‘xxx’,‘xxx’)
ftp.chdir(’/home/xxx’)
#ftp.chdir(’/prod/data/pdf/index-wip’)
ftp.putbinaryfile(#{ps2kfile})

ITYM:
ftp.putbinaryfile(ps2kfile)

end

Explanation: you do not need interpolation here, the variable
‘ps2kfile’ does hold the value you want already.

Oh, and you might want to change your password(s), if they are real.

HTH,

t.


#5

Peter B. wrote:

ftp.putbinaryfile(#{ps2kfile})

ruby is interpreting the # as a comment, since it’s not within a string.
Try this:

ftp.putbinaryfile(ps2kfile)

#6

Leslie V. wrote:

On 6/13/06, Peter B. removed_email_address@domain.invalid wrote:

cgmpr,cpslit,cpsmco,edc131,edt131,eeomc7,emgc15,hcc201,hcci01,hct201,hcti01,
hla020,hlai20,hlb020,hlbi20,hltc20,hlti20,ierc78,itc101,jsc047,lrc013,lrfl21,
lrnm21,lrrc21,lrrc22,lrrc24,lrrc37,lrrc49,lrrc74,lrrmc6,lrrt37,mopc68,mopd68,
mopec8,mopt68,pgc117,pslc45,psvc45,rt013,rtc129,uln007}*.pdf")
ps2kfiles.each do |ps2kfile|
ftp = Net::FTP.open(‘quark.bna.com’)
ftp.login(‘pb4072’,‘retep1’)
ftp.chdir(’/home/pb4072’)
#ftp.chdir(’/prod/data/pdf/index-wip’)
ftp.putbinaryfile(#{ps2kfile})

Just staring at it, perhaps you meant:
ftp.putbinaryfile("#{ps2kfile}")

Les

Yes, that worked. Thank you. I don’t know why it needs the quotes, but,
I’ll accept it.


#7

Logan C. wrote:

On Jun 13, 2006, at 4:06 PM, Peter B. wrote:

ftp.putbinaryfile(#{ps2kfile})

Someone forgot quotes around his string interpolation. Of course its
not really needed here

ftp.putbinaryfile(ps2kfile)

You’re absolutely right. I put quotes in and it worked. But, I don’t
quite get it. I don’t remember having to put them in before. Whatever .
. .

Thanks!


#8

Anton ‘tony’ Bangratz wrote:

Peter B. wrote:

cgmpr,cpslit,cpsmco,edc131,edt131,eeomc7,emgc15,hcc201,hcci01,hct201,hcti01,
hla020,hlai20,hlb020,hlbi20,hltc20,hlti20,ierc78,itc101,jsc047,lrc013,lrfl21,
lrnm21,lrrc21,lrrc22,lrrc24,lrrc37,lrrc49,lrrc74,lrrmc6,lrrt37,mopc68,mopd68,
mopec8,mopt68,pgc117,pslc45,psvc45,rt013,rtc129,uln007}*.pdf")
ps2kfiles.each do |ps2kfile|
ftp = Net::FTP.open(‘quark.bna.com’)
ftp.login(‘xxx’,‘xxx’)
ftp.chdir(’/home/xxx’)
#ftp.chdir(’/prod/data/pdf/index-wip’)
ftp.putbinaryfile(#{ps2kfile})

ITYM:
ftp.putbinaryfile(ps2kfile)

end

Explanation: you do not need interpolation here, the variable
‘ps2kfile’ does hold the value you want already.

Oh, and you might want to change your password(s), if they are real.

HTH,

t.

That worked. And, it is simpler. It’s not a string, anyway, so, why
would I need the #{}s, right? Thank you! No, those aren’t my
credentials. That’s a fake password and credentials.