class ElementClassVars

Attributes

class_name[R]
condition_expression[RW]
draw_nc[RW]
draw_stack[RW]
expression[RW]
expression_def[RW]
expression_record[RW]
inst_stack[RW]
name[R]
ports[RW]
pre_inst[RW]
pre_inst_stack[RW]

Public Class Methods

new(class_name) click to toggle source
# File lib/tdl/exlib/element_class_vars.rb, line 9
def initialize(class_name)
    @name = class_name.to_s
    @class_name = class_name
    @id = 1
    @pre_inst = []
    @pre_inst_stack = []
    @inst_stack = []
    @draw_stack = []
    @draw_nc = []
    @ports = []
    @nc = nil
    @nc_id = 0

    @expression = []
    @expression_def = []
    @expression_record = []
    @condition_expression = []

    @expression_record.define_singleton_method("[]") do |key|
        if @expression_record.include? key
            @expression_record << key
            true
        else
            false
        end
    end
end

Public Instance Methods

id() click to toggle source
# File lib/tdl/exlib/element_class_vars.rb, line 71
def id
    tmp = @id
    @id = @id + 1
    tmp
end
nc() click to toggle source
# File lib/tdl/exlib/element_class_vars.rb, line 38
def nc
    unless @nc
        @nc = @class_name.nc_create

        # @nc.define_singleton_method(:signal) do
        #     nid = @nc_id
        #     @nc_id += 1
        #     nid
        # end
        @nc.instance_variable_set("@_id",0)

        class << @nc

            def signal
                @_id ||= 0
                nid = @_id
                @_id += 1
                nid.to_s
            end

            def peak_signal
                @_id ||= 0
                nid = @_id
                nid.to_s
            end

        end
        @nc
    else
        @nc
    end
end