Class: Immunio::VM

Inherits:
Object
  • Object
show all
Defined in:
lib/immunio/vm.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(lua_vm, functions, utils, data, code_version, data_version) ⇒ VM

Returns a new instance of VM.



261
262
263
264
265
266
267
268
# File 'lib/immunio/vm.rb', line 261

def initialize(lua_vm, functions, utils, data, code_version, data_version)
  @lua_vm = lua_vm
  @functions = functions
  @utils = utils
  @data = data
  @code_version = code_version
  @data_version = data_version
end

Instance Attribute Details

#code_versionObject (readonly)

Returns the value of attribute code_version.



259
260
261
# File 'lib/immunio/vm.rb', line 259

def code_version
  @code_version
end

#data_versionObject (readonly)

Returns the value of attribute data_version.



259
260
261
# File 'lib/immunio/vm.rb', line 259

def data_version
  @data_version
end

Instance Method Details

#call(function_name, vars = nil) ⇒ Object



270
271
272
273
274
275
276
277
278
279
280
281
# File 'lib/immunio/vm.rb', line 270

def call(function_name, vars=nil)
  if has_function? function_name
    vars ||= {}
    expanded_vars = vars.merge(
        {
            "serverdata" => @data,
            "utils" => @utils
        })

    @lua_vm.call @functions[function_name], expanded_vars
  end
end

#create_object(object) ⇒ Object



291
292
293
# File 'lib/immunio/vm.rb', line 291

def create_object(object)
  @lua_vm.create_object(object)
end

#has_function?(function_name) ⇒ Boolean

Returns:

  • (Boolean)


287
288
289
# File 'lib/immunio/vm.rb', line 287

def has_function?(function_name)
  @functions.has_key? function_name
end

#unsafe_call_by_name(name, *args) ⇒ Object



283
284
285
# File 'lib/immunio/vm.rb', line 283

def unsafe_call_by_name(name, *args)
  @lua_vm.unsafe_call_by_name name, *args
end