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
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
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
151
|
# File 'lib/active_support/json/encoding.rb', line 151
def as_json(options = nil) AS_JSON end
|
#blank? ⇒ Boolean
41
42
43
|
# File 'lib/active_support/core_ext/object/blank.rb', line 41
def blank?
true
end
|
#duplicable? ⇒ Boolean
26
27
28
|
# File 'lib/active_support/core_ext/object/duplicable.rb', line 26
def duplicable?
false
end
|
Raises a RuntimeError when you attempt to call id
on nil
.
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
|
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
|