class Halunke::Runtime::HNativeObject

Attributes

ruby_value[R]
runtime_class[R]
source_code_position[R]

Public Class Methods

new(runtime_class, ruby_value, source_code_position:) click to toggle source
# File lib/halunke/runtime/hnative_object.rb, line 10
def initialize(runtime_class, ruby_value, source_code_position:)
  @runtime_class = runtime_class
  @ruby_value = ruby_value
  @source_code_position = source_code_position
end

Public Instance Methods

inspect(context) click to toggle source
# File lib/halunke/runtime/hnative_object.rb, line 23
def inspect(context)
  receive_message(context, "inspect", []).ruby_value
end
receive_message(context, message_name, message_value, source_code_position: NullSourceCodePosition.new) click to toggle source
# File lib/halunke/runtime/hnative_object.rb, line 16
def receive_message(context, message_name, message_value, source_code_position: NullSourceCodePosition.new)
  m = @runtime_class.lookup(message_name)
  m.receive_message(context, "call", [HArray.create_instance([self].concat(message_value))])
rescue KeyError
  raise HUnknownMessage.new(self.inspect(context), message_name, @runtime_class.instance_methods.keys, source_code_position) if m.nil?
end