paul
July 16, 2007, 5:37pm
1
I want to log the current Ruby version to a log file along with the
script version, but I don’t know how to get the Ruby version from
within a running script.
I tried:
puts system(“ruby -v”)
but that only returns “true” from within a script. (I see the correct
output when I run it in IRB, but the script doesn’t capture that.)
I also tried :
puts Config::CONFIG[“ruby_version”]
but that returns “1.8” and I would like “1.8.x”.
Any suggestions? Please let me know. Thanks.
paul
July 16, 2007, 5:53pm
2
Paul schrieb:
I want to log the current Ruby version to a log file along with the
script version, but I don’t know how to get the Ruby version from
within a running script.
Just use constant RUBY_VERSION.
puts RUBY_VERSION
=> 1.8.6
paul
July 16, 2007, 6:02pm
3
On Jul 16, 2007, at 9:55 AM, Paul wrote:
I also tried :
puts Config::CONFIG[“ruby_version”]
but that returns “1.8” and I would like “1.8.x”.
Any suggestions? Please let me know. Thanks.
the constant VERSION will return the version number (only)
puts “Ruby version #{VERSION}”
paul
July 16, 2007, 6:04pm
4
Alle lunedì 16 luglio 2007, Paul ha scritto:
I also tried :
puts Config::CONFIG[“ruby_version”]
but that returns “1.8” and I would like “1.8.x”.
Any suggestions? Please let me know. Thanks.
You can try
puts(RUBY_VERSION)
By the way, if you need to get the output of an external command, you
need to
use cmd
, instead of system(“cmd”).
Stefano
paul
July 16, 2007, 7:18pm
5
On Jul 16, 2007, at 8:57 AM, Axel E. wrote:
this works for me:
result= ruby -v
p ‘my result’
p result
Unfortunately, this grabs the version of some Ruby, not necessarily
the one currently running. The RUBY_VERSION constant is what you
probably want.
Paul K. (A different Paul than the OP)
paul
July 16, 2007, 6:06pm
6
Paul,
this works for me:
result= ruby -v
p ‘my result’
p result
Best regards,
Axel
paul
July 16, 2007, 7:57pm
7
On 16.07.2007 19:16, Paul wrote:
On Jul 16, 11:13 am, Phil M. wrote:
Just use constant RUBY_VERSION.
puts RUBY_VERSION
=> 1.8.6
That’s perfect! Thank you.
I don’t know why Google didn’t turn that up anywhere. I even checked
the Pickaxe book but I didn’t find it under “V” for ‘version’.
Since the version is a good candidate for a constant you can try this:
Robert@Babelfish2 ~
$ ruby -e ‘Object.constants.sort.each {|c| cv=Object.const_get©; print
c, “=”, cv, “\n” unless Module === cv}’
ARGF=ARGF
ARGV=
ENV=ENV
FALSE=false
NIL=nil
PLATFORM=i386-cygwin
RELEASE_DATE=2007-03-13
RUBY_PATCHLEVEL=0
RUBY_PLATFORM=i386-cygwin
RUBY_RELEASE_DATE=2007-03-13
RUBY_VERSION=1.8.6
STDERR=#IO:0x100362d0
STDIN=#IO:0x100362f8
STDOUT=#IO:0x100362e4
TOPLEVEL_BINDING=#Binding:0x100302a4
TRUE=true
VERSION=1.8.6
Robert@Babelfish2 ~
$
Or just use IRB.
Kind regards
robert
paul
July 16, 2007, 7:21pm
8
On Jul 16, 11:13 am, Phil M. wrote:
Just use constant RUBY_VERSION.
puts RUBY_VERSION
=> 1.8.6
That’s perfect! Thank you.
I don’t know why Google didn’t turn that up anywhere. I even checked
the Pickaxe book but I didn’t find it under “V” for ‘version’.
Cheers!