Class: SOAP::Mapping::Object
- Includes:
- SOAP::Marshallable
- Defined in:
- lib/action_web_service/soap/mapping/registry.rb,
lib/action_web_service/protocol/soap_protocol/marshaler.rb
Overview
hack to improve the .Net interoperability
Instance Method Summary collapse
- #[](qname) ⇒ Object
- #[]=(qname, value) ⇒ Object
- #__add_xmlele_value(qname, value) ⇒ Object
- #__xmlattr ⇒ Object
- #__xmlele ⇒ Object
- #each_pair ⇒ Object
-
#initialize ⇒ Object
constructor
A new instance of Object.
- #inspect ⇒ Object
Constructor Details
#initialize ⇒ Object
Returns a new instance of Object.
65 66 67 68 69 |
# File 'lib/action_web_service/soap/mapping/registry.rb', line 65 def initialize @__xmlele_type = {} @__xmlele = [] @__xmlattr = {} end |
Instance Method Details
#[](qname) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/action_web_service/soap/mapping/registry.rb', line 84 def [](qname) unless qname.is_a?(XSD::QName) qname = XSD::QName.new(nil, qname) end @__xmlele.each do |k, v| return v if k == qname end # fallback @__xmlele.each do |k, v| return v if k.name == qname.name end nil end |
#[]=(qname, value) ⇒ Object
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/action_web_service/soap/mapping/registry.rb', line 98 def []=(qname, value) unless qname.is_a?(XSD::QName) qname = XSD::QName.new(nil, qname) end found = false @__xmlele.each do |pair| if pair[0] == qname found = true pair[1] = value end end unless found __define_attr_accessor(qname) @__xmlele << [qname, value] end @__xmlele_type[qname] = :single end |
#__add_xmlele_value(qname, value) ⇒ Object
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/action_web_service/soap/mapping/registry.rb', line 116 def __add_xmlele_value(qname, value) found = false @__xmlele.map! do |k, v| if k == qname found = true [k, __set_xmlele_value(k, v, value)] else [k, v] end end unless found __define_attr_accessor(qname) @__xmlele << [qname, value] @__xmlele_type[qname] = :single end value end |
#__xmlattr ⇒ Object
76 77 78 |
# File 'lib/action_web_service/soap/mapping/registry.rb', line 76 def __xmlattr @__xmlattr end |
#__xmlele ⇒ Object
80 81 82 |
# File 'lib/action_web_service/soap/mapping/registry.rb', line 80 def __xmlele @__xmlele end |
#each_pair ⇒ Object
5 6 7 |
# File 'lib/action_web_service/protocol/soap_protocol/marshaler.rb', line 5 def each_pair self.__xmlele.each { |n, v| yield n.name, v.to_s } end |
#inspect ⇒ Object
71 72 73 74 |
# File 'lib/action_web_service/soap/mapping/registry.rb', line 71 def inspect sprintf("#<%s:0x%x%s>", self.class.name, __id__, @__xmlele.collect { |name, value| " #{name}=#{value.inspect}" }.join) end |