Class: Lisp::ClassObject
- Inherits:
-
Atom
show all
- Defined in:
- lib/rubylisp/class_object.rb
Instance Attribute Summary
Attributes inherited from Atom
#value
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Atom
#all?, #apply_to, #car, #cdr, #character?, #copy, #doc, #environment?, #eof_object?, #eq?, #equal?, #eqv?, #evaluate, #frame?, #function?, #length, #lisp_object?, #list?, #macro?, #negative?, #number?, #object?, #pair?, #port?, #positive?, #primitive?, #print_string, #quoted, #set!, #set_location, #special?, #string?, #symbol?, #vector?, #zero?
Constructor Details
Returns a new instance of ClassObject.
16
17
18
|
# File 'lib/rubylisp/class_object.rb', line 16
def initialize(c)
@value = c
end
|
Class Method Details
.new_instance ⇒ Object
6
7
8
|
# File 'lib/rubylisp/class_object.rb', line 6
def self.new_instance
self.new(@value.alloc.init)
end
|
.with_class(c) ⇒ Object
11
12
13
|
# File 'lib/rubylisp/class_object.rb', line 11
def self.with_class(c)
self.new(c)
end
|
Instance Method Details
26
27
28
|
# File 'lib/rubylisp/class_object.rb', line 26
def class?
true
end
|
51
52
53
|
# File 'lib/rubylisp/class_object.rb', line 51
def false?
@value == nil
end
|
#native_type ⇒ Object
36
37
38
|
# File 'lib/rubylisp/class_object.rb', line 36
def native_type
@value.class
end
|
41
42
43
|
# File 'lib/rubylisp/class_object.rb', line 41
def to_s
"<a class: #{@value.name}>"
end
|
46
47
48
|
# File 'lib/rubylisp/class_object.rb', line 46
def true?
@value != nil
end
|
31
32
33
|
# File 'lib/rubylisp/class_object.rb', line 31
def type
:class
end
|
#with_value(&block) ⇒ Object
21
22
23
|
# File 'lib/rubylisp/class_object.rb', line 21
def with_value(&block)
block.call(@value)
end
|