Class: Value
Overview
BASE CLASS == Value … a wrapper for any ruby object
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(obj = nil) ⇒ Value
Returns a new instance of Value.
65
66
67
68
69
|
# File 'lib/primitive_wrapper.rb', line 65
def initialize(obj=nil)
obj = obj.prim_value
ensure_valid(obj)
@value = obj
end
|
Class Method Details
.freeze_raise? ⇒ Boolean
60
61
62
|
# File 'lib/primitive_wrapper.rb', line 60
def self.freeze_raise?
@freeze_raise
end
|
.ignore_on_freeze ⇒ Object
57
58
59
|
# File 'lib/primitive_wrapper.rb', line 57
def self.ignore_on_freeze
@freeze_raise = false
end
|
.raise_on_freeze ⇒ Object
54
55
56
|
# File 'lib/primitive_wrapper.rb', line 54
def self.raise_on_freeze
@freeze_raise = true
end
|
Instance Method Details
#!=(other) ⇒ Object
105
106
107
|
# File 'lib/primitive_wrapper.rb', line 105
def !=(other)
other.prim_value != @value
end
|
#==(other) ⇒ Object
101
102
103
|
# File 'lib/primitive_wrapper.rb', line 101
def ==(other)
other.prim_value == @value
end
|
#ensure_valid(obj, mess = "Incompatible type") ⇒ Object
71
72
73
74
75
|
# File 'lib/primitive_wrapper.rb', line 71
def ensure_valid(obj, mess = "Incompatible type")
unless valid_type(obj)
raise mess
end
end
|
never allow the wrapper to be frozen
77
78
79
|
# File 'lib/primitive_wrapper.rb', line 77
def freeze
raise "this object cannot be frozen" if self.class.freeze_raise?
end
|
121
122
123
124
|
# File 'lib/primitive_wrapper.rb', line 121
def inspect
str = @value.nil? ? "nil" : @value.inspect
"(#{self.class}==>#{str})"
end
|
#prim_value ⇒ Object
93
94
95
|
# File 'lib/primitive_wrapper.rb', line 93
def prim_value
@value
end
|
#replace(other) ⇒ Object
113
114
115
|
# File 'lib/primitive_wrapper.rb', line 113
def replace(other)
@value = other if valid_type(other)
end
|
117
118
119
|
# File 'lib/primitive_wrapper.rb', line 117
def to_s
@value.to_s
end
|
97
98
99
|
# File 'lib/primitive_wrapper.rb', line 97
def unwrap
@value
end
|
81
82
83
|
# File 'lib/primitive_wrapper.rb', line 81
def val
@value
end
|
#val=(dat) ⇒ Object
89
90
91
|
# File 'lib/primitive_wrapper.rb', line 89
def val=(dat)
replace(dat)
end
|
#valid_type(prm = nil) ⇒ Object
109
110
111
|
# File 'lib/primitive_wrapper.rb', line 109
def valid_type(prm=nil)
true
end
|
85
86
87
|
# File 'lib/primitive_wrapper.rb', line 85
def ~
@value
end
|