class RubimCode::UserClass
Наследник всех пользовательских классов
Public Class Methods
add_var_array(user_class_name, value)
click to toggle source
# File lib/rubimc.rb, line 179 def self.add_var_array(user_class_name, value) @@var_array[user_class_name.to_sym] ||= [] @@var_array[user_class_name.to_sym] << value end
generate_struct()
click to toggle source
генерация класса (typedef struct + методы)
# File lib/rubimc.rb, line 185 def self.generate_struct RubimCode.pout "typedef struct {" RubimCode.level +=1 @@var_array[self.to_s.to_sym].each do |var| RubimCode.pout "#{var.type} #{var.name};" end RubimCode.pout "} #{self.to_s};" RubimCode.level -=1 public_instance_methods(false).each do |method_name| tmp_str = "" pout_destination = tmp_str return_var = self.new("(*params)").send(method_name).to_rubim pout_destination = :default return_var.type = "void" if return_var.type.nil? # if type is not set RubimCode.pout "#{return_var.type} #{method_name.to_s} (#{self.to_s} *params) {" RubimCode.level += 1 self.new("(*params)").send(method_name) RubimCode.pout "return #{return_var};" RubimCode.pout "}" RubimCode.level -= 1 end end
redefine_users_methods()
click to toggle source
# File lib/rubimc.rb, line 210 def self.redefine_users_methods public_instance_methods(false).each do |method_name| define_method(method_name) do "#{__method__}(&#{self.name})" end end end