Issue #10758 has been updated by John Bolliger.


Could the behavior of the following code have changed between Ruby 2.1.2 and Ruby 2.2.0? 

In the Rails 3.2.21 with Ruby 2.1.2 version of activesupport the following works:

         def parse(str, now=now)

With Ruby 2.2.0 it no longer works. In the latest version of activesupport on master on github that line has changed to the following:

        def parse(str, now=now())

With 2.2.0 is it now necessary to use the () when referencing a function with the same name a default value assignment?

----------------------------------------
Bug #10758: undefined method `year' for nil:NilClass
https://bugs.ruby-lang.org/issues/10758#change-51209

* Author: Rohan Daxini
* Status: Third Party's Issue
* Priority: High
* Assignee: 
* ruby -v: 2.2.0
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
I am facing this error only in Ruby 2.2.0 as I recently upgraded to latest Ruby 2.2.0

Here is the console log

2.2.0 :008 > Time.zone.parse("2014-12-29 20:16:32 -0400")
NoMethodError: undefined method `year' for nil:NilClass
	from /.rvm/gems/ruby-2.2.0/gems/activesupport-3.2.18/lib/active_support/values/time_zone.rb:275:in `parse'
	from (irb):8
	from /.rvm/gems/ruby-2.2.0/gems/railties-3.2.18/lib/rails/commands/console.rb:47:in `start'
	from /.rvm/gems/ruby-2.2.0/gems/railties-3.2.18/lib/rails/commands/console.rb:8:in `start'
	from /.rvm/gems/ruby-2.2.0/gems/railties-3.2.18/lib/rails/commands.rb:41:in `<top (required)>'


Whereas same works fine in Ruby 2.1.2
2.1.2 :001 > Time.zone.parse("2014-12-29 20:16:32 -0400")
 => Tue, 30 Dec 2014 00:16:32 UTC +00:00

Am I doing something wrong here? Do I need to use any other gem to make this work. Some 700 specs fail for my project after upgrading to Ruby 2.2.0 due to this undefined method 'year' errors.

Would highly appreciate your immediate help in this regard. Thanks in advance.



-- 
https://bugs.ruby-lang.org/