Class: NilClass

Inherits:
Object show all
Defined in:
lib/active_support/whiny_nil.rb,
lib/active_support/json/encoding.rb,
lib/active_support/core_ext/object/try.rb,
lib/active_support/core_ext/object/blank.rb,
lib/active_support/core_ext/object/to_param.rb,
lib/active_support/core_ext/object/duplicable.rb

Overview

:nodoc:

Constant Summary collapse

METHOD_CLASS_MAP =
Hash.new
AS_JSON =
ActiveSupport::JSON::Variable.new('null').freeze

Class Method Summary collapse

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object (private)


44
45
46
47
48
49
50
# File 'lib/active_support/whiny_nil.rb', line 44

def method_missing(method, *args, &block)
  if klass = METHOD_CLASS_MAP[method]
    raise_nil_warning_for klass, method, caller
  else
    super
  end
end

Class Method Details

.add_whiner(klass) ⇒ Object


30
31
32
33
34
# File 'lib/active_support/whiny_nil.rb', line 30

def self.add_whiner(klass)
  methods = klass.public_instance_methods - public_instance_methods
  class_name = klass.name
  methods.each { |method| METHOD_CLASS_MAP[method.to_sym] = class_name }
end

Instance Method Details

#as_json(options = nil) ⇒ Object

:nodoc:


151
# File 'lib/active_support/json/encoding.rb', line 151

def as_json(options = nil) AS_JSON end

#blank?Boolean

Returns:

  • (Boolean)

41
42
43
# File 'lib/active_support/core_ext/object/blank.rb', line 41

def blank?
  true
end

#duplicable?Boolean

Returns:

  • (Boolean)

26
27
28
# File 'lib/active_support/core_ext/object/duplicable.rb', line 26

def duplicable?
  false
end

#idObject

Raises a RuntimeError when you attempt to call id on nil.

Raises:

  • (RuntimeError)

39
40
41
# File 'lib/active_support/whiny_nil.rb', line 39

def id
  raise RuntimeError, "Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id", caller
end

#to_paramObject


11
12
13
# File 'lib/active_support/core_ext/object/to_param.rb', line 11

def to_param
  self
end

#try(*args) ⇒ Object


33
34
35
# File 'lib/active_support/core_ext/object/try.rb', line 33

def try(*args)
  nil
end