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.



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

Returns:

  • (Boolean)


60
61
62
# File 'lib/primitive_wrapper.rb', line 60

def self.freeze_raise?
  @freeze_raise
end

.ignore_on_freezeObject



57
58
59
# File 'lib/primitive_wrapper.rb', line 57

def self.ignore_on_freeze
 @freeze_raise = false
end

.raise_on_freezeObject



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

#freezeObject

never allow the wrapper to be frozen



77
78
79
# File 'lib/primitive_wrapper.rb', line 77

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

#inspectObject



121
122
123
124
# File 'lib/primitive_wrapper.rb', line 121

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

#prim_valueObject



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

#to_sObject



117
118
119
# File 'lib/primitive_wrapper.rb', line 117

def to_s
  @value.to_s
end

#unwrapObject



97
98
99
# File 'lib/primitive_wrapper.rb', line 97

def unwrap
  @value
end

#valObject



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

#~Object



85
86
87
# File 'lib/primitive_wrapper.rb', line 85

def ~
  @value
end