lets say I have three programs
Main.rb
Sub1.rb
and
Sub2.rb
When I run Main.rb, I want it to access and run the other two ruby
programs. How do I do this?
···
--
Posted via http://www.ruby-forum.com/.
lets say I have three programs
Main.rb
Sub1.rb
and
Sub2.rb
When I run Main.rb, I want it to access and run the other two ruby
programs. How do I do this?
--
Posted via http://www.ruby-forum.com/.
If you just want to run them one at a time and wait, you can do this;
trya.rb
puts "a"
sleep 3
system("ruby tryb.rb")
system("ruby tryc.rb")
sleep 3
tryb.rb
puts "b"
sleep 3
tryc.rb
puts "c"
On 1/26/07, Jonathan Denni <jonsdenni@gmail.com> wrote:
lets say I have three programs
Main.rb
Sub1.rb
and
Sub2.rbWhen I run Main.rb, I want it to access and run the other two ruby
programs. How do I do this?
--
# From Jonathan Denni <jonsdenni@gmail.com>:
# > lets say I have three programs
# >
# > Main.rb
# > Sub1.rb
# > and
# > Sub2.rb
# >
# > When I run Main.rb, I want it to access and run the other two ruby
# > programs. How do I do this?
# >
From: Harry [mailto:ruby.hardware@gmail.com]:
#
# If you just want to run them one at a time and wait, you can do this;
#
# trya.rb
# puts "a"
# sleep 3
# system("ruby tryb.rb")
# system("ruby tryc.rb")
# sleep 3
#
# tryb.rb
# puts "b"
# sleep 3
#
# tryc.rb
# puts "c"
Just in case, he's not familiar w ruby's require yet.
C:\family\ruby>cat main.rb
puts __FILE__
require 'sub1.rb'
require 'sub2.rb'
C:\family\ruby>cat sub1.rb
puts __FILE__
C:\family\ruby>cat sub2.rb
puts __FILE__
C:\family\ruby>ruby main.rb
main.rb
./sub1.rb
./sub2.rb
C:\family\ruby>qri require
------------------------------------------------------ Multiple choice
Kernel#require, Needle::Container#require,
Needle::DefinitionContext#require
C:\family\ruby>qri kernel#require
--------------------------------------------------------- Kernel#requi
require(string) => true or false
----------------------------------------------------------------------
Ruby tries to load the library named _string_, returning +true+ i
successful. If the filename does not resolve to an absolute path,
it will be searched for in the directories listed in +$:+. If the
file has the extension ``.rb'', it is loaded as a source file; if
the extension is ``.so'', ``.o'', or ``.dll'', or whatever the
default shared library extension is on the current platform, Ruby
loads the shared library as a Ruby extension. Otherwise, Ruby tri
adding ``.rb'', ``.so'', and so on to the name. The name of the
loaded feature is added to the array in +$"+. A feature will not
loaded if it's name already appears in +$"+. However, the file na
is not converted to an absolute path, so that ``+require
'a';require './a'+'' will load +a.rb+ twice.
hth
kind regards -botp
If you just want to run them one at a time and wait, you can do this;
trya.rb
puts "a"
sleep 3
system("ruby tryb.rb")
system("ruby tryc.rb")
sleep 3tryb.rb
puts "b"
sleep 3tryc.rb
puts "c"
thank you!
that was easy. so, according to
http://www.ruby-doc.org/docs/ProgrammingRuby/html/ref_m_kernel.html#Kernel.system
when I use system(" ") it has the same effect as if I typed whatever is
in the quotes into the terminal, right?
I could also use load("sub1.rb") instead of system("ruby sub1.rb")
correct?
Is there a way I can propogate the variables in the loaded files
('sub1.rb',sub2.rb') to the loading file ('main.rb')?
--
Posted via http://www.ruby-forum.com/\.