Class: NullObject

Inherits:
Object
  • Object
show all
Defined in:
lib/null_object.rb

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *_args, &_block) ⇒ Object



23
24
25
26
# File 'lib/null_object.rb', line 23

def method_missing(method, *_args, &_block)
  return false if method.to_s.index('?')
  NullObject.new unless method == :to_ary
end

Instance Method Details

#!=(value) ⇒ Object



58
59
60
# File 'lib/null_object.rb', line 58

def !=(value)
  !value.nil?
end

#<(_value) ⇒ Object



76
77
78
# File 'lib/null_object.rb', line 76

def <(_value)
  return false
end

#==(value) ⇒ Object



54
55
56
# File 'lib/null_object.rb', line 54

def ==(value)
  value.nil?
end

#>(_value) ⇒ Object



72
73
74
# File 'lib/null_object.rb', line 72

def >(_value)
  return false
end

#coerce(value) ⇒ Object



34
35
36
# File 'lib/null_object.rb', line 34

def coerce(value)
  [NullObject.new, value]
end

#empty?Boolean

Returns:

  • (Boolean)


80
81
82
# File 'lib/null_object.rb', line 80

def empty?
  true
end

#nil?Boolean

Returns:

  • (Boolean)


84
85
86
# File 'lib/null_object.rb', line 84

def nil?
  true
end

#null?Boolean

Returns:

  • (Boolean)


88
89
90
# File 'lib/null_object.rb', line 88

def null?
  true
end

#return_null_object(_value) ⇒ Object Also known as: +, -, *, /, |, ^, ~, &, [], <<, >>



38
39
40
# File 'lib/null_object.rb', line 38

def return_null_object(_value)
  NullObject.new
end

#to_boolObject Also known as: to_b



66
67
68
# File 'lib/null_object.rb', line 66

def to_bool
  false
end

#to_intObject



62
63
64
# File 'lib/null_object.rb', line 62

def to_int
  0
end

#to_sObject Also known as: to_str



28
29
30
# File 'lib/null_object.rb', line 28

def to_s
  ''
end