Class: Value

Inherits:
Object show all
Defined in:
lib/primitive_wrapper.rb

Overview

BASE CLASS == Value … a wrapper for any ruby object

Direct Known Subclasses

Bool, Property, SymbolW, ValueAdd

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

Returns:

  • (Boolean)


145
146
147
# File 'lib/primitive_wrapper.rb', line 145

def self.freeze_raise?
  @freeze_raise
end

.ignore_on_freezeObject



142
143
144
# File 'lib/primitive_wrapper.rb', line 142

def self.ignore_on_freeze
 @freeze_raise = false
end

.raise_on_freezeObject



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

#freezeObject

never allow the wrapper to be frozen



180
181
182
# File 'lib/primitive_wrapper.rb', line 180

def freeze  # never allow the wrapper to be frozen
  raise "this object cannot be frozen" if self.class.freeze_raise?
end

#inspectObject



224
225
226
227
# File 'lib/primitive_wrapper.rb', line 224

def inspect
  str = @value.nil? ? "nil" : @value.inspect
  "(#{self.class}==>#{str})"
end

#prim_valueObject



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

#to_sObject



220
221
222
# File 'lib/primitive_wrapper.rb', line 220

def to_s
  @value.to_s
end

#to_wrapperObject



156
157
158
# File 'lib/primitive_wrapper.rb', line 156

def to_wrapper
  self
end

#typeObject



170
171
172
# File 'lib/primitive_wrapper.rb', line 170

def type
  @value.class
end

#type_of?(cls) ⇒ Boolean

Returns:

  • (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

#unwrapObject



200
201
202
# File 'lib/primitive_wrapper.rb', line 200

def unwrap
  @value
end

#valObject



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

Returns:

  • (Boolean)


160
161
162
# File 'lib/primitive_wrapper.rb', line 160

def wrapped?
  true
end

#~Object



188
189
190
# File 'lib/primitive_wrapper.rb', line 188

def ~
  @value
end