A hopefully simple question

C

Chuft Captain

Hello,

I downloaded an irc bot written in Ruby. I haven't programmed in many
years but couldn't resist the urge to tinker with the code so I peeked
inside.

Basically I am trying to add additional string recognition statements to
this bot, so it says things in response to things people say in the
channel.

For example the code contains this statement:

elsif msg.text == "lol"
reply(msg, " LOLOLOLOL")

This works fine. However I would like to have it respond if the
statement being evaluated has "lol" anywhere in it, not just if it is
exactly "lol". In other words, I want to search their string, which
appears to be in the variable msg.text, to see if it contains "lol". In
the past, I have found this to be a simple matter in other languages.

I have been unable to find out how to do this in Ruby. If I try this:

elsif msg.text.include? "lol"
reply(msg, " LOLOLOLOL")

the bot either does not run at all, or else quits immediately. Similar
instant failure occurs when I try

elsif msg.text.include?("lol")
reply(msg, " LOLOLOLOL")

or

elsif msg.text =~ "lol"
reply(msg, " LOLOLOLOL")


Is there a simple way to accomplish this task by replacing the ==
comparison operator with something else that searches a string variable
for a substring?

Thanks
 
M

Michael Malone

Chuft said:
Hello,

I downloaded an irc bot written in Ruby. I haven't programmed in many
years but couldn't resist the urge to tinker with the code so I peeked
inside.

Basically I am trying to add additional string recognition statements to
this bot, so it says things in response to things people say in the
channel.

Is there a simple way to accomplish this task by replacing the ==
comparison operator with something else that searches a string variable
for a substring?

Thanks
/Everybody stand back/
I know regular expressions

if msg.text =~ %r{lol}i
reply(msg, " LOLOLOLOL")

=======================================================================
This email, including any attachments, is only for the intended
addressee. It is subject to copyright, is confidential and may be
the subject of legal or other privilege, none of which is waived or
lost by reason of this transmission.
If the receiver is not the intended addressee, please accept our
apologies, notify us by return, delete all copies and perform no
other act on the email.
Unfortunately, we cannot warrant that the email has not been
altered or corrupted during transmission.
=======================================================================
 
J

John Sikora

Phlip said:
Our hero!


bla> echololia is a serious aphasia

bot> LOLOLOLOL

bla> uh... k


It seems that if msg.text was a String object, then the include? method
should work.
The first thing I would do would be to try...

puts msg.text.class

...to know exactly what I am dealing with.


John S.
 
M

Michael Malone

Phlip said:
Our hero!


bla> echololia is a serious aphasia

bot> LOLOLOLOL

bla> uh... k
%r{\Wlol\W}i

da di duh da...
*indiana jones theme music*

=======================================================================
This email, including any attachments, is only for the intended
addressee. It is subject to copyright, is confidential and may be
the subject of legal or other privilege, none of which is waived or
lost by reason of this transmission.
If the receiver is not the intended addressee, please accept our
apologies, notify us by return, delete all copies and perform no
other act on the email.
Unfortunately, we cannot warrant that the email has not been
altered or corrupted during transmission.
=======================================================================
 
C

Chuft Captain

Michael said:
/Everybody stand back/
I know regular expressions

if msg.text =~ %r{lol}i
reply(msg, " LOLOLOLOL")


You are a god among men. You have my thanks!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,733
Messages
2,569,439
Members
44,829
Latest member
PIXThurman

Latest Threads

Top