Getting the version number of the ruby interpreter

Hello all,

Is there a way to get the version number within a ruby script of the interpreter running that script?

Yes, I know I can do this on the cmd line:
% ruby --version

I didn't seem to find anything in the documentation though I am new at this language.

I have my reasons for wanting the version info in this manner. If you really want to know, I'll tell you. Otherwise, I'll spare you the boring details.

Thanks,
KPB

Keith P. Boruff wrote:

Hello all,

Is there a way to get the version number within a ruby script of the interpreter running that script?

irb(main):001:0> VERSION
=> "1.8.2"
irb(main):002:0>

Trevor Wennblom wrote:

Keith P. Boruff wrote:

Hello all,

Is there a way to get the version number within a ruby script of the interpreter running that script?

irb(main):001:0> VERSION
=> "1.8.2"
irb(main):002:0>

Ruby | zenspider.com | by ryan davis

Thanks! that did it. Also, thanks for the link.

KPB

Trevor Wennblom wrote:

Ruby | zenspider.com | by ryan davis

That site has this:

# prints lines starting at 'start' and ending at 'end'
while gets
  print if /start/../end/
end

Is that correct?

Hi,

At Sat, 22 Jan 2005 03:34:47 +0900,

irb(main):001:0> VERSION
=> "1.8.2"
irb(main):002:0>

Note that the constant VERSION has been obsolete. Use
RUBY_VERSION instead.

···

--
Nobu Nakada

That's no longer supported as of 1.8, but unfortunately gives no
error, according to page 64 of PickAxe2.

while line = gets
    puts line if line =~ /start/ .. line =~ /end/
end

is the correct form now.

Note: gets and print still operate magically on $_ in 1.8.2 but I'm
guessing / / doesn't, and hence that example no longer working.

More in line with the original example, I'd guess that this also works:

while gets
    print if $_ =~ /start/ .. $_ =~ /end/
end
# $_ implicit for gets and print

Regards,
Nick

···

--
Nicholas Van Weerdenburg

On Sat, 22 Jan 2005 06:10:58 +0900, William James <w_a_x_man@yahoo.com> wrote:

Trevor Wennblom wrote:
>
> Ruby | zenspider.com | by ryan davis

That site has this:

# prints lines starting at 'start' and ending at 'end'
while gets
  print if /start/../end/
end

Is that correct?

Did some testing, / / will operate on $_ implicitly, so that's not why
it no longer works as it did.

e.g.
while gets
   print if /start/
end

will print the line containing start.

So I'm guessing that / / changed what it returns (Matchdata or nil)
compared to what it used to return prior to 1,8 (Fixnum or nil) and
that breaks using it by itself with ranges.

Of course, this is all considered bad form in Ruby now anyhow. Still,
it's very nice for command-line 1 lines ( ruby -n -e 'print if /ruby/'
input.txt )

Nick

···

On Fri, 21 Jan 2005 16:41:55 -0500, Nicholas Van Weerdenburg <vanweerd@gmail.com> wrote:

That's no longer supported as of 1.8, but unfortunately gives no
error, according to page 64 of PickAxe2.

while line = gets
    puts line if line =~ /start/ .. line =~ /end/
end

is the correct form now.

Note: gets and print still operate magically on $_ in 1.8.2 but I'm
guessing / / doesn't, and hence that example no longer working.

More in line with the original example, I'd guess that this also works:

while gets
    print if $_ =~ /start/ .. $_ =~ /end/
end
# $_ implicit for gets and print

Regards,
Nick
--
Nicholas Van Weerdenburg

On Sat, 22 Jan 2005 06:10:58 +0900, William James <w_a_x_man@yahoo.com> wrote:
>
> Trevor Wennblom wrote:
> >
> > Ruby | zenspider.com | by ryan davis
>
>
> That site has this:
>
> # prints lines starting at 'start' and ending at 'end'
> while gets
> print if /start/../end/
> end
>
> Is that correct?
>
>

--
Nicholas Van Weerdenburg

Nicholas Van Weerdenburg wrote:

while gets
    print if $_ =~ /start/ .. $_ =~ /end/
end

That works. The equivalent Awk program is:

/start/,/end/

An Awk program to skip blank lines at the beginning of the file
(including lines containing only spaces)
and to print the rest of the lines:

NF,0

Which is exactly why the old behavior still works there. :wink:

james% cat test.txt
start
middle
end
james% ruby -n -e 'print unless /middle/' test.txt
start
end

James Edward Gray II

···

On Jan 21, 2005, at 4:13 PM, Nicholas Van Weerdenburg wrote:

Of course, this is all considered bad form in Ruby now anyhow. Still,
it's very nice for command-line 1 lines ( ruby -n -e 'print if /ruby/'
input.txt )