Changeset 1982
- Timestamp:
- 09/23/07 23:54:45 (1 year ago)
- Files:
-
- trunk/lib/soap/mapping/literalregistry.rb (modified) (1 diff)
- trunk/lib/soap/mapping/mapping.rb (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/mapping/literalregistry.rb
r1972 r1982 321 321 define_xmlattr(obj) 322 322 attributes.each do |qname, class_name| 323 attr = node.extraattr[qname] 324 next if attr.nil? 325 child = attr 323 child = node.extraattr[qname] 324 next if child.nil? 326 325 if class_name 327 326 klass = Mapping.class_from_name(class_name) 328 327 if klass.include?(::SOAP::SOAPBasetype) 329 child = klass.to_data( attr)328 child = klass.to_data(child) 330 329 end 331 330 end trunk/lib/soap/mapping/mapping.rb
r1979 r1982 227 227 228 228 def self.class_from_name(name, lenient = false) 229 const = const_from_name(name, lenient) 229 unless lenient 230 const = const_from_name_nonlenient(name) 231 else 232 const = const_from_name(name, true) 233 end 230 234 if const.is_a?(::Class) 231 235 const … … 236 240 237 241 def self.module_from_name(name, lenient = false) 238 const = const_from_name(name, lenient) 242 unless lenient 243 const = const_from_name_nonlenient(name) 244 else 245 const = const_from_name(name, true) 246 end 239 247 if const.is_a?(::Module) 240 248 const 241 249 else 242 250 nil 251 end 252 end 253 254 def self.const_from_name_nonlenient(name) 255 if Thread.current[:SOAPMapping] 256 Thread.current[:SOAPMapping][:ConstFromName][name] ||= 257 const_from_name(name) 258 else 259 const_from_name(name) 243 260 end 244 261 end … … 572 589 data[:SafeMethodName] = {} 573 590 data[:SafeVarName] = {} 591 data[:ConstFromName] = {} 574 592 yield 575 593 end