Class: XMLService::I_Meta

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

Overview


BASE classes


Direct Known Subclasses

I_Base, I_BaseMulti, I_CALL, I_Data, I_DiagBase

Instance Method Summary collapse

Instance Method Details

#add_user_accessor(name, value) ⇒ Object



98
99
100
101
102
103
104
105
106
107
108
# File 'lib/xmlservice.rb', line 98

def add_user_accessor(name, value)
  if !(defined?(name)).nil?
    self.class.send(:attr_accessor, name)
  end
  instance_variable_set("@#{name}", value)
  name_var = "xml_user_accessor"
  if !(defined?(name_var)).nil?
    self.class.send(:attr_accessor, name_var)
  end
  instance_variable_set("@#{name_var}", name)
end

#instance_variable_forward_get(parent, pname, cname) ⇒ Object



118
119
120
121
122
123
124
# File 'lib/xmlservice.rb', line 118

def instance_variable_forward_get(parent,pname,cname)
  if !parent.class.respond_to?("#{cname}")
    parent.class.instance_eval do
      define_method("#{cname}") { eval "@#{pname}.#{cname}" }
    end
  end
end

#instance_variable_forward_set(parent, pname, cname, cvalue) ⇒ Object



125
126
127
128
129
130
131
# File 'lib/xmlservice.rb', line 125

def instance_variable_forward_set(parent,pname,cname,cvalue)
  if !parent.class.respond_to?("#{cname}=")
    parent.class.instance_eval do
      define_method("#{cname}=") {|value| eval "@#{pname}.#{cname} = value" }
    end
  end
end

#parse_diag_attrObject



159
160
161
162
# File 'lib/xmlservice.rb', line 159

def parse_diag_attr()
  diag = false
 diag
end

#parse_output_attrObject



155
156
# File 'lib/xmlservice.rb', line 155

def parse_output_attr()
end

#parse_return_attrObject



157
158
# File 'lib/xmlservice.rb', line 157

def parse_return_attr()
end

#remove_user_accessor(name) ⇒ Object



109
110
111
112
113
114
115
116
117
# File 'lib/xmlservice.rb', line 109

def remove_user_accessor(name)
  if self.instance_variable_defined?("@#{name}")
    self.remove_instance_variable("@#{name}")
  end
  name_var = "user_accessor"
  if self.instance_variable_defined?("@#{name_var}")
    self.remove_instance_variable("@#{name_var}")
  end
end

#shortCut(obj, parent) ⇒ Object



132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/xmlservice.rb', line 132

def shortCut(obj,parent)
  if parent.kind_of? I_Parameter or parent.kind_of? I_Return
    child = parent.value
    if child.kind_of? I_BaseMulti
      obj.add_user_accessor(child.var,child)
    elsif child.kind_of? I_Base
      obj.instance_variable_forward_get(obj,parent.var,child.var)
      obj.instance_variable_forward_set(obj,parent.var,child.var,child.value)
      obj.instance_variable_forward_get(parent,parent.var,child.var)
      obj.instance_variable_forward_set(parent,parent.var,child.var,child.value)
    elsif child.instance_of? Array
      child.each do |v|
        if v.kind_of? I_BaseMulti
          t = eval "obj.#{parent.var}.#{v.var}"
          obj.add_user_accessor(v.var,t)
        elsif parent.kind_of? I_Return and child.count == 1
          t = eval "obj.#{parent.var}.#{v.var}"
          obj.add_user_accessor(v.var,t)
        end
      end
    end
  end
end