class ItgApi

Attributes

silence_methods[R]

Public Class Methods

new(itg:nil) click to toggle source
# File lib/tdl/exlib/itegration.rb, line 144
def initialize(itg:nil)
    @itg = itg
end

Public Instance Methods

def_var_func(name) click to toggle source
# File lib/tdl/exlib/itegration.rb, line 190
def def_var_func(name)
    self.define_singleton_method(name) do
        instance_variable_get("@_#{name}")
    end
end
define_active_behavior(name,*args,&block) click to toggle source
# File lib/tdl/exlib/itegration.rb, line 203
def define_active_behavior(name,*args,&block)
    define_active_method(name,*args,&block)
end
define_active_method(name,*args,&block) click to toggle source
# File lib/tdl/exlib/itegration.rb, line 196
def define_active_method(name,*args,&block)
    define_singleton_method(name) do
        instance_variable_set("@_#{name}_as_",true)
        block.call(*args)
    end
end
define_silence_behavior(name,bind_module,*args,&block) click to toggle source
# File lib/tdl/exlib/itegration.rb, line 207
def define_silence_behavior(name,bind_module,*args,&block)
    before_gen_sv_module_of(bind_module) do
        unless instance_variable_get("@_#{name}_as_")
            block.call(bind_module,*args)
        end
    end
end
var(name,&block) click to toggle source
# File lib/tdl/exlib/itegration.rb, line 173
def var(name,&block)
    _var = instance_variable_get("@_#{name}")

    if name.to_s.eql? "req_inf"
        puts "#{self.to_s} IN IGT #{_var}"
        puts singleton_methods
    end

    if _var
        return _var
    else
        instance_variable_set("@_#{name}",block.call(self))
        def_var_func(name)
        instance_variable_get("@_#{name}")
    end
end

Private Instance Methods

before_gen_sv_module_of(bind_module,&block) click to toggle source
# File lib/tdl/exlib/itegration.rb, line 150
def before_gen_sv_module_of(bind_module,&block)
    if bind_module.respond_to?(:igt_apis_proc)
        bind_module.igt_apis_proc << block
    else
        bind_module.instance_variable_set("@_igt_apis_",[block])

        bind_module.define_singleton_method("igt_apis_proc") do
            self.instance_variable_get("@_igt_apis_")
        end

        old_gen_sv_module = bind_module.method(:gen_sv_module)

        bind_module.define_singleton_method(:gen_sv_module) do
            self.igt_apis_proc.each do |ias|
                ias.call
            end
            old_gen_sv_module.call
        end
    end
end