Class: LazyFuncGenerator

Inherits:
Object
  • Object
show all
Includes:
LazyFuncGeneratorSettingUtility
Defined in:
lib/statsailr/block_to_r/sts_lazy_func_gen.rb

Constant Summary collapse

SETTING_FOR_PREFIX =
"setting_for_"

Instance Method Summary collapse

Methods included from LazyFuncGeneratorSettingUtility

#is_param_name?, #is_r_obj?, #is_result_name?, #is_result_name_array?, #one_from, #param, #previous_inst_name, #previous_or, #r_obj, #read_as_formula, #read_as_intvec, #read_as_numvec, #read_as_one_str, #read_as_realvec, #read_as_strvec, #read_as_symbol, #read_named_args_as_named_strvec, #read_symbols_as_strvec, #read_symbols_or_functions_as_strvec, #result

Instance Method Details

#gen_lazy_func(command, proc_stmt, param_manager) ⇒ Object



320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
# File 'lib/statsailr/block_to_r/sts_lazy_func_gen.rb', line 320

def gen_lazy_func( command, proc_stmt , param_manager)

  inst = proc_stmt[0]
  main_arg = proc_stmt[1]
  opt_args = proc_stmt[2]

  underscored_inst = inst.gsub(/\./, "_")

  setting = LazyFuncGeneratorSetting.new()
  if respond_to?( SETTING_FOR_PREFIX + underscored_inst )
    send( SETTING_FOR_PREFIX + underscored_inst , setting )
  else
    raise "method for this instruction(#{inst})" "is not defined: " + SETTING_FOR_PREFIX + underscored_inst
  end
  libname = setting.libname 
  envname = setting.envname
  func_name = setting.func_name
  func_hash = setting.create_func_arg_hash( main_arg, opt_args )
  result_name = inst

  store_result = setting.store_result
  print_opt = setting.print_opt
  plot_opt = setting.plot_opt

  if libname.nil? || libname == ""
    libname = nil
  end
  if envname.nil? || libname == ""
    envname = nil
  end

  if ! libname.nil?
    lazy_func = RBridge::create_ns_lazy_function( libname, func_name, func_hash, param_manager)
  else
    if ! envname.nil?
      lazy_func = RBridge::create_env_lazy_function( envname, func_name, func_hash, param_manager)
    else
      lazy_func = RBridge::create_lazy_function( func_name, func_hash, param_manager)
    end
  end

  return [ lazy_func, print_opt, plot_opt, store_result, result_name  ]
end