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

#initialize(c) ⇒ ClassObject

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_instanceObject



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

#class?Boolean

Returns:



26
27
28
# File 'lib/rubylisp/class_object.rb', line 26

def class?
  true
end

#false?Boolean

Returns:



51
52
53
# File 'lib/rubylisp/class_object.rb', line 51

def false?
  @value == nil
end

#native_typeObject



36
37
38
# File 'lib/rubylisp/class_object.rb', line 36

def native_type
  @value.class
end

#to_sObject



41
42
43
# File 'lib/rubylisp/class_object.rb', line 41

def to_s
  "<a class: #{@value.name}>"
end

#true?Boolean

Returns:



46
47
48
# File 'lib/rubylisp/class_object.rb', line 46

def true?
  @value != nil
end

#typeObject



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