Class: Lisp::FfiStatic

Inherits:
FfiSend show all
Defined in:
lib/rubylisp/ffi_static.rb

Instance Attribute Summary

Attributes inherited from Atom

#value

Instance Method Summary collapse

Methods inherited from FfiSend

#apply_to_without_evaluating, #convert_value, #primitive?, #process_arg, #type

Methods inherited from Atom

#all?, #car, #cdr, #character?, #class?, #copy, #doc, #environment?, #eof_object?, #eq?, #equal?, #eqv?, #evaluate, #false?, #frame?, #function?, #length, #lisp_object?, #list?, #macro?, #negative?, #number?, #object?, #pair?, #port?, #positive?, #primitive?, #print_string, #quoted, #set!, #set_location, #special?, #string?, #symbol?, #true?, #type, #vector?, #zero?

Constructor Details

#initialize(name) ⇒ FfiStatic

Returns a new instance of FfiStatic.



5
6
7
8
# File 'lib/rubylisp/ffi_static.rb', line 5

def initialize(name)
  @class_name, @value = name.split('/')
  @klass = NativeObject.with_value(Object.const_get(@class_name))
end

Instance Method Details

#apply_to(args, env) ⇒ Object



10
11
12
13
# File 'lib/rubylisp/ffi_static.rb', line 10

def apply_to(args, env)
  a = [@klass] + args.to_a
  super(a, env)
end

#to_sObject



15
16
17
# File 'lib/rubylisp/ffi_static.rb', line 15

def to_s
  "#{@class_name}/#{@value}"
end