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.



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

Returns:



128
129
130
# File 'lib/primitive_wrapper.rb', line 128

def self.freeze_raise?
  @freeze_raise
end

.ignore_on_freezeObject



125
126
127
# File 'lib/primitive_wrapper.rb', line 125

def self.ignore_on_freeze
 @freeze_raise = false
end

.raise_on_freezeObject



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

#freezeObject

never allow the wrapper to be frozen



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

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

#inspectObject



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

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

#prim_valueObject



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

#to_sObject



197
198
199
# File 'lib/primitive_wrapper.rb', line 197

def to_s
  @value.to_s
end

#to_wrapperObject



139
140
141
# File 'lib/primitive_wrapper.rb', line 139

def to_wrapper
  self
end

#type_of?(cls) ⇒ Boolean

Returns:



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

#unwrapObject



177
178
179
# File 'lib/primitive_wrapper.rb', line 177

def unwrap
  @value
end

#valObject



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

Returns:



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

def wrapped?
  true
end

#~Object



165
166
167
# File 'lib/primitive_wrapper.rb', line 165

def ~
  @value
end