[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

newbie question - undefined method `replace_session_timeout' for main:Object (NoMethodError

warrene33@gmail.com

6/22/2007 2:32:00 AM

Hi,

I'm a newbie to ruby, and programming really...

I'm trying to write a simple script that will make a small change to a
text file.

Here's the code:

#script for changing the sessionState timeout to 30 minutes

f = File.open('C:\Inetpub\wwwroot\GT\web.config', 'r+')
f.each do |line|
if /sessionState/ =~line
offset=line.length
line=replace_session_timeout line
f.seek(-offset, IO::SEEK_CUR)
f.print line
end
end
f.close

def replace_session_timeout line
int = /</=~line
spacer = line[0..int-1]
result=line.replace spacer + "<sessionState timeout=\"30\"/>\r\n"
end

When I run this script I get the following error:
>ruby GT_SessionTimeout_1.rb
GT_SessionTimeout_1.rb:7: undefined method `replace_session_timeout'
for main:Object (NoMethodError)
from GT_SessionTimeout_1.rb:4:in `each'
from GT_SessionTimeout_1.rb:4
>Exit code: 1

I guess there is something wrong with my method call, but it looks
syntactically correct to me.

I've paged through the pickaxe book and online but, to be honest, I
don't think I understand the problem enough to search well for a
solution.

Any ideas?

Thanks much,
Warren

2 Answers

Morton Goldberg

6/22/2007 2:59:00 AM

0

On Jun 21, 2007, at 10:35 PM, warrene33@gmail.com wrote:

> #script for changing the sessionState timeout to 30 minutes
>
> f = File.open('C:\Inetpub\wwwroot\GT\web.config', 'r+')
> f.each do |line|
> if /sessionState/ =~line
> offset=line.length
> line=replace_session_timeout line
> f.seek(-offset, IO::SEEK_CUR)
> f.print line
> end
> end
> f.close
>
> def replace_session_timeout line
> int = /</=~line
> spacer = line[0..int-1]
> result=line.replace spacer + "<sessionState timeout=\"30\"/>\r\n"
> end
>
> When I run this script I get the following error:
>> ruby GT_SessionTimeout_1.rb
> GT_SessionTimeout_1.rb:7: undefined method `replace_session_timeout'
> for main:Object (NoMethodError)
> from GT_SessionTimeout_1.rb:4:in `each'
> from GT_SessionTimeout_1.rb:4
>> Exit code: 1
>
> I guess there is something wrong with my method call, but it looks
> syntactically correct to me.

The Ruby interpreter needs to see the definition of
replace_session_timeout before it is called for the first time. Just
move the definition above the body of the script.

Regards, Morton

warrene33@gmail.com

6/22/2007 12:22:00 PM

0

On Jun 21, 10:58 pm, Morton Goldberg <m_goldb...@ameritech.net> wrote:
> On Jun 21, 2007, at 10:35 PM, warren...@gmail.com wrote:
>
>
>
> > #script for changing the sessionState timeout to 30 minutes
>
> > f = File.open('C:\Inetpub\wwwroot\GT\web.config', 'r+')
> > f.each do |line|
> > if /sessionState/ =~line
> > offset=line.length
> > line=replace_session_timeout line
> > f.seek(-offset, IO::SEEK_CUR)
> > f.print line
> > end
> > end
> > f.close
>
> > def replace_session_timeout line
> > int = /</=~line
> > spacer = line[0..int-1]
> > result=line.replace spacer + "<sessionState timeout=\"30\"/>\r\n"
> > end
>
> > When I run this script I get the following error:
> >> ruby GT_SessionTimeout_1.rb
> > GT_SessionTimeout_1.rb:7: undefined method `replace_session_timeout'
> > for main:Object (NoMethodError)
> > from GT_SessionTimeout_1.rb:4:in `each'
> > from GT_SessionTimeout_1.rb:4
> >> Exit code: 1
>
> > I guess there is something wrong with my method call, but it looks
> > syntactically correct to me.
>
> The Ruby interpreter needs to see the definition of
> replace_session_timeout before it is called for the first time. Just
> move the definition above the body of the script.
>
> Regards, Morton

Wow. That simple. Thanks
Warren