Sha256: 923d44482c6211bdddbfb86be2d35a994c4c912bdc5097d5b5f4a2ec86c2f067

Contents?: true

Size: 1.07 KB

Versions: 195

Compression:

Stored size: 1.07 KB

Contents

require 'active_support/deprecation'

# Extensions to +nil+ which allow for more helpful error messages for people who
# are new to Rails.
#
# NilClass#id exists in Ruby 1.8 (though it is deprecated). Since +id+ is a fundamental
# method of Active Record models NilClass#id is redefined as well to raise a RuntimeError
# and warn the user. She probably wanted a model database identifier and the 4
# returned by the original method could result in obscure bugs.
#
# The flag <tt>config.whiny_nils</tt> determines whether this feature is enabled.
# By default it is on in development and test modes, and it is off in production
# mode.
class NilClass
  def self.add_whiner(klass)
    ActiveSupport::Deprecation.warn "NilClass.add_whiner is deprecated and this functionality is " \
      "removed from Rails versions as it affects Ruby 1.9 performance.", caller
  end

  # Raises a RuntimeError when you attempt to call +id+ on +nil+.
  def id
    raise RuntimeError, "Called id for nil, which would mistakenly be #{object_id} -- if you really wanted the id of nil, use object_id", caller
  end
end

Version data entries

195 entries across 156 versions & 24 rubygems

Version Path
active_mailer-0.0.3 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.12/lib/active_support/whiny_nil.rb
activesupport-3.2.12 lib/active_support/whiny_nil.rb
graphael-on-rails-0.5.1 vendor/bundle/gems/activesupport-3.2.11/lib/active_support/whiny_nil.rb
graphael-on-rails-0.0.1 vendor/bundle/gems/activesupport-3.2.11/lib/active_support/whiny_nil.rb
challah-0.9.1.beta.3 vendor/bundle/gems/activesupport-3.2.11/lib/active_support/whiny_nil.rb
devise_sociable-0.1.0 vendor/bundle/gems/activesupport-3.2.11/lib/active_support/whiny_nil.rb
backbone-queryparams-rails-0.0.1 vendor/bundle/gems/activesupport-3.2.11/lib/active_support/whiny_nil.rb
railscast-assets-0.0.2 vendor/bundle/gems/backbone-forms-on-rails-0.10.0/vendor/bundle/gems/activesupport-3.2.11/lib/active_support/whiny_nil.rb
railscast-assets-0.0.2 vendor/bundle/gems/activesupport-3.2.11/lib/active_support/whiny_nil.rb
backbone-forms-on-rails-0.10.0 vendor/bundle/gems/backbone-forms-on-rails-0.10.0/vendor/bundle/gems/activesupport-3.2.11/lib/active_support/whiny_nil.rb
backbone-forms-on-rails-0.10.0 vendor/bundle/gems/activesupport-3.2.11/lib/active_support/whiny_nil.rb
backbone-deep-rails-0.0.2 vendor/bundle/gems/activesupport-3.2.11/lib/active_support/whiny_nil.rb
backbone-deep-rails-0.0.1 vendor/bundle/gems/activesupport-3.2.11/lib/active_support/whiny_nil.rb
challah-0.9.1.beta vendor/bundle/gems/activesupport-3.2.11/lib/active_support/whiny_nil.rb
activesupport-3.2.11 lib/active_support/whiny_nil.rb
sunrise-cms-0.5.0.rc1 vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.10/lib/active_support/whiny_nil.rb
challah-0.9.0 vendor/bundle/gems/activesupport-3.2.9/lib/active_support/whiny_nil.rb
activesupport-3.2.10 lib/active_support/whiny_nil.rb
classiccms-0.6.9 vendor/bundle/gems/activesupport-3.2.3/lib/active_support/whiny_nil.rb
jquery_regex-0.0.3 vendor/bundle/gems/jquery_regex-0.0.1/vendor/bundle/gems/activesupport-3.2.9/lib/active_support/whiny_nil.rb