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.
133
134
135
136
137
|
# File 'lib/primitive_wrapper.rb', line 133
def initialize(obj=nil)
obj = obj.prim_value
ensure_valid(obj)
@value = obj
end
|
Class Method Details
.freeze_raise? ⇒ Boolean
128
129
130
|
# File 'lib/primitive_wrapper.rb', line 128
def self.freeze_raise?
@freeze_raise
end
|
.ignore_on_freeze ⇒ Object
125
126
127
|
# File 'lib/primitive_wrapper.rb', line 125
def self.ignore_on_freeze
@freeze_raise = false
end
|
.raise_on_freeze ⇒ Object
122
123
124
|
# File 'lib/primitive_wrapper.rb', line 122
def self.raise_on_freeze
@freeze_raise = true
end
|
Instance Method Details
#!=(other) ⇒ Object
185
186
187
|
# File 'lib/primitive_wrapper.rb', line 185
def !=(other)
other.prim_value != @value
end
|
#==(other) ⇒ Object
181
182
183
|
# File 'lib/primitive_wrapper.rb', line 181
def ==(other)
other.prim_value == @value
end
|
#ensure_valid(obj, mess = "Incompatible type") ⇒ Object
151
152
153
154
155
|
# File 'lib/primitive_wrapper.rb', line 151
def ensure_valid(obj, mess = "Incompatible type")
unless valid_type(obj)
raise mess
end
end
|
never allow the wrapper to be frozen
157
158
159
|
# File 'lib/primitive_wrapper.rb', line 157
def freeze
raise "this object cannot be frozen" if self.class.freeze_raise?
end
|
201
202
203
204
|
# File 'lib/primitive_wrapper.rb', line 201
def inspect
str = @value.nil? ? "nil" : @value.inspect
"(#{self.class}==>#{str})"
end
|
#prim_value ⇒ Object
173
174
175
|
# File 'lib/primitive_wrapper.rb', line 173
def prim_value
@value
end
|
#replace(other) ⇒ Object
193
194
195
|
# File 'lib/primitive_wrapper.rb', line 193
def replace(other)
@value = other.prim_value if valid_type(other)
end
|
197
198
199
|
# File 'lib/primitive_wrapper.rb', line 197
def to_s
@value.to_s
end
|
#to_wrapper ⇒ Object
139
140
141
|
# File 'lib/primitive_wrapper.rb', line 139
def to_wrapper
self
end
|
#type_of?(cls) ⇒ Boolean
145
146
147
148
149
|
# File 'lib/primitive_wrapper.rb', line 145
def type_of?(cls)
return true if @value.kind_of? cls
return true if self.kind_of? cls
false
end
|
177
178
179
|
# File 'lib/primitive_wrapper.rb', line 177
def unwrap
@value
end
|
161
162
163
|
# File 'lib/primitive_wrapper.rb', line 161
def val
@value
end
|
#val=(dat) ⇒ Object
169
170
171
|
# File 'lib/primitive_wrapper.rb', line 169
def val=(dat)
replace(dat)
end
|
#valid_type(prm = nil) ⇒ Object
189
190
191
|
# File 'lib/primitive_wrapper.rb', line 189
def valid_type(prm=nil)
true
end
|
#wrapped? ⇒ Boolean
142
143
144
|
# File 'lib/primitive_wrapper.rb', line 142
def wrapped?
true
end
|
165
166
167
|
# File 'lib/primitive_wrapper.rb', line 165
def ~
@value
end
|