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.
150
151
152
153
154
|
# File 'lib/primitive_wrapper.rb', line 150
def initialize(obj=nil)
obj = obj.prim_value
ensure_valid(obj)
@value = obj
end
|
Class Method Details
.freeze_raise? ⇒ Boolean
145
146
147
|
# File 'lib/primitive_wrapper.rb', line 145
def self.freeze_raise?
@freeze_raise
end
|
.ignore_on_freeze ⇒ Object
142
143
144
|
# File 'lib/primitive_wrapper.rb', line 142
def self.ignore_on_freeze
@freeze_raise = false
end
|
.raise_on_freeze ⇒ Object
139
140
141
|
# File 'lib/primitive_wrapper.rb', line 139
def self.raise_on_freeze
@freeze_raise = true
end
|
Instance Method Details
#!=(other) ⇒ Object
208
209
210
|
# File 'lib/primitive_wrapper.rb', line 208
def !=(other)
other.prim_value != @value
end
|
#==(other) ⇒ Object
204
205
206
|
# File 'lib/primitive_wrapper.rb', line 204
def ==(other)
other.prim_value == @value
end
|
#ensure_valid(obj, mess = "Incompatible type") ⇒ Object
174
175
176
177
178
|
# File 'lib/primitive_wrapper.rb', line 174
def ensure_valid(obj, mess = "Incompatible type")
unless valid_type(obj)
raise mess
end
end
|
never allow the wrapper to be frozen
180
181
182
|
# File 'lib/primitive_wrapper.rb', line 180
def freeze
raise "this object cannot be frozen" if self.class.freeze_raise?
end
|
224
225
226
227
|
# File 'lib/primitive_wrapper.rb', line 224
def inspect
str = @value.nil? ? "nil" : @value.inspect
"(#{self.class}==>#{str})"
end
|
#prim_value ⇒ Object
196
197
198
|
# File 'lib/primitive_wrapper.rb', line 196
def prim_value
@value
end
|
#replace(other) ⇒ Object
216
217
218
|
# File 'lib/primitive_wrapper.rb', line 216
def replace(other)
@value = other.prim_value if valid_type(other)
end
|
220
221
222
|
# File 'lib/primitive_wrapper.rb', line 220
def to_s
@value.to_s
end
|
#to_wrapper ⇒ Object
156
157
158
|
# File 'lib/primitive_wrapper.rb', line 156
def to_wrapper
self
end
|
170
171
172
|
# File 'lib/primitive_wrapper.rb', line 170
def type
@value.class
end
|
#type_of?(cls) ⇒ Boolean
164
165
166
167
168
|
# File 'lib/primitive_wrapper.rb', line 164
def type_of?(cls)
return true if @value.kind_of? cls
return true if self.kind_of? cls
false
end
|
200
201
202
|
# File 'lib/primitive_wrapper.rb', line 200
def unwrap
@value
end
|
184
185
186
|
# File 'lib/primitive_wrapper.rb', line 184
def val
@value
end
|
#val=(dat) ⇒ Object
192
193
194
|
# File 'lib/primitive_wrapper.rb', line 192
def val=(dat)
replace(dat)
end
|
#valid_type(prm = nil) ⇒ Object
212
213
214
|
# File 'lib/primitive_wrapper.rb', line 212
def valid_type(prm=nil)
true
end
|
#wrapped? ⇒ Boolean
160
161
162
|
# File 'lib/primitive_wrapper.rb', line 160
def wrapped?
true
end
|
188
189
190
|
# File 'lib/primitive_wrapper.rb', line 188
def ~
@value
end
|