Execute ruby commands in a program

H

Haze Noc

Ok so lets say i have a program, And within the program i call a command
such as Ruby: <command>

Is there anyway to be able to run live ruby code and print the answers
(i dont really know how to put it) so like..

Ruby: name = 'john'; puts "Hi" if name == 'john'
Program: Hi


Sounds weird i know, But if Anyone out there understands me that would
be great..

I want to stay away from shell one liners like ruby -e "code here"

Thanks in advance
 
C

Chris

Um, this sounds like 'irb'. Depending on what OS you're on and how
you installed ruby, you should just be able to type 'irb' at the
command-line. That sounds like what you're after.
 
D

Daniel Martin

Haze Noc said:
Is there anyway to be able to run live ruby code and print the answers
(i dont really know how to put it) so like..

Ruby: name = 'john'; puts "Hi" if name == 'john'
Program: Hi

Sounds weird i know, But if Anyone out there understands me that would
be great..

I want to stay away from shell one liners like ruby -e "code here"

I have a bit of trouble understanding what it is you want to have
happen, especially since you specifically wish to avoid 1-liners.

Is "irb" (bundled with ruby) what you want?

Absent that, at the shell you can just run "ruby", type some ruby
code, then type
__END__
on a line by itself, (that's two underscores, then END, then two more
underscores) and the code will then run.

Is either of this what you wanted?
 
H

Haze Noc

Sorry its quite hard to explain, Its not IRB, because i want to actually
run a command from within another ruby script.. Lets say i wanted to do
a 1 liner from within the program i could do something like..

me: ruby puts "Hello"
script runs `ruby -e "puts 'Hello'"
Program: Hello

But i didn't really want to do any 1 liners, althouth if i did, lets say
i have

while msg = gets
if msg =~ /^ruby (.+)/i
msg.gsub!(/\"/, "'")
message = `ruby -e "#{$1}"`
puts message
end
end

and input was..

puts 'hello'

How could i return the input?
 
J

John Joyce

Sorry its quite hard to explain, Its not IRB, because i want to
actually
run a command from within another ruby script.. Lets say i wanted
to do
a 1 liner from within the program i could do something like..

me: ruby puts "Hello"
script runs `ruby -e "puts 'Hello'"
Program: Hello

But i didn't really want to do any 1 liners, althouth if i did,
lets say
i have

while msg = gets
if msg =~ /^ruby (.+)/i
msg.gsub!(/\"/, "'")
message = `ruby -e "#{$1}"`
puts message
end
end

and input was..

puts 'hello'

How could i return the input?
look up eval
 
H

Haze Noc

John said:
look up eval


Thanks, i looked it up and coded something pretty much the same except
something like message = eval("#{$1}").. when i print out the return it
just print nil
 
S

Simon Krahnke

* Haze Noc said:
Thanks, i looked it up and coded something pretty much the same except
something like message = eval("#{$1}").. when i print out the return it
just print nil

What did you expect it to print?

mfg, simon .... l
 

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

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,062
Latest member
OrderKetozenseACV

Latest Threads

Top