Class: XMLService::I_Meta
- Inherits:
-
Object
- Object
- XMLService::I_Meta
- Defined in:
- lib/xmlservice.rb
Overview
BASE classes
Direct Known Subclasses
Instance Method Summary collapse
- #add_user_accessor(name, value) ⇒ Object
- #instance_variable_forward_get(parent, pname, cname) ⇒ Object
- #instance_variable_forward_set(parent, pname, cname, cvalue) ⇒ Object
- #parse_diag_attr ⇒ Object
- #parse_output_attr ⇒ Object
- #parse_return_attr ⇒ Object
- #remove_user_accessor(name) ⇒ Object
- #shortCut(obj, parent) ⇒ Object
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_attr ⇒ Object
159 160 161 162 |
# File 'lib/xmlservice.rb', line 159 def parse_diag_attr() diag = false diag end |
#parse_output_attr ⇒ Object
155 156 |
# File 'lib/xmlservice.rb', line 155 def parse_output_attr() end |
#parse_return_attr ⇒ Object
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 |