Ruby calc.rb or just calc.rb

Beginner here (in ANY programming language), so pls bear with me.

Please see the first example on this page.
http://pine.fm/LearnToProgram/?Chapter=01

It says to type in ruby calc.rb

I find it doesn’t work.
What works are:
calc.rb
or simply
calc

Am I wrong? I saved the calc.rb in G:\Ruby\Practice
I opened command prompt in Accessories, went to G:\Ruby\Practice ,
then typed ruby calc.rb

G:\Ruby\Practice>ruby calc.rb
‘ruby’ is not recognized as an internal or external command,
operable program or batch file.

so I typed calc.rb and it worked.
calc also worked.

So is the example wrong or am I doing it wrong?

Thanks guys!

On Mon, Jul 26, 2010 at 12:29 PM, Kaye Ng [email protected] wrote:

or simply
calc

Am I wrong? I saved the calc.rb in G:\Ruby\Practice
I opened command prompt in Accessories, went to G:\Ruby\Practice ,
then typed ruby calc.rb

G:\Ruby\Practice>ruby calc.rb
‘ruby’ is not recognized as an internal or external command,
operable program or batch file.

I’m not a Windows expert, but what this is saying is that “ruby”, the
ruby executable, is not in your PATH.
You could put it in your path, IIRC, in some global settings (search
for setting environment variables in Windows)

so I typed calc.rb and it worked.

This is probably because you (or the Ruby installation program) have
associated .rb programs to the ruby executable (you can check this in
the File Types Association in some contextual menu in the Explorer, I
think).

calc also worked.

I’m totally guessing here, but it might be that the Windows cmd
expands a command with existing files in the current directory, if it
doesn’t find a command like that?

Jesus.

I agree with Jesús Gabriel y Galán :

the ruby command will only work if you put the “$path\ruby\bin” in your
PATH
-> right click on computer, then properties, advanced, environment
variables, edit your PATH variable and add you ruby path ex :
c:\ruby\bin;…
dont delete or modify existing path ^^

it’s may be usefull if you want see ruby errors

If you only type the filename like calc.rb, windows will try to run the
file with the assiociated program in your case, ruby, so it will work
fine, but if you will get an error, the cmd window will be close with
your ruby application.

If you only run calc, without the “.rb” windows will try ton run
runnable file with calc name … That could be a problem if for example
you use ocra to get a ruby exe (named calc.exe) and you still have your
calc.rb in the same folder.

I dont know how windows will react … it may ask you if you want run
the .exe or the .rb, or send you an error, or maybe run the .exe …

You need to set your path top the Ruby bin directory. The error: ‘ruby’
is
not recognized as an internal or external command,
operable program or batch file.’

Is do to this you must set PATH=%PATH%;c:\ruby\bin or the true path of
your
installation.

The reason your calc.rb at the command line is working is

Depending on how you installed windows…1click installs set this up.

On Windows it depends whether or not .rb files are associated with ruby.
It
seems perhaps they are. Since you type calc and cal.rb and it works I
believe this to be the best guess.

So as I understand it you are are experiencing.

$ hello-world.rb
Hello world

No I would check the the following:

$ assoc

Look for
.rb=RubyScript

$ ftype

Look for
RubyScript=“c:\ruby\bin\ruby.exe” “%1” %*

For more assistance on these commands run “help assoc” and “help ftype”.

If this does not have either entry.

See if that helps

As a curiosity issue, what version of Windows are you using? Because
Windows
7, at least, has a different way you can edit the user specific PATH
variable rather than the system PATH variable.
Control Panel -> User accounts -> Change my environment variables

On Tue, Jul 27, 2010 at 8:43 AM, Kaye Ng [email protected] wrote:

“ruby calc.rb” and I got confused.

I still don’t understand the logic behind it.
Do I have to bother with this?
Do I always have to save my programs in the bin folder?

Please excuse the ignorance. I’m a novice.

No problem, we were all novices at some point in time. When you type
“ruby” in the cmd window, Windows has to know to which program you
refer to. For this, it uses the environment variable PATH, which
contains a list of folders to search for executables. When you are in
any folder in your system and type the name of a program, it searches
in the current folder and then in all folders in that variable until
it finds a suitable named program to run. If it doesn’t find one, it
spits the message “ruby is not recognized, etc, etc”. A way to solve
it so that you can call ruby from wherever folder, is to add the path
to the ruby executable to your PATH environment variable. Others have
explained how to do that in Windows (there are some menus to click and
so on).

With this, then you can place your rb files wherever you want, and
call the ruby executable from that folder.

Hope this helps,

Jesus.

To James, I’m still on windows xp.

I tried putting the calc.rb file inside the bin folder, and “ruby
calc.rb” worked, as well as “calc” and “calc.rb”

Is this what you guys were saying?

The tutorial didn’t say anything about the bin folder or where exactly
to save the programs. It only said to make a folder wherein my programs
could be saved, and that’s what I did. But then it instructed to type
“ruby calc.rb” and I got confused.

I still don’t understand the logic behind it.
Do I have to bother with this?
Do I always have to save my programs in the bin folder?

Please excuse the ignorance. I’m a novice.

If you don’t know how to change PATH variable in Windows (then you
should learn it of course), then you can install Ruby again from
http://rubyinstaller.org/ but this time check also the checkbox, which
says something about “add to PATH”. For some reason this is not
checked by default.

And please don’t put your Ruby scripts into Ruby\bin directory - it
will be a mess after a while.

On Tue, 27 Jul 2010 10:28:56 -0700 (PDT), Jarmo P.
[email protected] wrote:

And please don’t put your Ruby scripts into Ruby\bin directory - it
will be a mess after a while.

It used to be the habit of my employers to send us our PC’s with a
C:$user directory already defined. Anything you put in here would be
copied to your next PC by the migration process. I copy C:$user to my
memory stick as a precaution.

So I create a C:$user\tools directory for all of the little programs
that I write, and the simpler ones that I download. So adding
C:$user\tools to the PATH variable, and adding ;.RB to the PATHEXT
variable allows me to run C:$user\tools\neat.rb with the command
“neat” whichever directory I’m in.

You have to learn to avoid conflicts with other programs that may take
precedence; executing just “test” is asking for trouble as it may well
not run your C:$user\tools\test.rb

Thanks guys! Truly appreciate it!