Class: Rufus::Lua::Function

Inherits:
Ref
  • Object
show all
Defined in:
lib/rufus/lua/objects.rb

Overview

A Lua function.

require 'rufus/lua'

s = Rufus::Lua::State.new

f = s.eval(%{
  return function (x)
    return 2 * x
  end
})

f.call(2) # => 4.0

Constant Summary

Constants included from StateMixin

StateMixin::LUA_ENVIRONINDEX, StateMixin::LUA_GCCOLLECT, StateMixin::LUA_GCCOUNT, StateMixin::LUA_GCCOUNTB, StateMixin::LUA_GCRESTART, StateMixin::LUA_GCSETPAUSE, StateMixin::LUA_GCSETSTEPMUL, StateMixin::LUA_GCSTEP, StateMixin::LUA_GCSTOP, StateMixin::LUA_GLOBALSINDEX, StateMixin::LUA_MULTRET, StateMixin::LUA_NOREF, StateMixin::LUA_REFNIL, StateMixin::LUA_REGISTRYINDEX, StateMixin::SIMPLE_TYPES, StateMixin::TBOOLEAN, StateMixin::TFUNCTION, StateMixin::TLIGHTUSERDATA, StateMixin::TNIL, StateMixin::TNONE, StateMixin::TNUMBER, StateMixin::TSTRING, StateMixin::TTABLE, StateMixin::TTHREAD, StateMixin::TUSERDATA

Instance Attribute Summary

Attributes inherited from Ref

#ref

Instance Method Summary collapse

Methods inherited from Ref

#free, #initialize

Constructor Details

This class inherits a constructor from Rufus::Lua::Ref

Instance Method Details

#call(*args) ⇒ Object

Calls the Lua function.



90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/rufus/lua/objects.rb', line 90

def call(*args)

  bottom = stack_top

  load_onto_stack
    # load function on stack

  args.each { |arg| stack_push(arg) }
    # push arguments on stack

  pcall(bottom, args.length, nil, nil, nil)
end