Class: Null
- Inherits:
-
Object
show all
- Defined in:
- lib/functional-light-service/functional/null.rb
Overview
The simplest NullObject there can be
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(methods) ⇒ Null
Returns a new instance of Null.
48
49
50
|
# File 'lib/functional-light-service/functional/null.rb', line 48
def initialize(methods)
@methods = methods
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args) ⇒ Object
61
62
63
64
65
|
# File 'lib/functional-light-service/functional/null.rb', line 61
def method_missing(m, *args)
return self if respond_to_missing?(m)
super
end
|
Class Method Details
.==(other) ⇒ Object
42
43
44
|
# File 'lib/functional-light-service/functional/null.rb', line 42
def ==(other)
other.respond_to?(:null?) && other.null?
end
|
18
19
20
21
22
23
24
|
# File 'lib/functional-light-service/functional/null.rb', line 18
def instance
FunctionalLightService::Deprecations.warn(
"Maybe()/Null are deprecated and will be removed in a future release; " \
"use FunctionalLightService::Option (Some/None) instead"
)
@instance ||= new([])
end
|
.method_missing(m, *args) ⇒ Object
6
7
8
9
10
11
12
|
# File 'lib/functional-light-service/functional/null.rb', line 6
def method_missing(m, *args)
if m == :new
super
else
Null.instance
end
end
|
.mimic(klas) ⇒ Object
34
35
36
37
38
39
40
|
# File 'lib/functional-light-service/functional/null.rb', line 34
def mimic(klas)
FunctionalLightService::Deprecations.warn(
"Maybe()/Null are deprecated and will be removed in a future release; " \
"use FunctionalLightService::Option (Some/None) instead"
)
new(klas.instance_methods(false))
end
|
.null? ⇒ Boolean
26
27
28
|
# File 'lib/functional-light-service/functional/null.rb', line 26
def null?
true
end
|
.respond_to_missing?(m, _include_all = false) ⇒ Boolean
14
15
16
|
# File 'lib/functional-light-service/functional/null.rb', line 14
def respond_to_missing?(m, _include_all = false)
m != :new || super
end
|
.some? ⇒ Boolean
30
31
32
|
# File 'lib/functional-light-service/functional/null.rb', line 30
def some?
false
end
|
Instance Method Details
#==(other) ⇒ Object
85
86
87
|
# File 'lib/functional-light-service/functional/null.rb', line 85
def ==(other)
other.respond_to?(:null?) && other.null?
end
|
81
82
83
|
# File 'lib/functional-light-service/functional/null.rb', line 81
def inspect
'Null'
end
|
#null? ⇒ Boolean
67
68
69
|
# File 'lib/functional-light-service/functional/null.rb', line 67
def null?
true
end
|
#respond_to_missing?(m, _include_all = false) ⇒ Boolean
Convenzione Ruby: si estende respond_to_missing?, mai respond_to?
(il vecchio override aveva anche la firma sbagliata: mancava include_all)
77
78
79
|
# File 'lib/functional-light-service/functional/null.rb', line 77
def respond_to_missing?(m, _include_all = false)
@methods.empty? || @methods.include?(m) || super
end
|
#some? ⇒ Boolean
71
72
73
|
# File 'lib/functional-light-service/functional/null.rb', line 71
def some?
false
end
|
57
58
59
|
# File 'lib/functional-light-service/functional/null.rb', line 57
def to_ary
[]
end
|
53
54
55
|
# File 'lib/functional-light-service/functional/null.rb', line 53
def to_str
''
end
|