When was the parse method added to the Time class?

P

Paul

Hi there, I've been running a particular script for a few years now
and only just noticed that it crashes on one particular system. (I
don't use that system very often and have run that script on it very
rarely.)

The offending code/line in question uses the Time.parse method.

I opened a CMD prompt and tried the following:
----
irb(main):001:0> d = '03/13/09 14:52'
=> "03/13/09 14:52"
irb(main):002:0> Time.parse( d )
NoMethodError: undefined method `parse' for Time:Class
from (irb):2
....
irb(main):010:0> Time.methods.include? 'parse'
=> false
----

This system has Ruby 184-20 installed. I know that version 186-25 and
up have the Time.parse method and the script works fine. However, I
want to know what version of Ruby first included that method so that I
can identify the minimum requirements to run the script.

Can anyone tell me how I might find out what version/release of Ruby
first included that method?

Please let me know. Thanks.

Paul.
 
J

Joel VanderWerf

Paul said:
Hi there, I've been running a particular script for a few years now
and only just noticed that it crashes on one particular system. (I
don't use that system very often and have run that script on it very
rarely.)

The offending code/line in question uses the Time.parse method.

I opened a CMD prompt and tried the following:
----
irb(main):001:0> d = '03/13/09 14:52'
=> "03/13/09 14:52"
irb(main):002:0> Time.parse( d )
NoMethodError: undefined method `parse' for Time:Class
from (irb):2
...
irb(main):010:0> Time.methods.include? 'parse'
=> false
----

This system has Ruby 184-20 installed. I know that version 186-25 and
up have the Time.parse method and the script works fine. However, I
want to know what version of Ruby first included that method so that I
can identify the minimum requirements to run the script.

Can anyone tell me how I might find out what version/release of Ruby
first included that method?

Please let me know. Thanks.

Paul.

It's not a ruby version issue.

Confusingly, Time.parse is only available after explicitly requiring 'time':

irb(main):001:0> Time.parse "1:23"
NoMethodError: undefined method `parse' for Time:Class
from (irb):1
irb(main):002:0> require 'time'
=> true
irb(main):003:0> Time.parse "1:23"
=> Fri Mar 13 01:23:00 -0700 2009
 
P

Paul Carvalho

Joel said:
It's not a ruby version issue.

Confusingly, Time.parse is only available after explicitly requiring 'time':

irb(main):001:0> Time.parse "1:23"
NoMethodError: undefined method `parse' for Time:Class
         from (irb):1
irb(main):002:0> require 'time'
=> true
irb(main):003:0> Time.parse "1:23"
=> Fri Mar 13 01:23:00 -0700 2009

Hmm, okay. I get that. So why does the "Time.methods.include?
'parse'" line work on all the other systems except for one? I'm not
specifically requiring that class on the other machines.

As a test, I uninstalled Ruby 184 and installed Ruby 186 and I get the
same effect on this computer -- i.e. the Time.parse method is still
not there by default. Weird. Could another Ruby gem be causing the
problem?

Paul.
 
P

Paul Carvalho

As a test, I uninstalled Ruby 184 and installed Ruby 186 and I get the
same effect on this computer -- i.e. the Time.parse method is still
not there by default.  Weird.  Could another Ruby gem be causing the
problem?

Okay, I uninstalled Ruby again and reinstalled it. This time I wrote
a one-line script with the above Time.parse code so that I could run
it anytime.

I installed all the gems I needed and the Time.parse method is always
there and works as expected.

The one thing I did the last time that I *didn't* do this time was run
the command:
gem update --system

If I run the above, then the Time.parse method will no longer be
available by default. It looks like there is something in that update
that kills the parse method for the Time class.

I won't be updating my rubygems again unless there is some compelling
reason for me to.

At least now I know what caused this system to stop running that
script.
 
J

Justin Collins

Paul said:
Okay, I uninstalled Ruby again and reinstalled it. This time I wrote
a one-line script with the above Time.parse code so that I could run
it anytime.

I installed all the gems I needed and the Time.parse method is always
there and works as expected.

The one thing I did the last time that I *didn't* do this time was run
the command:


If I run the above, then the Time.parse method will no longer be
available by default. It looks like there is something in that update
that kills the parse method for the Time class.

I won't be updating my rubygems again unless there is some compelling
reason for me to.

At least now I know what caused this system to stop running that
script.

Probably the newer version of one of your gems stopped including the
Time library.

-Justin
 

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,755
Messages
2,569,536
Members
45,009
Latest member
GidgetGamb

Latest Threads

Top