class Halunke::Runtime::HFunction
Public Class Methods
new(signature, fn)
click to toggle source
# File lib/halunke/runtime/hfunction.rb, line 6 def initialize(signature, fn) @signature = signature @fn = fn end
Public Instance Methods
inspect(_context)
click to toggle source
# File lib/halunke/runtime/hfunction.rb, line 24 def inspect(_context) "Function (#{@signature.length})" end
receive_message(parent_context, message_name, message_value, source_code_position: NullSourceCodePosition.new)
click to toggle source
# File lib/halunke/runtime/hfunction.rb, line 11 def receive_message(parent_context, message_name, message_value, source_code_position: NullSourceCodePosition.new) raise HUnknownMessage.new(self.inspect(parent_context), message_name, ["call"], source_code_position) unless message_name == "call" context = parent_context.create_child args = message_value[0].ruby_value @signature.zip(args).each do |name, value| context[name.to_s] = value end @fn.call(context) end