Unexpected error in time difference

Hi,

I found some unexpected errors in time difference test.
Is this a bug or feature?

irb(main):001:0> Time.now-1
=> Thu Nov 27 16:19:35 +0900 2008
irb(main):002:0> Time.now -1
ArgumentError: wrong number of arguments (1 for 0)
        from (irb):2:in `initialize'
        from (irb):2:in `now'
        from (irb):2
irb(main):003:0> Time.now - 1
=> Thu Nov 27 16:19:40 +0900 2008
irb(main):004:0> t = Time.now
=> Thu Nov 27 16:19:48 +0900 2008
irb(main):005:0> Time.now-t
=> 7.250976
irb(main):006:0> Time.now -t
NoMethodError: undefined method `-@' for Thu Nov 27 16:19:48 +0900 2008:Time
        from (irb):6
irb(main):007:0> Time.now - t
=> 11.539909

Regards,

Park Heesob

···

from :0

Works as designed. With Time.now -1 the parser parses this as Time.now(-1). Rule of thumb: use spaces around operators - makes your code also more readable.

Kind regards

  robert

···

On 27.11.2008 08:29, Heesob Park wrote:

I found some unexpected errors in time difference test.
Is this a bug or feature?

irb(main):001:0> Time.now-1
=> Thu Nov 27 16:19:35 +0900 2008
irb(main):002:0> Time.now -1
ArgumentError: wrong number of arguments (1 for 0)
        from (irb):2:in `initialize'
        from (irb):2:in `now'
        from (irb):2
irb(main):003:0> Time.now - 1
=> Thu Nov 27 16:19:40 +0900 2008
irb(main):004:0> t = Time.now
=> Thu Nov 27 16:19:48 +0900 2008
irb(main):005:0> Time.now-t
=> 7.250976
irb(main):006:0> Time.now -t
NoMethodError: undefined method `-@' for Thu Nov 27 16:19:48 +0900 2008:Time
        from (irb):6
        from :0
irb(main):007:0> Time.now - t
=> 11.539909

If you place parentheses it's much clearer:

Time.now().-(1)
vs
Time.now(-1) # wrong num of args

···

On Thu, Nov 27, 2008 at 3:29 PM, Heesob Park <phasis@gmail.com> wrote:

Hi,

I found some unexpected errors in time difference test.
Is this a bug or feature?

irb(main):001:0> Time.now-1
=> Thu Nov 27 16:19:35 +0900 2008
irb(main):002:0> Time.now -1
ArgumentError: wrong number of arguments (1 for 0)
       from (irb):2:in `initialize'
       from (irb):2:in `now'
       from (irb):2
irb(main):003:0> Time.now - 1
=> Thu Nov 27 16:19:40 +0900 2008
irb(main):004:0> t = Time.now
=> Thu Nov 27 16:19:48 +0900 2008
irb(main):005:0> Time.now-t
=> 7.250976
irb(main):006:0> Time.now -t
NoMethodError: undefined method `-@' for Thu Nov 27 16:19:48 +0900 2008:Time
       from (irb):6
       from :0
irb(main):007:0> Time.now - t
=> 11.539909

Regards,

Park Heesob

--
jorrel