When was the parse method added to the Time class?

Discussion in 'Ruby' started by Paul, Mar 13, 2009.

  1. Paul

    Paul Guest

    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.
     
    Paul, Mar 13, 2009
    #1
    1. Advertising

  2. Paul wrote:
    > 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

    --
    vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407
     
    Joel VanderWerf, Mar 13, 2009
    #2
    1. Advertising

  3. Joel wrote:

    > 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.
     
    Paul Carvalho, Mar 13, 2009
    #3
  4. >
    > 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.
     
    Paul Carvalho, Mar 13, 2009
    #4
  5. Paul Carvalho wrote:
    >> 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.
    >


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

    -Justin
     
    Justin Collins, Mar 14, 2009
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Bennett Haselton
    Replies:
    1
    Views:
    521
    John M Deal
    Nov 8, 2004
  2. flamesrock
    Replies:
    8
    Views:
    486
    Hendrik van Rooyen
    Nov 24, 2006
  3. Repoleved

    Parse children for Template added at design time

    Repoleved, May 13, 2005, in forum: ASP .Net Building Controls
    Replies:
    0
    Views:
    110
    Repoleved
    May 13, 2005
  4. Francis Hwang
    Replies:
    3
    Views:
    94
    Robert Klemme
    Nov 29, 2004
  5. Srikanth Jeeva
    Replies:
    8
    Views:
    190
    Michael Fellinger
    Dec 10, 2008
Loading...

Share This Page